mirror of
https://github.com/dart-lang/sdk
synced 2024-09-05 16:41:07 +00:00
![Leaf Petersen](/assets/img/avatar_default.png)
Change-Id: Ib33169c3e0ffc870915c189404074a1dea472546 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/196548 Reviewed-by: Bob Nystrom <rnystrom@google.com> Commit-Queue: Leaf Petersen <leafp@google.com>
100 lines
1.6 KiB
Dart
100 lines
1.6 KiB
Dart
// 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.
|
|
|
|
// @dart = 2.9
|
|
|
|
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++;
|
|
}
|
|
}
|