Skip to content

Commit c3c6e5c

Browse files
committed
move test into test_seed_normal
Signed-off-by: Illia Sheshyn <187636533+illiasheshyn@users.noreply.github.com>
1 parent 3f41e72 commit c3c6e5c

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

mojo/stdlib/test/random/test_random.mojo

+14-10
Original file line numberDiff line numberDiff line change
@@ -68,9 +68,12 @@ def test_random():
6868
),
6969
)
7070

71+
72+
def test_seed_normal():
73+
seed(42)
7174
# verify `randn_float64` values are normally distributed
72-
var samples = List[Float64]()
73-
var num_samples = 1_000_000
75+
var num_samples = 1000
76+
var samples = List[Float64](capacity=num_samples)
7477
for _ in range(num_samples):
7578
samples.append(randn_float64(0, 2))
7679

@@ -82,31 +85,32 @@ def test_random():
8285

8386
var sum_sq: Float64 = 0.0
8487
for sample in samples:
85-
sum_sq += (sample[] - mean) * (sample[] - mean)
88+
sum_sq += (sample[] - mean) ** 2
8689

8790
var variance = sum_sq / num_samples
8891

8992
# Calculate absolute differences (errors)
90-
var mean_error = mean if mean > 0 else -mean
91-
var variance_error = variance - 4 if variance > 4 else 4 - variance
93+
var mean_error = abs(mean)
94+
var variance_error = abs(variance - 4)
9295

93-
var tolerance: Float64 = 0.01
96+
var mean_tolerance: Float64 = 0.06 # SE_μ = σ / √n
9497
assert_true(
95-
mean_error < tolerance,
98+
mean_error < mean_tolerance,
9699
String(
97100
"Mean error ",
98101
mean_error,
99102
" is above the accepted tolerance ",
100-
tolerance,
103+
mean_tolerance,
101104
),
102105
)
106+
var variance_tolerance: Float64 = 0.57 # SE_S² = √(2 * σ^4 / (n - 1))
103107
assert_true(
104-
variance_error < tolerance,
108+
variance_error < variance_tolerance,
105109
String(
106110
"Variance error ",
107111
variance_error,
108112
" is above the accepted tolerance ",
109-
tolerance,
113+
variance_tolerance,
110114
),
111115
)
112116

0 commit comments

Comments
 (0)