Skip to content

Commit 1db9ce0

Browse files
committed
Better seeds.
1 parent 3898b5c commit 1db9ce0

16 files changed

+63
-63
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -109,10 +109,10 @@ Returns the same type of function for generating random numbers but where the gi
109109

110110
```js
111111
const d3 = require("d3-random");
112-
const seed = 0.42; // any number in [0, 1)
112+
const seed = 0.44871573888282423; // any number in [0, 1)
113113
const random = d3.randomNormal.source(d3.randomLcg(seed))(0, 1);
114114

115-
random(); // -0.8192429857722214
115+
random(); // -0.6253955998897069
116116
```
117117

118118
<a name="randomLcg" href="#randomLcg">#</a> d3.<b>randomLcg</b>(<i>[seed]</i>) · [Examples](https://observablehq.com/@fil/linear-congruential-generator)

test/bates-test.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ var tape = require("tape"),
66
require("./inDelta");
77

88
tape("d3.randomBates(n) returns random numbers with a mean of one-half", function(test) {
9-
var randomBates = d3.randomBates.source(d3.randomLcg(0.1));
9+
var randomBates = d3.randomBates.source(d3.randomLcg(0.6351090615932817));
1010
test.inDelta(d3.mean(d3.range(10000).map(randomBates(1))), 0.5, 0.05);
1111
test.inDelta(d3.mean(d3.range(10000).map(randomBates(10))), 0.5, 0.05);
1212
test.inDelta(d3.mean(d3.range(10000).map(randomBates(1.5))), 0.5, 0.05);
@@ -15,7 +15,7 @@ tape("d3.randomBates(n) returns random numbers with a mean of one-half", functio
1515
});
1616

1717
tape("d3.randomBates(n) returns random numbers with a variance of 1 / (12 * n)", function(test) {
18-
var randomBates = d3.randomBates.source(d3.randomLcg(0.2));
18+
var randomBates = d3.randomBates.source(d3.randomLcg(0.1284832084868286));
1919
test.inDelta(d3.variance(d3.range(10000).map(randomBates(1))), 1 / 12, 0.05);
2020
test.inDelta(d3.variance(d3.range(10000).map(randomBates(10))), 1 / 120, 0.05);
2121
test.inDelta(d3.variance(d3.range(10000).map(randomBates(1.5))), 1 / 18, 0.05);
@@ -24,7 +24,7 @@ tape("d3.randomBates(n) returns random numbers with a variance of 1 / (12 * n)",
2424
});
2525

2626
tape("d3.randomBates(n) returns random numbers with a skewness of 0", function(test) {
27-
var randomBates = d3.randomBates.source(d3.randomLcg(0.3));
27+
var randomBates = d3.randomBates.source(d3.randomLcg(0.051567609139606674));
2828
test.inDelta(skewness(d3.range(10000).map(randomBates(1))), 0, 0.05);
2929
test.inDelta(skewness(d3.range(10000).map(randomBates(10))), 0, 0.05);
3030
test.inDelta(skewness(d3.range(10000).map(randomBates(1.5))), 0, 0.05);
@@ -33,7 +33,7 @@ tape("d3.randomBates(n) returns random numbers with a skewness of 0", function(t
3333
});
3434

3535
tape("d3.randomBates(n) returns random numbers with a kurtosis of -6 / (5 * n)", function(test) {
36-
var randomBates = d3.randomBates.source(d3.randomLcg(0.4));
36+
var randomBates = d3.randomBates.source(d3.randomLcg(0.696913354780724));
3737
test.inDelta(kurtosis(d3.range(10000).map(randomBates(1))), -6 / 5, 0.05);
3838
test.inDelta(kurtosis(d3.range(10000).map(randomBates(10))), -6 / 50, 0.1);
3939
test.inDelta(kurtosis(d3.range(10000).map(randomBates(1.5))), -6 / 7.5, 0.05);
@@ -42,7 +42,7 @@ tape("d3.randomBates(n) returns random numbers with a kurtosis of -6 / (5 * n)",
4242
});
4343

4444
tape("d3.randomBates(0) is equivalent to d3.randomUniform()", function(test) {
45-
var randomBates = d3.randomBates.source(d3.randomLcg(0.5));
45+
var randomBates = d3.randomBates.source(d3.randomLcg(0.7717596603725383));
4646
test.inDelta(d3.mean(d3.range(10000).map(randomBates(0))), 0.5, 0.05);
4747
test.inDelta(d3.variance(d3.range(10000).map(randomBates(0))), 1 / 12, 0.05);
4848
test.inDelta(skewness(d3.range(10000).map(randomBates(0))), 0, 0.05);

test/bernoulli-test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var skew = function(p) { return (1 - 2 * p) / Math.sqrt(variance(p)); };
1111
var kurt = function(p) { return (6 * Math.pow(p, 2) - 6 * p + 1) / variance(p); };
1212

1313
tape("randomBernoulli(p) returns random bernoulli distributed numbers with a mean of p", function(test) {
14-
var randomBernoulli = d3.randomBernoulli.source(d3.randomLcg(0.1));
14+
var randomBernoulli = d3.randomBernoulli.source(d3.randomLcg(0.48444190806583465));
1515
test.inDelta(d3.mean(d3.range(10000).map(randomBernoulli(1))), mean(1), variance(1));
1616
test.inDelta(d3.mean(d3.range(10000).map(randomBernoulli(.5))), mean(.5), variance(.5));
1717
test.inDelta(d3.mean(d3.range(10000).map(randomBernoulli(.25))), mean(.25), variance(.25));
@@ -20,7 +20,7 @@ tape("randomBernoulli(p) returns random bernoulli distributed numbers with a mea
2020
});
2121

2222
tape("randomBernoulli(p) returns random bernoulli distributed numbers with a variance of p * (1 - p)", function(test) {
23-
var randomBernoulli = d3.randomBernoulli.source(d3.randomLcg(0.2));
23+
var randomBernoulli = d3.randomBernoulli.source(d3.randomLcg(0.9781605192898934));
2424
test.inDelta(d3.variance(d3.range(10000).map(randomBernoulli(1))), variance(1), 0);
2525
test.inDelta(d3.variance(d3.range(10000).map(randomBernoulli(.5))), variance(.5), 0.05);
2626
test.inDelta(d3.variance(d3.range(10000).map(randomBernoulli(.25))), variance(.25), 0.05);
@@ -29,14 +29,14 @@ tape("randomBernoulli(p) returns random bernoulli distributed numbers with a var
2929
});
3030

3131
tape("randomBernoulli(p) returns random bernoulli distributed numbers with a skewness of (1 - 2 * p) / sqrt(p * (1 - p)).", function(test) {
32-
var randomBernoulli = d3.randomBernoulli.source(d3.randomLcg(0.3));
32+
var randomBernoulli = d3.randomBernoulli.source(d3.randomLcg(0.9776249148208429));
3333
test.inDelta(skewness(d3.range(10000).map(randomBernoulli(.5))), skew(.5), 0.08);
3434
test.inDelta(skewness(d3.range(10000).map(randomBernoulli(.25))), skew(.25), 0.05);
3535
test.end();
3636
});
3737

3838
tape("randomBernoulli(p) returns random bernoulli distributed numbers with a kurtosis excess of (6 * p^2 - 6 * p - 1) / (p * (1 - p)).", function(test) {
39-
var randomBernoulli = d3.randomBernoulli.source(d3.randomLcg(0.4));
39+
var randomBernoulli = d3.randomBernoulli.source(d3.randomLcg(0.8260973119979638));
4040
test.inDelta(kurtosis(d3.range(10000).map(randomBernoulli(.05))), kurt(.05), kurt(.05) * 0.2);
4141
test.inDelta(kurtosis(d3.range(10000).map(randomBernoulli(.10))), kurt(.10), kurt(.10) * 0.2);
4242
test.inDelta(kurtosis(d3.range(10000).map(randomBernoulli(.15))), kurt(.15), kurt(.15) * 0.2);

test/beta-test.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ var mean = function(alpha, beta) { return alpha / (alpha + beta); };
77
var variance = function(alpha, beta) { return (alpha * beta) / Math.pow(alpha + beta, 2) / (alpha + beta + 1); };
88

99
tape("randomBeta(alpha, beta) returns random numbers with a mean of alpha / (alpha + beta)", function(test) {
10-
var randomBeta = d3.randomBeta.source(d3.randomLcg(0.1));
10+
var randomBeta = d3.randomBeta.source(d3.randomLcg(0.8275880644751501));
1111
test.inDelta(d3.mean(d3.range(10000).map(randomBeta(1, 1))), mean(1, 1), 0.05);
1212
test.inDelta(d3.mean(d3.range(10000).map(randomBeta(1, 2))), mean(1, 2), 0.05);
1313
test.inDelta(d3.mean(d3.range(10000).map(randomBeta(2, 1))), mean(2, 1), 0.05);
@@ -18,7 +18,7 @@ tape("randomBeta(alpha, beta) returns random numbers with a mean of alpha / (alp
1818
});
1919

2020
tape("randomBeta(alpha, beta) returns random numbers with a variance of (alpha * beta) / (alpha + beta)^2 / (alpha + beta + 1)", function(test) {
21-
var randomBeta = d3.randomBeta.source(d3.randomLcg(0.2));
21+
var randomBeta = d3.randomBeta.source(d3.randomLcg(0.8272345925494458));
2222
test.inDelta(d3.variance(d3.range(10000).map(randomBeta(1, 1))), variance(1, 1), 0.05);
2323
test.inDelta(d3.variance(d3.range(10000).map(randomBeta(1, 2))), variance(1, 2), 0.05);
2424
test.inDelta(d3.variance(d3.range(10000).map(randomBeta(2, 1))), variance(2, 1), 0.05);

test/binomial-test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var skew = function(n, p) { return (1 - 2 * p) / Math.sqrt(variance(n, p)); };
1111
var kurt = function(n, p) { return (6 * Math.pow(p, 2) - 6 * p + 1) / (variance(n, p)); };
1212

1313
tape("randomBinomial(n, p) returns random binomial distributed numbers with a mean of n * p", function(test) {
14-
var randomBinomial = d3.randomBinomial.source(d3.randomLcg(0.1));
14+
var randomBinomial = d3.randomBinomial.source(d3.randomLcg(0.3994478770613372));
1515
test.inDelta(d3.mean(d3.range(10000).map(randomBinomial(100, 1))), mean(100, 1), variance(100, 1));
1616
test.inDelta(d3.mean(d3.range(10000).map(randomBinomial(100, .5))), mean(100, .5), variance(100, .5));
1717
test.inDelta(d3.mean(d3.range(10000).map(randomBinomial(100, .25))), mean(100, .25), variance(100, .25));
@@ -21,7 +21,7 @@ tape("randomBinomial(n, p) returns random binomial distributed numbers with a me
2121
});
2222

2323
tape("randomBinomial(n, p) returns random binomial distributed numbers with a variance of n * p * (1 - p)", function(test) {
24-
var randomBinomial = d3.randomBinomial.source(d3.randomLcg(0.2));
24+
var randomBinomial = d3.randomBinomial.source(d3.randomLcg(0.7214876234380256));
2525
test.inDelta(d3.variance(d3.range(10000).map(randomBinomial(100, 1))), variance(100, 1), 0);
2626
test.inDelta(d3.variance(d3.range(10000).map(randomBinomial(100, .5))), variance(100, .5), 0.5);
2727
test.inDelta(d3.variance(d3.range(10000).map(randomBinomial(100, .25))), variance(100, .25), 1);
@@ -31,7 +31,7 @@ tape("randomBinomial(n, p) returns random binomial distributed numbers with a va
3131
});
3232

3333
tape("randomBinomial(n, p) returns random binomial distributed numbers with a skewness of (1 - 2 * p) / sqrt(n * p * (1 - p))", function(test) {
34-
var randomBinomial = d3.randomBinomial.source(d3.randomLcg(0.3));
34+
var randomBinomial = d3.randomBinomial.source(d3.randomLcg(0.0646181509291679));
3535
test.inDelta(skewness(d3.range(10000).map(randomBinomial(100, .05))), skew(100, .05), 0.05);
3636
test.inDelta(skewness(d3.range(10000).map(randomBinomial(100, .10))), skew(100, .10), 0.05);
3737
test.inDelta(skewness(d3.range(10000).map(randomBinomial(100, .15))), skew(100, .15), 0.05);
@@ -45,7 +45,7 @@ tape("randomBinomial(n, p) returns random binomial distributed numbers with a sk
4545
});
4646

4747
tape("randomBinomial(n, p) returns random binomial distributed numbers with a kurtosis excess of (6 * p^2 - 6 * p - 1) / (n * p * (1 - p))", function(test) {
48-
var randomBinomial = d3.randomBinomial.source(d3.randomLcg(0.4));
48+
var randomBinomial = d3.randomBinomial.source(d3.randomLcg(0.6451552018202751));
4949
test.inDelta(kurtosis(d3.range(10000).map(randomBinomial(100, .05))), kurt(100, .05), 0.2);
5050
test.inDelta(kurtosis(d3.range(10000).map(randomBinomial(100, .10))), kurt(100, .10), 0.1);
5151
test.inDelta(kurtosis(d3.range(10000).map(randomBinomial(100, .15))), kurt(100, .15), 0.1);

test/gamma-test.js

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ var tape = require("tape"),
66
require("./inDelta");
77

88
tape("randomGamma(k) returns random numbers with a mean of k", function(test) {
9-
var randomGamma = d3.randomGamma.source(d3.randomLcg(0.1));
9+
var randomGamma = d3.randomGamma.source(d3.randomLcg(0.8177609532536807));
1010
test.inDelta(d3.mean(d3.range(10000).map(randomGamma(0.1))), 0.1, 0.01);
1111
test.inDelta(d3.mean(d3.range(10000).map(randomGamma(0.5))), 0.5, 0.05);
1212
test.inDelta(d3.mean(d3.range(10000).map(randomGamma(1))), 1, 0.05);
@@ -16,7 +16,7 @@ tape("randomGamma(k) returns random numbers with a mean of k", function(test) {
1616
});
1717

1818
tape("randomGamma(k) returns random numbers with a variance of k", function(test) {
19-
var randomGamma = d3.randomGamma.source(d3.randomLcg(0.2));
19+
var randomGamma = d3.randomGamma.source(d3.randomLcg(0.6494198931625885));
2020
test.inDelta(d3.variance(d3.range(10000).map(randomGamma(0.1))), 0.1, 0.005);
2121
test.inDelta(d3.variance(d3.range(10000).map(randomGamma(0.5))), 0.5, 0.05);
2222
test.inDelta(d3.variance(d3.range(10000).map(randomGamma(1))), 1, 0.05);
@@ -26,7 +26,7 @@ tape("randomGamma(k) returns random numbers with a variance of k", function(test
2626
});
2727

2828
tape("randomGamma(k) returns random numbers with a skewness of 2 / sqrt(k)", function(test) {
29-
var randomGamma = d3.randomGamma.source(d3.randomLcg(0.3));
29+
var randomGamma = d3.randomGamma.source(d3.randomLcg(0.02223371708142996));
3030
test.inDelta(skewness(d3.range(10000).map(randomGamma(0.1))), Math.sqrt(40), 1);
3131
test.inDelta(skewness(d3.range(10000).map(randomGamma(0.5))), Math.sqrt(8), 0.25);
3232
test.inDelta(skewness(d3.range(10000).map(randomGamma(1))), 2, 0.1);
@@ -36,7 +36,7 @@ tape("randomGamma(k) returns random numbers with a skewness of 2 / sqrt(k)", fun
3636
});
3737

3838
tape("randomGamma(k) returns random numbers with an excess kurtosis of 6 / k", function(test) {
39-
var randomGamma = d3.randomGamma.source(d3.randomLcg(0.4));
39+
var randomGamma = d3.randomGamma.source(d3.randomLcg(0.19568718910927974));
4040
test.inDelta(kurtosis(d3.range(10000).map(randomGamma(0.1))), 60, 15);
4141
test.inDelta(kurtosis(d3.range(10000).map(randomGamma(0.5))), 12, 3);
4242
test.inDelta(kurtosis(d3.range(10000).map(randomGamma(1))), 6, 1.5);
@@ -46,7 +46,7 @@ tape("randomGamma(k) returns random numbers with an excess kurtosis of 6 / k", f
4646
});
4747

4848
tape("randomGamma(k, theta) returns random numbers with a mean of k * theta and a variance of k * theta^2", function(test) {
49-
var randomGamma = d3.randomGamma.source(d3.randomLcg(0.5));
49+
var randomGamma = d3.randomGamma.source(d3.randomLcg(0.9608725416165995));
5050
test.inDelta(d3.mean(d3.range(10000).map(randomGamma(1, 2))), 2, 0.05);
5151
test.inDelta(d3.mean(d3.range(10000).map(randomGamma(2, 4))), 8, 0.2);
5252
test.inDelta(d3.deviation(d3.range(10000).map(randomGamma(1, 2))), 2, 0.1);

test/geometric-test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ var skew = function(p) { return (2 - p) / Math.sqrt(1 - p); };
1111
var kurt = function(p) { return (Math.pow(p, 2) - 6 * p + 6) / (1 - p); };
1212

1313
tape("randomGeometric(p) returns random geometrically distributed numbers with a mean of 1 / p.", function(test) {
14-
var randomGeometric = d3.randomGeometric.source(d3.randomLcg(0.1));
14+
var randomGeometric = d3.randomGeometric.source(d3.randomLcg(0.7687729138471455));
1515
test.inDelta(d3.mean(d3.range(10000).map(randomGeometric(1))), mean(1), variance(1));
1616
test.inDelta(d3.mean(d3.range(10000).map(randomGeometric(.5))), mean(.5), variance(.5));
1717
test.inDelta(d3.mean(d3.range(10000).map(randomGeometric(0.25))), mean(0.25), variance(0.25));
@@ -20,7 +20,7 @@ tape("randomGeometric(p) returns random geometrically distributed numbers with a
2020
});
2121

2222
tape("randomGeometric(p) returns random geometrically distributed numbers with a variance of (1 - p) / p^2.", function(test) {
23-
var randomGeometric = d3.randomGeometric.source(d3.randomLcg(0.2));
23+
var randomGeometric = d3.randomGeometric.source(d3.randomLcg(0.7194220774328326));
2424
test.inDelta(d3.variance(d3.range(10000).map(randomGeometric(1))), variance(1), variance(1) * 0.05);
2525
test.inDelta(d3.variance(d3.range(10000).map(randomGeometric(.5))), variance(.5), variance(.5) * 0.05);
2626
test.inDelta(d3.variance(d3.range(10000).map(randomGeometric(0.25))), variance(0.25), variance(.25) * 0.05);
@@ -29,15 +29,15 @@ tape("randomGeometric(p) returns random geometrically distributed numbers with a
2929
});
3030

3131
tape("randomGeometric(p) returns random geometrically distributed numbers with a skewness of (2 - p) / sqrt(1 - p).", function(test) {
32-
var randomGeometric = d3.randomGeometric.source(d3.randomLcg(0.3));
32+
var randomGeometric = d3.randomGeometric.source(d3.randomLcg(0.016030992648006448));
3333
test.inDelta(skewness(d3.range(10000).map(randomGeometric(.5))), skew(.5), 0.05 * skew(.5));
3434
test.inDelta(skewness(d3.range(10000).map(randomGeometric(0.25))), skew(0.25), 0.05 * skew(0.25));
3535
test.inDelta(skewness(d3.range(10000).map(randomGeometric(0.125))), skew(0.125), 0.1 * skew(0.125));
3636
test.end();
3737
});
3838

3939
tape("randomGeometric(p) returns random geometrically distributed numbers with a kurtosis excess of (p^2 - 6 * p + 6) / (1 - p).", function(test) {
40-
var randomGeometric = d3.randomGeometric.source(d3.randomLcg(0.42));
40+
var randomGeometric = d3.randomGeometric.source(d3.randomLcg(0.4039802168183795));
4141
test.inDelta(kurtosis(d3.range(20000).map(randomGeometric(.5))), kurt(.5), 0.2 * kurt(.5));
4242
test.inDelta(kurtosis(d3.range(20000).map(randomGeometric(0.25))), kurt(0.25), 0.3 * kurt(0.25));
4343
test.inDelta(kurtosis(d3.range(20000).map(randomGeometric(0.125))), kurt(0.125), 0.3 * kurt(0.125));

test/int-test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,27 +4,27 @@ var tape = require("tape"),
44
require("./inDelta");
55

66
tape("randomInt(max) returns random integers with a mean of (max - 1) / 2", function(test) {
7-
var randomInt = d3.randomInt.source(d3.randomLcg(0.1));
7+
var randomInt = d3.randomInt.source(d3.randomLcg(0.7350864698209636));
88
test.inDelta(d3.mean(d3.range(10000).map(randomInt(3))), 1.0, 0.05);
99
test.inDelta(d3.mean(d3.range(10000).map(randomInt(21))), 10.0, 0.5);
1010
test.end();
1111
});
1212

1313
tape("randomInt(max) returns random integers in the range [0, max - 1]", function(test) {
14-
var randomInt = d3.randomInt.source(d3.randomLcg(0.2));
14+
var randomInt = d3.randomInt.source(d3.randomLcg(0.17809137433591848));
1515
test.deepEqual(d3.extent(d3.range(10000).map(randomInt(3))), [0, 2]);
1616
test.deepEqual(d3.extent(d3.range(10000).map(randomInt(21))), [0, 20]);
1717
test.end();
1818
});
1919

2020
tape("randomInt(min, max) returns random integers with a mean of (min + max - 1) / 2", function(test) {
21-
var randomInt = d3.randomInt.source(d3.randomLcg(0.3));
21+
var randomInt = d3.randomInt.source(d3.randomLcg(0.46394764422984647));
2222
test.inDelta(d3.mean(d3.range(10000).map(randomInt(10, 43))), 26, 0.5);
2323
test.end();
2424
});
2525

2626
tape("randomInt(min, max) returns random integers in the range [min, max - 1]", function(test) {
27-
var randomInt = d3.randomInt.source(d3.randomLcg(0.4));
27+
var randomInt = d3.randomInt.source(d3.randomLcg(0.9598431138570096));
2828
test.deepEqual(d3.extent(d3.range(10000).map(randomInt(10, 42))), [10, 41]);
2929
test.end();
3030
});

test/irwinHall-test.js

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ var tape = require("tape"),
66
require("./inDelta");
77

88
tape("d3.randomIrwinHall(n) returns random numbers with a mean of n / 2", function(test) {
9-
var randomIrwinHall = d3.randomIrwinHall.source(d3.randomLcg(0.1));
9+
var randomIrwinHall = d3.randomIrwinHall.source(d3.randomLcg(0.028699383123896194));
1010
test.inDelta(d3.mean(d3.range(10000).map(randomIrwinHall(1))), 1 / 2, 0.05);
1111
test.inDelta(d3.mean(d3.range(10000).map(randomIrwinHall(10))), 10 / 2, 0.05);
1212
test.inDelta(d3.mean(d3.range(10000).map(randomIrwinHall(1.5))), 1.5 / 2, 0.05);
@@ -15,7 +15,7 @@ tape("d3.randomIrwinHall(n) returns random numbers with a mean of n / 2", functi
1515
});
1616

1717
tape("d3.randomIrwinHall(n) returns random numbers with a variance of n / 12", function(test) {
18-
var randomIrwinHall = d3.randomIrwinHall.source(d3.randomLcg(0.2));
18+
var randomIrwinHall = d3.randomIrwinHall.source(d3.randomLcg(0.1515471143624345));
1919
test.inDelta(d3.variance(d3.range(10000).map(randomIrwinHall(1))), 1 / 12, 0.05);
2020
test.inDelta(d3.variance(d3.range(10000).map(randomIrwinHall(10))), 10 / 12, 0.05);
2121
test.inDelta(d3.variance(d3.range(10000).map(randomIrwinHall(1.5))), 1.5 / 12, 0.05);
@@ -24,7 +24,7 @@ tape("d3.randomIrwinHall(n) returns random numbers with a variance of n / 12", f
2424
});
2525

2626
tape("d3.randomIrwinHall(n) returns random numbers with a skewness of 0", function(test) {
27-
var randomIrwinHall = d3.randomIrwinHall.source(d3.randomLcg(0.3));
27+
var randomIrwinHall = d3.randomIrwinHall.source(d3.randomLcg(0.47334122849782845));
2828
test.inDelta(skewness(d3.range(10000).map(randomIrwinHall(1))), 0, 0.05);
2929
test.inDelta(skewness(d3.range(10000).map(randomIrwinHall(10))), 0, 0.05);
3030
test.inDelta(skewness(d3.range(10000).map(randomIrwinHall(1.5))), 0, 0.05);
@@ -33,7 +33,7 @@ tape("d3.randomIrwinHall(n) returns random numbers with a skewness of 0", functi
3333
});
3434

3535
tape("d3.randomIrwinHall(n) returns random numbers with a kurtosis of -6 / (5 * n)", function(test) {
36-
var randomIrwinHall = d3.randomIrwinHall.source(d3.randomLcg(0.4));
36+
var randomIrwinHall = d3.randomIrwinHall.source(d3.randomLcg(0.8217913599574529));
3737
test.inDelta(kurtosis(d3.range(10000).map(randomIrwinHall(1))), -6 / 5, 0.1);
3838
test.inDelta(kurtosis(d3.range(10000).map(randomIrwinHall(10))), -6 / 50, 0.1);
3939
test.inDelta(kurtosis(d3.range(10000).map(randomIrwinHall(1.5))), -6 / 7.5, 0.05);

0 commit comments

Comments
 (0)