diff options
Diffstat (limited to 'contexts/data/lib/closure-library/closure/goog/testing/pseudorandom_test.html')
-rw-r--r-- | contexts/data/lib/closure-library/closure/goog/testing/pseudorandom_test.html | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/contexts/data/lib/closure-library/closure/goog/testing/pseudorandom_test.html b/contexts/data/lib/closure-library/closure/goog/testing/pseudorandom_test.html deleted file mode 100644 index 62d0261..0000000 --- a/contexts/data/lib/closure-library/closure/goog/testing/pseudorandom_test.html +++ /dev/null @@ -1,98 +0,0 @@ -<!DOCTYPE html> -<html> -<!-- -Copyright 2009 The Closure Library Authors. All Rights Reserved. - -Use of this source code is governed by the Apache License, Version 2.0. -See the COPYING file for details. ---> -<head> -<meta http-equiv="X-UA-Compatible" content="IE=edge"> -<title>Closure Unit Tests - goog.testing.PseudoRandom</title> -<script src="../base.js"></script> -<script> - goog.require('goog.testing.PseudoRandom'); - goog.require('goog.testing.jsunit'); -</script> -</head> -<body> -<script> - - function runFairnessTest(sides, rolls, chiSquareLimit) { - // Initialize the count table for dice rolls. - var counts = []; - for (var i = 0; i < sides; ++i) { - counts[i] = 0; - } - // Roll the dice many times and count the results. - for (var i = 0; i < rolls; ++i) { - ++counts[Math.floor(Math.random() * sides)]; - } - // If the dice is fair, we expect a uniform distribution. - var expected = rolls / sides; - // Pearson's chi-square test for a distribution fit. - var chiSquare = 0 - for (var i = 0; i < sides; ++i) { - chiSquare += (counts[i] - expected) * (counts[i] - expected) / expected; - } - assert('Chi-square test for a distribution fit failed', - chiSquare < chiSquareLimit); - } - - function testInstall() { - var random = new goog.testing.PseudoRandom(); - var originalRandom = Math.random; - - assertFalse(!!random.installed_); - - random.install(); - assertTrue(random.installed_); - assertNotEquals(Math.random, originalRandom); - - random.uninstall(); - assertFalse(random.installed_); - assertEquals(originalRandom, Math.random); - } - - function testBounds() { - var random = new goog.testing.PseudoRandom(); - random.install(); - - for (var i = 0; i < 100000; ++i) { - var value = Math.random(); - assert('Random value out of bounds', value >= 0 && value < 1); - } - - random.uninstall(); - } - - function testFairness() { - var random = new goog.testing.PseudoRandom(0, true); - - // Chi-square statistics: p-value = 0.05, df = 5, limit = 11.07. - runFairnessTest(6, 100000, 11.07); - // Chi-square statistics: p-value = 0.05, df = 100, limit = 124.34. - runFairnessTest(101, 100000, 124.34); - - random.uninstall(); - } - - function testReseed() { - var random = new goog.testing.PseudoRandom(100, true); - - var sequence = []; - for (var i = 0; i < 64000; ++i) { - sequence.push(Math.random()); - } - - random.seed(100); - for (var i = 0; i < sequence.length; ++i) { - assertEquals(sequence[i], Math.random()); - } - - random.uninstall(); - } - -</script> -</body> -</html> |