Skip to content

Commit e21f02f

Browse files
committed
Checking also term names in NamedUnsatCore-s in unit tests
1 parent 1e8cd05 commit e21f02f

File tree

1 file changed

+44
-0
lines changed

1 file changed

+44
-0
lines changed

test/unit/test_UnsatCore.cc

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,10 @@ bool isInCore(PTRef fla, vec<PTRef> const & coreTerms) {
2020
return std::find(coreTerms.begin(), coreTerms.end(), fla) != coreTerms.end();
2121
}
2222

23+
bool isNameInCore(TermName const & name, std::vector<std::string> const & coreNames) {
24+
return std::find(coreNames.begin(), coreNames.end(), name) != coreNames.end();
25+
}
26+
2327
template <typename LogicT>
2428
class UnsatCoreTestBase {
2529
protected:
@@ -132,7 +136,14 @@ TEST_F(UFUnsatCoreTest, Bool_Simple) {
132136
auto & coreTerms = core->getTerms();
133137
ASSERT_EQ(coreTerms.size(), 2);
134138
EXPECT_TRUE(isInCore(b1, coreTerms));
139+
EXPECT_FALSE(isInCore(b2, coreTerms));
135140
EXPECT_TRUE(isInCore(nb1, coreTerms));
141+
auto const & namedCore = static_cast<NamedUnsatCore &>(*core);
142+
auto coreNames = namedCore.makeTermNames();
143+
ASSERT_EQ(coreNames.size(), 2);
144+
EXPECT_TRUE(isNameInCore("a1", coreNames));
145+
EXPECT_FALSE(isNameInCore("a2", coreNames));
146+
EXPECT_TRUE(isNameInCore("a3", coreNames));
136147
}
137148

138149
TEST_F(MinUFUnsatCoreTest, Min_Bool_Simple) {
@@ -146,7 +157,14 @@ TEST_F(MinUFUnsatCoreTest, Min_Bool_Simple) {
146157
auto & coreTerms = core->getTerms();
147158
ASSERT_EQ(coreTerms.size(), 2);
148159
EXPECT_TRUE(isInCore(b1, coreTerms));
160+
EXPECT_FALSE(isInCore(b2, coreTerms));
149161
EXPECT_TRUE(isInCore(nb1, coreTerms));
162+
auto const & namedCore = static_cast<NamedUnsatCore &>(*core);
163+
auto coreNames = namedCore.makeTermNames();
164+
ASSERT_EQ(coreNames.size(), 2);
165+
EXPECT_TRUE(isNameInCore("a1", coreNames));
166+
EXPECT_FALSE(isNameInCore("a2", coreNames));
167+
EXPECT_TRUE(isNameInCore("a3", coreNames));
150168
}
151169

152170
TEST_F(MinUFUnsatCoreTest, Min_Bool_Simple_Unnamed1) {
@@ -160,7 +178,14 @@ TEST_F(MinUFUnsatCoreTest, Min_Bool_Simple_Unnamed1) {
160178
auto & coreTerms = core->getTerms();
161179
ASSERT_EQ(coreTerms.size(), 1);
162180
EXPECT_FALSE(isInCore(b1, coreTerms));
181+
EXPECT_FALSE(isInCore(b2, coreTerms));
163182
EXPECT_TRUE(isInCore(nb1, coreTerms));
183+
auto const & namedCore = static_cast<NamedUnsatCore &>(*core);
184+
auto coreNames = namedCore.makeTermNames();
185+
ASSERT_EQ(coreNames.size(), 1);
186+
EXPECT_FALSE(isNameInCore("a1", coreNames));
187+
EXPECT_FALSE(isNameInCore("a2", coreNames));
188+
EXPECT_TRUE(isNameInCore("a3", coreNames));
164189
}
165190

166191
TEST_F(MinUFUnsatCoreTest, Min_Bool_Simple_Unnamed2) {
@@ -174,7 +199,14 @@ TEST_F(MinUFUnsatCoreTest, Min_Bool_Simple_Unnamed2) {
174199
auto & coreTerms = core->getTerms();
175200
ASSERT_EQ(coreTerms.size(), 2);
176201
EXPECT_TRUE(isInCore(b1, coreTerms));
202+
EXPECT_FALSE(isInCore(b2, coreTerms));
177203
EXPECT_TRUE(isInCore(nb1, coreTerms));
204+
auto const & namedCore = static_cast<NamedUnsatCore &>(*core);
205+
auto coreNames = namedCore.makeTermNames();
206+
ASSERT_EQ(coreNames.size(), 2);
207+
EXPECT_TRUE(isNameInCore("a1", coreNames));
208+
EXPECT_FALSE(isNameInCore("a2", coreNames));
209+
EXPECT_TRUE(isNameInCore("a3", coreNames));
178210
}
179211

180212
TEST_F(MinUFUnsatCoreTest, Min_Bool_Simple_Unnamed3) {
@@ -188,7 +220,14 @@ TEST_F(MinUFUnsatCoreTest, Min_Bool_Simple_Unnamed3) {
188220
auto & coreTerms = core->getTerms();
189221
ASSERT_EQ(coreTerms.size(), 1);
190222
EXPECT_TRUE(isInCore(b1, coreTerms));
223+
EXPECT_FALSE(isInCore(b2, coreTerms));
191224
EXPECT_FALSE(isInCore(nb1, coreTerms));
225+
auto const & namedCore = static_cast<NamedUnsatCore &>(*core);
226+
auto coreNames = namedCore.makeTermNames();
227+
ASSERT_EQ(coreNames.size(), 1);
228+
EXPECT_TRUE(isNameInCore("a1", coreNames));
229+
EXPECT_FALSE(isNameInCore("a2", coreNames));
230+
EXPECT_FALSE(isNameInCore("a3", coreNames));
192231
}
193232

194233
TEST_F(FullUFUnsatCoreTest, Full_Bool_Simple) {
@@ -202,6 +241,7 @@ TEST_F(FullUFUnsatCoreTest, Full_Bool_Simple) {
202241
auto & coreTerms = core->getTerms();
203242
ASSERT_EQ(coreTerms.size(), 2);
204243
EXPECT_TRUE(isInCore(b1, coreTerms));
244+
EXPECT_FALSE(isInCore(b2, coreTerms));
205245
EXPECT_TRUE(isInCore(nb1, coreTerms));
206246
}
207247

@@ -216,6 +256,7 @@ TEST_F(MinFullUFUnsatCoreTest, Min_Full_Bool_Simple) {
216256
auto & coreTerms = core->getTerms();
217257
ASSERT_EQ(coreTerms.size(), 2);
218258
EXPECT_TRUE(isInCore(b1, coreTerms));
259+
EXPECT_FALSE(isInCore(b2, coreTerms));
219260
EXPECT_TRUE(isInCore(nb1, coreTerms));
220261
}
221262

@@ -230,6 +271,7 @@ TEST_F(MinFullUFUnsatCoreTest, Min_Full_Bool_Simple_Unnamed1) {
230271
auto & coreTerms = core->getTerms();
231272
ASSERT_EQ(coreTerms.size(), 2);
232273
EXPECT_TRUE(isInCore(b1, coreTerms));
274+
EXPECT_FALSE(isInCore(b2, coreTerms));
233275
EXPECT_TRUE(isInCore(nb1, coreTerms));
234276
}
235277

@@ -244,6 +286,7 @@ TEST_F(MinFullUFUnsatCoreTest, Min_Full_Bool_Simple_Unnamed2) {
244286
auto & coreTerms = core->getTerms();
245287
ASSERT_EQ(coreTerms.size(), 2);
246288
EXPECT_TRUE(isInCore(b1, coreTerms));
289+
EXPECT_FALSE(isInCore(b2, coreTerms));
247290
EXPECT_TRUE(isInCore(nb1, coreTerms));
248291
}
249292

@@ -258,6 +301,7 @@ TEST_F(MinFullUFUnsatCoreTest, Min_Full_Bool_Simple_Unnamed3) {
258301
auto & coreTerms = core->getTerms();
259302
ASSERT_EQ(coreTerms.size(), 2);
260303
EXPECT_TRUE(isInCore(b1, coreTerms));
304+
EXPECT_FALSE(isInCore(b2, coreTerms));
261305
EXPECT_TRUE(isInCore(nb1, coreTerms));
262306
}
263307

0 commit comments

Comments
 (0)