crypto.rand: improve test to actually check for difference in data

pull/1842/head
joe-conigliaro 2019-09-03 23:10:26 +10:00 committed by Alexander Medvednikov
parent c9a39dfdb5
commit 5dcfda0600
1 changed files with 19 additions and 2 deletions

View File

@ -5,9 +5,26 @@
import crypto.rand
fn test_crypto_rand() {
r := rand.read(100) or {
no_bytes := 100
max_percentage_diff := 20
r1 := rand.read(no_bytes) or {
assert false
return
}
assert r.len == 100
assert r1.len == no_bytes
r2 := rand.read(no_bytes) or {
assert false
return
}
assert r2.len == no_bytes
mut difference := 0
for i, _ in r1 {
difference += if r1[i] == r2[i] {0} else {1}
}
diff_percentage := f32(100) - (f32(difference)/f32(no_bytes)*100)
assert diff_percentage <= max_percentage_diff
}