summaryrefslogtreecommitdiff
path: root/lichen.test.c
diff options
context:
space:
mode:
Diffstat (limited to 'lichen.test.c')
-rw-r--r--lichen.test.c36
1 files changed, 36 insertions, 0 deletions
diff --git a/lichen.test.c b/lichen.test.c
new file mode 100644
index 0000000..77ff067
--- /dev/null
+++ b/lichen.test.c
@@ -0,0 +1,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;
+}