|  | // 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. | 
|  |  | 
|  | library pow_test; | 
|  |  | 
|  | import "package:expect/expect.dart"; | 
|  | 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, | 
|  | ]; | 
|  |  | 
|  | void main() { | 
|  | int exp = 0; | 
|  | for (int val in expectedResults) { | 
|  | Expect.equals(val, pow(2, exp)); | 
|  | Expect.equals(val.toDouble(), pow(2, exp.toDouble())); | 
|  | exp++; | 
|  | } | 
|  |  | 
|  | // Optimize it. | 
|  | for (int i = 0; i < 8888; i++) { | 
|  | pow(2, 3); | 
|  | pow(2.0, 3.0); | 
|  | } | 
|  | exp = 0; | 
|  | for (int val in expectedResults) { | 
|  | Expect.equals(val, pow(2, exp)); | 
|  | Expect.equals(val.toDouble(), pow(2, exp.toDouble())); | 
|  | exp++; | 
|  | } | 
|  | } |