/*
* Simple random number generator for testing.
- * Copyright © 2022-2023 Nick Bowler
+ * Copyright © 2022-2024 Nick Bowler
*
* Directly compare the test lib RNG against the reference implementation.
*
#include <config.h>
#include "tap.h"
+#if !HAVE_FOR_DECLS
+int main(void)
+{
+ tap_skip_all("cannot compile reference xoshiro256+");
+}
+#else
+#define TEST_RNG_NO_EXTERNAL_API 1
#include "rng.c"
#include "xos256p.c"
int main(void)
{
- unsigned long long seed_state = 0xdeadbeeff00dcafe;
unsigned long long test_result, ref_result;
unsigned long long ref_state[4], test_state[4];
+ uint_least32_t seed_state = 0xdeadbeef;
int i, ret = 0;
tap_plan(200);
for (i = 0; i < 100; i++) {
- s[0] = ref_state[0] = test_state[0] = splitmix64(&seed_state);
- s[1] = ref_state[1] = test_state[1] = splitmix64(&seed_state);
- s[2] = ref_state[2] = test_state[2] = splitmix64(&seed_state);
- s[3] = ref_state[3] = test_state[3] = splitmix64(&seed_state);
+ s[0] = ref_state[0] = test_state[0] = seed64(&seed_state);
+ s[1] = ref_state[1] = test_state[1] = seed64(&seed_state);
+ s[2] = ref_state[2] = test_state[2] = seed64(&seed_state);
+ s[3] = ref_state[3] = test_state[3] = seed64(&seed_state);
ref_result = next();
test_result = xoshiro256p(test_state);
tap_done();
}
+#endif