mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
rand: change rand.seed() to receive seed value
This commit is contained in:

committed by
Alexander Medvednikov

parent
af7d49103b
commit
2cb12b4f4e
@@ -4,10 +4,8 @@
|
||||
|
||||
module rand
|
||||
|
||||
import time
|
||||
|
||||
pub fn seed() {
|
||||
C.srand(time.now().uni)
|
||||
pub fn seed(s int) {
|
||||
C.srand(s)
|
||||
}
|
||||
|
||||
pub fn next(max int) int {
|
||||
@@ -15,4 +13,3 @@ pub fn next(max int) int {
|
||||
}
|
||||
|
||||
fn C.rand() int
|
||||
|
||||
|
30
vlib/rand/rand_test.v
Normal file
30
vlib/rand/rand_test.v
Normal file
@@ -0,0 +1,30 @@
|
||||
import rand
|
||||
|
||||
fn gen_randoms(seed int) []int {
|
||||
mut randoms := [0; 20]
|
||||
rand.seed(seed)
|
||||
for i in 0..20 {
|
||||
randoms[i] = rand.next(100)
|
||||
}
|
||||
return randoms
|
||||
}
|
||||
|
||||
fn test_rand_reproducibility() {
|
||||
mut randoms1 := gen_randoms(42)
|
||||
mut randoms2 := gen_randoms(42)
|
||||
assert randoms1.len == randoms2.len
|
||||
|
||||
mut len := randoms1.len
|
||||
for i in 0..len {
|
||||
assert randoms1[i] == randoms2[i]
|
||||
}
|
||||
|
||||
randoms1 = gen_randoms(256)
|
||||
randoms2 = gen_randoms(256)
|
||||
assert randoms1.len == randoms2.len
|
||||
|
||||
len = randoms1.len
|
||||
for i in 0..len {
|
||||
assert randoms1[i] == randoms2[i]
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user