Skip to content

Commit 0a0b3b2

Browse files
committed
adding get_gssotc_io_vars tests
1 parent b3e955b commit 0a0b3b2

File tree

1 file changed

+46
-9
lines changed

1 file changed

+46
-9
lines changed

tests/unit/test_satisfiability.cpp

Lines changed: 46 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -170,12 +170,49 @@ TEST_SUITE("get_gssotc_clauses") {
170170
}
171171
}
172172

173-
/*TEST_SUITE("get_gssotc_io_vars") {
174-
TEST_CASE("get_gssotc_io_vars") {
175-
const char* sample = "{ ( i_keyboard[t] = o_console[t] ) };";
176-
auto src = make_tau_source(sample);
177-
auto frml = make_statement(src);
178-
auto nso_rr = frml | tau_parser::nso_rr | tau_parser::nso_main ;
179-
CHECK( nso_rr.has_value() );
180-
}
181-
}*/
173+
TEST_SUITE("get_gssotc_io_vars") {
174+
175+
TEST_CASE("none") {
176+
const char* sample = "{ T };";
177+
auto sample_src = make_tau_source(sample);
178+
bdd_test_factory bf;
179+
factory_binder<bdd_test_factory, tau_ba<bdd_test>, bdd_test> fb(bf);
180+
auto sample_formula = make_tau_spec_using_factory<factory_binder<bdd_test_factory, tau_ba<bdd_test>, bdd_test>, bdd_test>(sample_src, fb);
181+
std::vector<gssotc<bdd_test>> literals;
182+
auto [inputs, outputs] = get_gssotc_io_vars<bdd_test>(sample_formula.main);
183+
CHECK( (inputs.name.size() == 0 && outputs.name.size() == 0) );
184+
}
185+
186+
TEST_CASE("one input") {
187+
const char* sample = "{ (i_keyboard[t] = 0) };";
188+
auto sample_src = make_tau_source(sample);
189+
bdd_test_factory bf;
190+
factory_binder<bdd_test_factory, tau_ba<bdd_test>, bdd_test> fb(bf);
191+
auto sample_formula = make_tau_spec_using_factory<factory_binder<bdd_test_factory, tau_ba<bdd_test>, bdd_test>, bdd_test>(sample_src, fb);
192+
std::vector<gssotc<bdd_test>> literals;
193+
auto [inputs, outputs] = get_gssotc_io_vars<bdd_test>(sample_formula.main);
194+
CHECK( (inputs.name.size() == 1 && outputs.name.size() == 0) );
195+
}
196+
197+
TEST_CASE("one output") {
198+
const char* sample = "{ (o_console[t] = 0) };";
199+
auto sample_src = make_tau_source(sample);
200+
bdd_test_factory bf;
201+
factory_binder<bdd_test_factory, tau_ba<bdd_test>, bdd_test> fb(bf);
202+
auto sample_formula = make_tau_spec_using_factory<factory_binder<bdd_test_factory, tau_ba<bdd_test>, bdd_test>, bdd_test>(sample_src, fb);
203+
std::vector<gssotc<bdd_test>> literals;
204+
auto [inputs, outputs] = get_gssotc_io_vars<bdd_test>(sample_formula.main);
205+
CHECK( (inputs.name.size() == 0 && outputs.name.size() == 1) );
206+
}
207+
208+
TEST_CASE("one input and one output") {
209+
const char* sample = "{ (i_keyboard[t] = o_console[t]) };";
210+
auto sample_src = make_tau_source(sample);
211+
bdd_test_factory bf;
212+
factory_binder<bdd_test_factory, tau_ba<bdd_test>, bdd_test> fb(bf);
213+
auto sample_formula = make_tau_spec_using_factory<factory_binder<bdd_test_factory, tau_ba<bdd_test>, bdd_test>, bdd_test>(sample_src, fb);
214+
std::vector<gssotc<bdd_test>> literals;
215+
auto [inputs, outputs] = get_gssotc_io_vars<bdd_test>(sample_formula.main);
216+
CHECK( (inputs.name.size() == 1 && outputs.name.size() == 1) );
217+
}
218+
}

0 commit comments

Comments
 (0)