42 TEST(True, CloneAndEquals) {
68 auto a = mk<Conjunction>(mk<True>(), mk<False>());
69 auto b = mk<Conjunction>(mk<True>(), mk<False>());
78 auto d = mk<Conjunction>(mk<True>(), mk<Conjunction>(mk<False>(), mk<True>()));
79 auto e = mk<Conjunction>(mk<True>(), mk<Conjunction>(mk<False>(), mk<True>()));
88 auto a_conj_d = mk<Conjunction>(std::move(a), std::move(
d));
89 auto b_conj_e = mk<Conjunction>(std::move(
b), std::move(
e));
93 auto c_conj_f = mk<Conjunction>(std::move(c), std::move(f));
106 auto neg_a = mk<Negation>(std::move(a));
108 auto neg_b = mk<Negation>(std::move(
b));
112 auto c = mk<False>();
113 auto neg_neg_c = mk<Negation>(mk<Negation>(std::move(c)));
114 auto d = mk<False>();
115 auto neg_neg_d = mk<Negation>(mk<Negation>(std::move(
d)));
157 VecOwn<Expression> tuple_a;
158 tuple_a.emplace_back(
new SignedConstant(1));
159 ExistenceCheck a(
"N", std::move(tuple_a));
160 VecOwn<Expression> tuple_b;
161 tuple_b.emplace_back(
new SignedConstant(1));
162 ExistenceCheck
b(
"N", std::move(tuple_b));
177 tuple_d.emplace_back(
new SignedConstant(1));
178 tuple_d.emplace_back(
new SignedConstant(2));
179 ExistenceCheck
d(
"edge", std::move(tuple_d));
181 tuple_e.emplace_back(
new SignedConstant(1));
182 tuple_e.emplace_back(
new SignedConstant(2));
183 ExistenceCheck
e(
"edge", std::move(tuple_e));
187 ExistenceCheck* f =
d.clone();
196 TEST(RamProvenanceExistCheck, CloneAndEquals) {
198 VecOwn<Expression> tuple_a;
199 tuple_a.emplace_back(
new SignedConstant(1));
200 ExistenceCheck a(
"N", std::move(tuple_a));
201 VecOwn<Expression> tuple_b;
202 tuple_b.emplace_back(
new SignedConstant(1));
203 ExistenceCheck
b(
"N", std::move(tuple_b));
207 ExistenceCheck* c = a.
clone();
216 Relation address(
"address", 3, 1, {
"state",
"postCode",
"street"}, {
"s",
"i",
"s"},
219 tuple_d.emplace_back(
new SignedConstant(0));
220 tuple_d.emplace_back(
new SignedConstant(2000));
221 tuple_d.emplace_back(
new SignedConstant(0));
222 ProvenanceExistenceCheck
d(
"address", std::move(tuple_d));
224 tuple_e.emplace_back(
new SignedConstant(0));
225 tuple_e.emplace_back(
new SignedConstant(2000));
226 tuple_e.emplace_back(
new SignedConstant(0));
227 ProvenanceExistenceCheck
e(
"address", std::move(tuple_e));
231 ProvenanceExistenceCheck* f =
d.clone();
240 TEST(EmptinessCheck, CloneAndEquals) {
243 EmptinessCheck a(
"A");
244 EmptinessCheck
b(
"A");
247 EmptinessCheck* c = a.clone();