TEST(normal_interface, logfile2) { SATSolver* s = new SATSolver(); s->log_to_file("testfile"); s->new_vars(2); s->add_clause(vector<Lit>{Lit(0, false)}); s->add_clause(vector<Lit>{Lit(0, false), Lit(1, false)}); lbool ret = s->solve(); s->add_clause(vector<Lit>{Lit(1, false)}); ret = s->solve(); delete s; std::ifstream infile("testfile"); std::string line; std::getline(infile, line); EXPECT_EQ(line, "c Solver::new_vars( 2 )"); std::getline(infile, line); EXPECT_EQ(line, "1 0"); std::getline(infile, line); EXPECT_EQ(line, "1 2 0"); std::getline(infile, line); EXPECT_EQ(line, "c Solver::solve( )"); std::getline(infile, line); EXPECT_EQ(line, "2 0"); std::getline(infile, line); EXPECT_EQ(line, "c Solver::solve( )"); }
TEST(normal_interface, logfile2_assumps) { SATSolver* s = new SATSolver(); s->log_to_file("testfile"); s->new_vars(2); s->add_clause(vector<Lit>{Lit(0, false)}); s->add_clause(vector<Lit>{Lit(0, false), Lit(1, false)}); std::vector<Lit> assumps {Lit(0, false), Lit(1, true)}; lbool ret = s->solve(&assumps); s->add_clause(vector<Lit>{Lit(1, false)}); assumps.clear(); assumps.push_back(Lit(1, true)); ret = s->solve(&assumps); delete s; std::ifstream infile("testfile"); std::string line; std::getline(infile, line); EXPECT_EQ(line, "c Solver::new_vars( 2 )"); std::getline(infile, line); EXPECT_EQ(line, "1 0"); std::getline(infile, line); EXPECT_EQ(line, "1 2 0"); std::getline(infile, line); EXPECT_EQ(line, "c Solver::solve( 1 -2 )"); std::getline(infile, line); EXPECT_EQ(line, "2 0"); std::getline(infile, line); EXPECT_EQ(line, "c Solver::solve( -2 )"); }
TEST(normal_interface, logfile) { SATSolver* s = new SATSolver(); s->log_to_file("testfile"); s->new_vars(2); s->add_clause(str_to_cl("1, 2")); lbool ret = s->solve(); EXPECT_EQ( ret, l_True); delete s; std::ifstream infile("testfile"); std::string line; std::getline(infile, line); EXPECT_EQ(line, "c Solver::new_vars( 2 )"); std::getline(infile, line); EXPECT_EQ(line, "1 2 0"); std::getline(infile, line); EXPECT_EQ(line, "c Solver::solve( )"); }