add unittest and bugfix

This commit is contained in:
ericzhang
2013-05-17 17:51:11 +08:00
parent 3be3707b50
commit 413da70320
2 changed files with 100 additions and 3 deletions
+3 -2
View File
@@ -80,7 +80,7 @@
return a + b * log(-log(_this.uniform(0, 1)));
};
exports.fRadio = function (v, w) {
exports.fRatio = function (v, w) {
return (_this.chiSquare(v) / v) / (_this.chiSquare(w) / w);
};
@@ -223,7 +223,7 @@
do {
x = _this.uniform(0, areaMax) / (yMax - yMin) + xMin;
y = _this.uniform(yMin, yMax);
} while (y > ysf(x, xMin, xMax));
} while (y > usf(x, xMin, xMax));
return x;
};
@@ -251,6 +251,7 @@
exports.hypergeometric = function (n, N, K) {
var count = 0;
for (var i = 0; i < n; i++, N--) {
var p = K / N;
if (_this.bernoulli(p)) {
count++;
K--;
+97 -1
View File
@@ -7,7 +7,103 @@ describe('Random', function () {
random.arcsine(0, 1).should.be.a('number');
});
it ('should generate random number with Beta', function () {
random.arcsine(0.5, 5, 0, 3).should.be.a('number');
random.beta(1, 1, 0, 1).should.be.a('number');
});
it ('should generate random number with Cauchy', function () {
random.cauchy(1, 1).should.be.a('number');
});
it ('should generate random number with Chi-Square', function () {
random.chiSquare(1).should.be.a('number');
});
it ('should generate random number with Cosine', function () {
random.cosine(0, 1).should.be.a('number');
});
it ('should generate random number with DoubleLog', function () {
random.doubleLog(0, 1).should.be.a('number');
});
it ('should generate random number with Erlang', function () {
random.erlang(1, 1).should.be.a('number');
});
it ('should generate random number with Exponential', function () {
random.exponential(1, 1).should.be.a('number');
});
it ('should generate random number with ExtremeValue', function () {
random.extremeValue(0.5, 5, 0, 1).should.be.a('number');
});
it ('should generate random number with F Ratio', function () {
random.fRatio(1, 1).should.be.a('number');
});
it ('should generate random number with Gamma', function () {
random.gamma(1, 1, 1).should.be.a('number');
});
it ('should generate random number with Laplace', function () {
random.laplace(1, 1).should.be.a('number');
});
it ('should generate random number with Logarithmic', function () {
random.logarithmic(0, 1).should.be.a('number');
});
it ('should generate random number with Logistic', function () {
random.logistic(1, 1).should.be.a('number');
});
it ('should generate random number with Lognormal', function () {
random.lognormal(1, 1, 1).should.be.a('number');
});
it ('should generate random number with Normal', function () {
random.normal(1, 1).should.be.a('number');
});
it ('should generate random number with Parabolic', function () {
random.parabolic(0, 1).should.be.a('number');
});
it ('should generate random number with Pareto', function () {
random.pareto(1).should.be.a('number');
});
it ('should generate random number with Pearson5', function () {
random.pearson5(1, 1).should.be.a('number');
});
it ('should generate random number with Pearson6', function () {
random.pearson6(1, 1, 1).should.be.a('number');
});
it ('should generate random number with Power', function () {
random.power(1).should.be.a('number');
});
it ('should generate random number with Rayleigh', function () {
random.rayleigh(1, 1).should.be.a('number');
});
it ('should generate random number with Student\'s T', function () {
random.studentT(1).should.be.a('number');
});
it ('should generate random number with Triangular', function () {
random.triangular(0, 1, 1).should.be.a('number');
});
it ('should generate random number with Uniform', function () {
random.uniform(0, 1).should.be.a('number');
});
it ('should generate random number with Weibull', function () {
random.weibull(1, 1, 1).should.be.a('number');
});
it ('should generate random number with Bernoulli', function () {
random.bernoulli(0.5).should.be.a('number');
});
it ('should generate random number with Binomial', function () {
random.binomial(10, 0.5).should.be.a('number');
});
it ('should generate random number with Geometric', function () {
random.geometric(0.5).should.be.a('number');
});
it ('should generate random number with Hypergeometric', function () {
random.hypergeometric(6, 10, 4).should.be.a('number');
});
it ('should generate random number with NegativeBinomial', function () {
random.negativeBinomial(5, 0.5).should.be.a('number');
});
it ('should generate random number with Pascal', function () {
random.pascal(5, 0.5).should.be.a('number');
});
it ('should generate random number with Poisson', function () {
random.poisson(5).should.be.a('number');
});
it ('should generate random number with UniformDiscrete', function () {
random.uniformDiscrete(1, 10).should.be.a('number');
});
});
});