test: prove package initialization semantics

This commit is contained in:
2026-08-14 19:02:49 +09:00
parent c6bec0914d
commit 763bbc8f25
24 changed files with 2243 additions and 349 deletions

View File

@@ -4,7 +4,7 @@ import math.random;
import test;
@test fn seq() void = {
let r: random.random = random.init(1234567u64);
let r: random.random = random.fromseed(1234567u64);
assert(!(random.next(&r) != 6457827717110365317u64));
assert(!(random.next(&r) != 3203168211198807973u64));
assert(!(random.next(&r) != 9817491932198370423u64));
@@ -13,8 +13,8 @@ import test;
};
@test fn deterministic() void = {
let a: random.random = random.init(42u64);
let b: random.random = random.init(42u64);
let a: random.random = random.fromseed(42u64);
let b: random.random = random.fromseed(42u64);
let i: i32 = 0;
for (i < 32) {
assert(!(random.next(&a) != random.next(&b)));
@@ -23,7 +23,7 @@ import test;
};
@test fn u32n_inrange() void = {
let r: random.random = random.init(7u64);
let r: random.random = random.fromseed(7u64);
let i: i32 = 0;
for (i < 200) {
let v: u32 = random.u32n(&r, 17u32);
@@ -35,7 +35,7 @@ import test;
};
@test fn u64n_pow2() void = {
let r: random.random = random.init(99u64);
let r: random.random = random.fromseed(99u64);
let i: i32 = 0;
for (i < 200) {
let v: u64 = random.u64n(&r, 16u64);
@@ -45,7 +45,7 @@ import test;
};
@test fn u64n_nonpow2() void = {
let r: random.random = random.init(123u64);
let r: random.random = random.fromseed(123u64);
let i: i32 = 0;
for (i < 200) {
let v: u64 = random.u64n(&r, 100u64);
@@ -60,12 +60,12 @@ import test;
@test fn u32n_zero_aborts() void = {
test.expectabort();
let r: random.random = random.init(1u64);
let r: random.random = random.fromseed(1u64);
random.u32n(&r, 0u32);
};
@test fn u64n_zero_aborts() void = {
test.expectabort();
let r: random.random = random.init(1u64);
let r: random.random = random.fromseed(1u64);
random.u64n(&r, 0u64);
};