|
43 | 43 | m == AlgRSWRSKIP() ? fit!(s2, 2) : fit!(s2, 2, 1.0) |
44 | 44 | @test value(merge!(s1, s2)) in (1, 2) |
45 | 45 | end |
| 46 | + |
| 47 | + iters = (1:10, 11:30) |
| 48 | + reps = 10000 |
| 49 | + for m in (AlgRSWRSKIP(),) |
| 50 | + count_s1 = 0 |
| 51 | + for _ in 1:reps |
| 52 | + s1 = ReservoirSampler{Int}(rng, m) |
| 53 | + s2 = ReservoirSampler{Int}(rng, m) |
| 54 | + for x in iters[1] fit!(s1, x) end |
| 55 | + for x in iters[2] fit!(s2, x) end |
| 56 | + s_merged = merge(s1, s2) |
| 57 | + if value(s_merged) <= 10 |
| 58 | + count_s1 += 1 |
| 59 | + end |
| 60 | + end |
| 61 | + chisq_test = ChisqTest([count_s1, reps - count_s1], [1/3, 2/3]) |
| 62 | + @test pvalue(chisq_test) > 0.05 |
| 63 | + end |
| 64 | + |
| 65 | + for m in (AlgWRSWRSKIP(),) |
| 66 | + count_s1 = 0 |
| 67 | + for _ in 1:reps |
| 68 | + s1 = ReservoirSampler{Int}(rng, m) |
| 69 | + s2 = ReservoirSampler{Int}(rng, m) |
| 70 | + for x in iters[1] fit!(s1, x, 1.0) end |
| 71 | + for x in iters[2] fit!(s2, x, 1.0) end |
| 72 | + s_merged = merge(s1, s2) |
| 73 | + if value(s_merged) <= 10 |
| 74 | + count_s1 += 1 |
| 75 | + end |
| 76 | + end |
| 77 | + chisq_test = ChisqTest([count_s1, reps - count_s1], [1/3, 2/3]) |
| 78 | + @test pvalue(chisq_test) > 0.05 |
| 79 | + |
| 80 | + rng = StableRNG(45) |
| 81 | + count_s1 = 0 |
| 82 | + for _ in 1:reps |
| 83 | + s1 = ReservoirSampler{Int}(rng, m) |
| 84 | + s2 = ReservoirSampler{Int}(rng, m) |
| 85 | + fit!(s1, 1, 10.0) |
| 86 | + fit!(s2, 2, 20.0) |
| 87 | + s_merged = merge(s1, s2) |
| 88 | + if value(s_merged) == 1 |
| 89 | + count_s1 += 1 |
| 90 | + end |
| 91 | + end |
| 92 | + chisq_test = ChisqTest([count_s1, reps - count_s1], [1/3, 2/3]) |
| 93 | + @test pvalue(chisq_test) > 0.05 |
| 94 | + end |
46 | 95 | end |
0 commit comments