equal/hKis/test/testinit.c
2022-10-25 18:36:19 +08:00

139 lines
3.3 KiB
C

#include "test.h"
#include "../src/import.h"
#include "../src/resize.h"
#include "../src/resources.h"
static kissat *
new_solver (void)
{
kissat *solver = kissat_init ();
tissat_init_solver (solver);
return solver;
}
static void
test_init_zero (void)
{
#ifndef QUIET
assert (kissat_verbosity (0) < 0);
#endif
kissat_warning (0, "YOU SHOULD NOT SEE THIS WARNING!");
kissat_signal (0, "YOU SHOULD NOT SEE THIS SIGNAL MESSAGE FOR ", 0);
}
static void
test_init_release (void)
{
kissat *solver = new_solver ();
kissat_release (solver);
}
static void
test_init_enlarge_release (void)
{
format format;
memset (&format, 0, sizeof format);
#ifndef QUIET
printf ("before allocating solver %s\n",
kissat_format_bytes (&format, kissat_maximum_resident_set_size ()));
#endif
kissat *solver = new_solver ();
kissat_enlarge_variables (solver, 17);
for (int i = 1; i < (tissat_big ? 28 : 21); i++)
{
kissat_enlarge_variables (solver, solver->vars + 1);
kissat_enlarge_variables (solver, 1 << i);
#ifndef QUIET
printf ("after %d << 20 %s\n", i,
kissat_format_bytes (&format,
kissat_maximum_resident_set_size ()));
#endif
}
if (tissat_big)
{
kissat_enlarge_variables (solver, EXTERNAL_MAX_VAR);
#ifndef QUIET
printf ("after %d %s\n", EXTERNAL_MAX_VAR,
kissat_format_bytes (&format,
kissat_maximum_resident_set_size ()));
#endif
}
kissat_release (solver);
#ifndef QUIET
printf ("after deallocating solver %s\n",
kissat_format_bytes (&format, kissat_maximum_resident_set_size ()));
#endif
}
static void
test_init_import_release (void)
{
kissat *solver = new_solver ();
(void) kissat_import_literal (solver, -1);
(void) kissat_import_literal (solver, 42);
if (tissat_big)
(void) kissat_import_literal (solver, EXTERNAL_MAX_VAR);
kissat_release (solver);
}
static void
test_init_add_release (void)
{
#ifndef NDEBUG
const int max_check = 1;
#else
const int max_check = 0;
#endif
for (int check = 0; check <= max_check; check++)
{
kissat *solver = new_solver ();
kissat_set_option (solver, "log", 4);
#ifndef NDEBUG
kissat_set_option (solver, "check", check);
#endif
kissat_add (solver, 2);
kissat_add (solver, -12);
kissat_add (solver, 0);
kissat_add (solver, -17);
kissat_add (solver, -2);
kissat_add (solver, 0);
kissat_add (solver, -1);
kissat_add (solver, 1);
kissat_add (solver, -1);
kissat_add (solver, 1);
kissat_add (solver, 0);
kissat_add (solver, 7);
kissat_add (solver, 8);
kissat_add (solver, 7);
kissat_add (solver, 8);
kissat_add (solver, 7);
kissat_add (solver, 0);
kissat_add (solver, -7);
kissat_add (solver, -7);
kissat_add (solver, -7);
kissat_add (solver, -7);
kissat_add (solver, -7);
kissat_add (solver, 0);
kissat_add (solver, 9);
kissat_add (solver, 7);
kissat_add (solver, 0);
if (tissat_big)
{
kissat_add (solver, EXTERNAL_MAX_VAR);
kissat_add (solver, 0);
}
kissat_release (solver);
}
}
void
tissat_schedule_init (void)
{
SCHEDULE_FUNCTION (test_init_zero);
SCHEDULE_FUNCTION (test_init_release);
SCHEDULE_FUNCTION (test_init_enlarge_release);
SCHEDULE_FUNCTION (test_init_import_release);
SCHEDULE_FUNCTION (test_init_add_release);
}