/* See LICENSE file for copyright and license details. */ #include "common.h" #ifndef TEST extern inline LIBNORMALFORM_SENTENCE *(libnormalform_empty)(struct libnormalform_map *); #else int main(void) { TEST_BEGIN; struct libnormalform_map dom1, dom2; struct libnormalform_mapping map[3]; LIBNORMALFORM_SENTENCE *a, *b; dom1.mappings = map; memset(map, 0, sizeof(map)); ASSUME(a = libnormalform_empty(&dom1)); ASSERT(a->type == TYPE_ALL); ASSUME(b = libnormalform_empty(&dom2)); ASSERT_NOTEQUAL(a, b); libnormalform_free(b); ASSUME(b = libnormalform_empty(&dom1)); ASSERT(b != a); ASSERT_EQUAL(a, b); libnormalform_free(b); ASSUME(b = libnormalform_nonempty(&dom1)); ASSERT_INVEQUAL(a, b); libnormalform_free(b); ASSUME(b = libnormalform_singleton(&dom1)); ASSERT_NOTEQUAL(a, b); ASSUME(b = libnormalform_not(b)); ASSERT_NOTEQUAL(a, b); libnormalform_free(b); ASSUME(b = libnormalform_not(libnormalform_empty(&dom1))); ASSERT(b->type == TYPE_ANY); ASSERT_INVEQUAL(a, b); libnormalform_free(b); dom1.nmappings = 0; ASSERT(libnormalform_evaluate(a) == 1); dom1.nmappings = 1; ASSERT(libnormalform_evaluate(a) == 0); dom1.nmappings = 2; ASSERT(libnormalform_evaluate(a) == 0); dom1.nmappings = 3; ASSERT(libnormalform_evaluate(a) == 0); libnormalform_free(a); TEST_END; } #endif