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

Unified Diff: tests/standalone/pow_test.dart

Issue 12180022: Fix Issue 8259: dart:math pow broken for large integers. (Closed) Base URL: http://dart.googlecode.com/svn/branches/bleeding_edge/dart/
Patch Set: Created 7 years, 10 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 | « runtime/lib/double.cc ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/standalone/pow_test.dart
===================================================================
--- tests/standalone/pow_test.dart (revision 0)
+++ tests/standalone/pow_test.dart (revision 0)
@@ -0,0 +1,95 @@
+// 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.
+//
+// Dart test program for testing math's pow.
+
+import 'dart:math';
+
+var expectedResults =
+[
+ 1,
+ 2,
+ 4,
+ 8,
+ 16,
+ 32,
+ 64,
+ 128,
+ 256,
+ 512,
+ 1024,
+ 2048,
+ 4096,
+ 8192,
+ 16384,
+ 32768,
+ 65536,
+ 131072,
+ 262144,
+ 524288,
+ 1048576,
+ 2097152,
+ 4194304,
+ 8388608,
+ 16777216,
+ 33554432,
+ 67108864,
+ 134217728,
+ 268435456,
+ 536870912,
+ 1073741824,
+ 2147483648,
+ 4294967296,
+ 8589934592,
+ 17179869184,
+ 34359738368,
+ 68719476736,
+ 137438953472,
+ 274877906944,
+ 549755813888,
+ 1099511627776,
+ 2199023255552,
+ 4398046511104,
+ 8796093022208,
+ 17592186044416,
+ 35184372088832,
+ 70368744177664,
+ 140737488355328,
+ 281474976710656,
+ 562949953421312,
+ 1125899906842624,
+ 2251799813685248,
+ 4503599627370496,
+ 9007199254740992,
+ 18014398509481984,
+ 36028797018963968,
+ 72057594037927936,
+ 144115188075855872,
+ 288230376151711744,
+ 576460752303423488,
+ 1152921504606846976,
+ 2305843009213693952,
+ 4611686018427387904,
+ 9223372036854775808,
+ 18446744073709551616,
+ 36893488147419103232,
+ 73786976294838206464,
+ 147573952589676412928
+];
+
+
+void main() {
+ int exp = 0;
+ for (int val in expectedResults) {
+ Expect.equals(val, pow(2, exp++));
+ }
+ // Optimize it.
+ for (int i = 0; i < 8888; i++) {
+ pow(2, 3);
+ }
+ exp = 0;
+ for (int val in expectedResults) {
+ Expect.equals(val, pow(2, exp++));
+ }
+}
« no previous file with comments | « runtime/lib/double.cc ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698