Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1776)

Unified Diff: tests/lib_strong/math/random_test.dart

Issue 2995343002: Migrated test block 216 to Dart 2.0. (Closed)
Patch Set: Migrated min_max_test to Dart 2.0 Created 3 years, 4 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « tests/lib_strong/math/random_secure_test.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/lib_strong/math/random_test.dart
diff --git a/tests/lib_strong/math/random_test.dart b/tests/lib_strong/math/random_test.dart
deleted file mode 100644
index 7ee98b0022a6f0148ca0dc3c8399e8a572e140ed..0000000000000000000000000000000000000000
--- a/tests/lib_strong/math/random_test.dart
+++ /dev/null
@@ -1,235 +0,0 @@
-// Copyright (c) 2013, the Dart project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-
-// Test that rnd.nextInt with a seed generates the same sequence each time.
-
-// Library tag to allow Dartium to run the test.
-library random_test;
-
-import "package:expect/expect.dart";
-import 'dart:math';
-
-main() {
- checkSequence();
- checkSeed();
-}
-
-void checkSequence() {
- // Check the sequence of numbers generated by the random generator for a seed
- // doesn't change unintendedly, and it agrees between implementations.
- var rnd = new Random(20130307);
- // Make sure we do not break the random number generation.
- // If the random algorithm changes, make sure both the VM and dart2js
- // generate the same new sequence.
- var i = 1;
- Expect.equals(0, rnd.nextInt(i *= 2));
- Expect.equals(3, rnd.nextInt(i *= 2));
- Expect.equals(7, rnd.nextInt(i *= 2));
- Expect.equals(5, rnd.nextInt(i *= 2));
- Expect.equals(29, rnd.nextInt(i *= 2));
- Expect.equals(17, rnd.nextInt(i *= 2));
- Expect.equals(104, rnd.nextInt(i *= 2));
- Expect.equals(199, rnd.nextInt(i *= 2));
- Expect.equals(408, rnd.nextInt(i *= 2));
- Expect.equals(362, rnd.nextInt(i *= 2));
- Expect.equals(995, rnd.nextInt(i *= 2));
- Expect.equals(2561, rnd.nextInt(i *= 2));
- Expect.equals(2548, rnd.nextInt(i *= 2));
- Expect.equals(9553, rnd.nextInt(i *= 2));
- Expect.equals(2628, rnd.nextInt(i *= 2));
- Expect.equals(42376, rnd.nextInt(i *= 2));
- Expect.equals(101848, rnd.nextInt(i *= 2));
- Expect.equals(85153, rnd.nextInt(i *= 2));
- Expect.equals(495595, rnd.nextInt(i *= 2));
- Expect.equals(647122, rnd.nextInt(i *= 2));
- Expect.equals(793546, rnd.nextInt(i *= 2));
- Expect.equals(1073343, rnd.nextInt(i *= 2));
- Expect.equals(4479969, rnd.nextInt(i *= 2));
- Expect.equals(9680425, rnd.nextInt(i *= 2));
- Expect.equals(28460171, rnd.nextInt(i *= 2));
- Expect.equals(49481738, rnd.nextInt(i *= 2));
- Expect.equals(9878974, rnd.nextInt(i *= 2));
- Expect.equals(132552472, rnd.nextInt(i *= 2));
- Expect.equals(210267283, rnd.nextInt(i *= 2));
- Expect.equals(125422442, rnd.nextInt(i *= 2));
- Expect.equals(226275094, rnd.nextInt(i *= 2));
- Expect.equals(1639629168, rnd.nextInt(i *= 2));
- Expect.equals(0x100000000, i);
- // If max is too large expect an ArgumentError.
- Expect.throws(() => rnd.nextInt(i + 1), (e) => e is ArgumentError);
-
- rnd = new Random(6790);
- Expect.approxEquals(0.1202733131, rnd.nextDouble());
- Expect.approxEquals(0.5554054805, rnd.nextDouble());
- Expect.approxEquals(0.0385160727, rnd.nextDouble());
- Expect.approxEquals(0.2836345217, rnd.nextDouble());
-}
-
-void checkSeed() {
- // Check that various seeds generate the expected first values.
- // 53 significant bits, so the number is representable in JS.
- var rawSeed = 0x19a32c640e1d71;
- var expectations = [
- 26007,
- 43006,
- 46458,
- 18610,
- 16413,
- 50455,
- 2164,
- 47399,
- 8859,
- 9732,
- 20367,
- 33935,
- 54549,
- 54913,
- 4819,
- 24198,
- 49353,
- 22277,
- 51852,
- 35959,
- 45347,
- 12100,
- 10136,
- 22372,
- 15293,
- 20066,
- 1351,
- 49030,
- 64845,
- 12793,
- 50916,
- 55784,
- 43170,
- 27653,
- 34696,
- 1492,
- 50255,
- 9597,
- 45929,
- 2874,
- 27629,
- 53084,
- 36064,
- 42140,
- 32016,
- 41751,
- 13967,
- 20516,
- 578,
- 16773,
- 53064,
- 14814,
- 22737,
- 48846,
- 45147,
- 10205,
- 56584,
- 63711,
- 44128,
- 21099,
- 47966,
- 35471,
- 39576,
- 1141,
- 45716,
- 54940,
- 57406,
- 15437,
- 31721,
- 35044,
- 28136,
- 39797,
- 50801,
- 22184,
- 58686
- ];
- var negative_seed_expectations = [
- 12170,
- 42844,
- 39228,
- 64032,
- 29046,
- 57572,
- 8453,
- 52224,
- 27060,
- 28454,
- 20510,
- 28804,
- 59221,
- 53422,
- 11047,
- 50864,
- 33997,
- 19611,
- 1250,
- 65088,
- 19690,
- 11396,
- 20,
- 48867,
- 44862,
- 47129,
- 58724,
- 13325,
- 50005,
- 33320,
- 16523,
- 4740,
- 63721,
- 63272,
- 30545,
- 51403,
- 35845,
- 3943,
- 31850,
- 23148,
- 26307,
- 1724,
- 29281,
- 39988,
- 43653,
- 48012,
- 43810,
- 16755,
- 13105,
- 25325,
- 32648,
- 19958,
- 38838,
- 8322,
- 3421,
- 28624,
- 17269,
- 45385,
- 50680,
- 1696,
- 26088,
- 2787,
- 48566,
- 34357,
- 27731,
- 51764,
- 8455,
- 16498,
- 59721,
- 59568,
- 46333,
- 7935,
- 51459,
- 36766,
- 50711
- ];
- for (var i = 0, m = 1; i < 75; i++) {
- Expect.equals(expectations[i], new Random(rawSeed * m).nextInt(65536));
- Expect.equals(
- negative_seed_expectations[i], new Random(rawSeed * -m).nextInt(65536));
- m *= 2;
- }
- // And test zero seed too.
- Expect.equals(21391, new Random(0).nextInt(65536));
-}
« no previous file with comments | « tests/lib_strong/math/random_secure_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698