@@ -170,12 +170,49 @@ TEST_SUITE("get_gssotc_clauses") {
170
170
}
171
171
}
172
172
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