Files
wren/test/random/int.wren
T
Bob Nystrom 166a5d0d59 feat: add WELL512-based Random module with seed, float, and int methods
Implement a new `random` module for the Wren language runtime, providing a `Random` class backed by the WELL512a PRNG algorithm. The module supports three seeding strategies (time-based, single numeric seed, and 16-element sequence), generates uniform floats in [0,1) and integers in the full uint32 range, and includes convenience methods for bounded ranges. The implementation adds the C foreign functions `randomAllocate`, `randomSeed0`, `randomSeed1`, `randomSeed16`, `randomFloat`, and `randomInt0`, registers them in the module registry, and includes the Wren wrapper class with constructors accepting no arguments, a number, or a sequence. The commit also adds 12 test scripts covering float/int generation, seeding reproducibility, and error handling for invalid seed types.
2015-10-17 18:03:15 +00:00

14 lines
286 B
Plaintext

import "random" for Random
var random = Random.new(12345)
var below = 0
for (i in 1..1000) {
var n = random.int()
if (n < 2147483648) below = below + 1
}
// Should be roughly evenly distributed.
System.print(below > 450) // expect: true
System.print(below < 550) // expect: true