| 1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
 | #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;
}
 |