#define LILY_IMPLEMENTATION #include "lichen.h" #include "lily-test.h" LILY_FILE_BEGIN(lichen_suite) LILY_TEST("xorshift output") { struct li_xorshift32_t xor; li_xorshift32_seed(&xor, 0); CHECK_EQ(xor.generator.state, &(xor.state), "%p"); CHECK_NEQ(xor.state, 0, "%d"); uint16_t start = xor.state; INFO("%p, %p", &(xor.state), xor.generator.state); INFO("%d", xor.generator.rand(xor.generator.state)); INFO("%d, %d", xor.state, *((uint64_t*)xor.generator.state)); INFO("%d", xor.generator.rand(xor.generator.state)); INFO("%d, %d", xor.state, *((uint64_t*)xor.generator.state)); INFO("%d", xor.generator.rand(xor.generator.state)); INFO("%d, %d", xor.state, *((uint64_t*)xor.generator.state)); INFO("%d", xor.generator.rand(xor.generator.state)); INFO("%d, %d", xor.state, *((uint64_t*)xor.generator.state)); REQUIRE_NEQ(xor.state, start, "%d"); } #include LILY_PUSH_TEST() #define LILY_FILE_END #include LILY_REGISTER_TESTS() int main() { lily_begin(); lichen_suite(); lily_finish(); return 0; }