| Index: test/codegen/expect/lib/math/double_pow_test.js
|
| diff --git a/test/codegen/expect/lib/math/double_pow_test.js b/test/codegen/expect/lib/math/double_pow_test.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..df094bdeb043f5c4bf0edf69f424b1800bd4cdd5
|
| --- /dev/null
|
| +++ b/test/codegen/expect/lib/math/double_pow_test.js
|
| @@ -0,0 +1,117 @@
|
| +dart_library.library('lib/math/double_pow_test', null, /* Imports */[
|
| + 'dart_sdk',
|
| + 'expect'
|
| +], function load__double_pow_test(exports, dart_sdk, expect) {
|
| + 'use strict';
|
| + const core = dart_sdk.core;
|
| + const _interceptors = dart_sdk._interceptors;
|
| + const math = dart_sdk.math;
|
| + const dart = dart_sdk.dart;
|
| + const dartx = dart_sdk.dartx;
|
| + const expect$ = expect.expect;
|
| + const double_pow_test = Object.create(null);
|
| + let JSArrayOfdouble = () => (JSArrayOfdouble = dart.constFn(_interceptors.JSArray$(core.double)))();
|
| + let doubleAnddoubleTovoid = () => (doubleAnddoubleTovoid = dart.constFn(dart.definiteFunctionType(dart.void, [core.double, core.double])))();
|
| + let VoidTodynamic = () => (VoidTodynamic = dart.constFn(dart.definiteFunctionType(dart.dynamic, [])))();
|
| + double_pow_test.checkVeryClose = function(a, b) {
|
| + if (a == 0.0) {
|
| + let minimalDouble = 5e-324;
|
| + expect$.Expect.equals(true, dart.notNull(b[dartx.abs]()) <= minimalDouble);
|
| + return;
|
| + }
|
| + if (b == 0.0) {
|
| + expect$.Expect.equals(a, b);
|
| + }
|
| + let shiftRightBy52 = 2.220446049250313e-16;
|
| + let shiftedA = (dart.notNull(a) * shiftRightBy52)[dartx.abs]();
|
| + let limitLow = dart.notNull(a) - dart.notNull(shiftedA);
|
| + let limitHigh = dart.notNull(a) + dart.notNull(shiftedA);
|
| + expect$.Expect.equals(false, a == limitLow);
|
| + expect$.Expect.equals(false, a == limitHigh);
|
| + expect$.Expect.equals(true, limitLow <= dart.notNull(b));
|
| + expect$.Expect.equals(true, dart.notNull(b) <= limitHigh);
|
| + };
|
| + dart.fn(double_pow_test.checkVeryClose, doubleAnddoubleTovoid());
|
| + double_pow_test.NaN = core.double.NAN;
|
| + double_pow_test.Infinity = core.double.INFINITY;
|
| + dart.defineLazy(double_pow_test, {
|
| + get samples() {
|
| + return JSArrayOfdouble().of([double_pow_test.NaN, -double_pow_test.Infinity, -3.0, -2.0, -1.5, -1.0, -0.5, -0.0, 0.5, 1.0, 1.5, 2.0, 3.0, double_pow_test.Infinity]);
|
| + },
|
| + set samples(_) {}
|
| + });
|
| + double_pow_test.test = function() {
|
| + for (let d of double_pow_test.samples) {
|
| + expect$.Expect.identical(1.0, math.pow(d, 0.0), dart.str`${d}`);
|
| + expect$.Expect.identical(1.0, math.pow(d, -0.0), dart.str`${d}`);
|
| + }
|
| + for (let d of double_pow_test.samples) {
|
| + expect$.Expect.identical(1.0, math.pow(1.0, d), dart.str`${d}`);
|
| + }
|
| + for (let d of double_pow_test.samples) {
|
| + if (d != 0.0) expect$.Expect.isTrue(math.pow(double_pow_test.NaN, d)[dartx.isNaN], dart.str`${d}`);
|
| + if (d != 1.0) expect$.Expect.isTrue(math.pow(d, double_pow_test.NaN)[dartx.isNaN], dart.str`${d}`);
|
| + }
|
| + for (let d of double_pow_test.samples) {
|
| + if (dart.notNull(d) < 0 && !dart.test(d[dartx.isInfinite])) {
|
| + expect$.Expect.isTrue(math.pow(d, 0.5)[dartx.isNaN], dart.str`${d}`);
|
| + expect$.Expect.isTrue(math.pow(d, -0.5)[dartx.isNaN], dart.str`${d}`);
|
| + expect$.Expect.isTrue(math.pow(d, 1.5)[dartx.isNaN], dart.str`${d}`);
|
| + expect$.Expect.isTrue(math.pow(d, -1.5)[dartx.isNaN], dart.str`${d}`);
|
| + }
|
| + }
|
| + for (let d of double_pow_test.samples) {
|
| + if (dart.notNull(d) < 0) {
|
| + expect$.Expect.identical(0.0, math.pow(double_pow_test.Infinity, d), dart.str`${d}`);
|
| + }
|
| + if (dart.notNull(d) > 0) {
|
| + expect$.Expect.identical(double_pow_test.Infinity, math.pow(double_pow_test.Infinity, d), dart.str`${d}`);
|
| + }
|
| + }
|
| + for (let d of double_pow_test.samples) {
|
| + if (dart.notNull(d) < 0) {
|
| + expect$.Expect.identical(double_pow_test.Infinity, math.pow(0.0, d), dart.str`${d}`);
|
| + }
|
| + if (dart.notNull(d) > 0) {
|
| + expect$.Expect.identical(0.0, math.pow(0.0, d), dart.str`${d}`);
|
| + }
|
| + }
|
| + for (let d of double_pow_test.samples) {
|
| + if (!dart.test(d[dartx.isInfinite]) && !dart.test(d[dartx.isNaN])) {
|
| + let dint = d[dartx.toInt]();
|
| + if (d == dint && dart.test(dint[dartx.isOdd])) {
|
| + expect$.Expect.identical(-dart.notNull(math.pow(double_pow_test.Infinity, d)), math.pow(-double_pow_test.Infinity, d));
|
| + expect$.Expect.identical(-dart.notNull(math.pow(0.0, d)), math.pow(-0.0, d));
|
| + continue;
|
| + }
|
| + }
|
| + expect$.Expect.identical(math.pow(double_pow_test.Infinity, d), math.pow(-double_pow_test.Infinity, d));
|
| + expect$.Expect.identical(math.pow(0.0, d), math.pow(-0.0, d));
|
| + }
|
| + for (let d of double_pow_test.samples) {
|
| + if (dart.notNull(d[dartx.abs]()) < 1) {
|
| + expect$.Expect.identical(0.0, math.pow(d, double_pow_test.Infinity));
|
| + } else if (dart.notNull(d[dartx.abs]()) > 1) {
|
| + expect$.Expect.identical(double_pow_test.Infinity, math.pow(d, double_pow_test.Infinity));
|
| + } else if (d == -1) {
|
| + expect$.Expect.identical(1.0, math.pow(d, double_pow_test.Infinity));
|
| + }
|
| + expect$.Expect.identical(1 / dart.notNull(math.pow(d, double_pow_test.Infinity)), math.pow(d, -double_pow_test.Infinity));
|
| + }
|
| + double_pow_test.checkVeryClose(16.0, math.pow(4.0, 2.0));
|
| + double_pow_test.checkVeryClose(math.SQRT2, math.pow(2.0, 0.5));
|
| + double_pow_test.checkVeryClose(math.SQRT1_2, math.pow(0.5, 0.5));
|
| + expect$.Expect.identical(5e-324, math.pow(2.0, -1074.0));
|
| + expect$.Expect.identical(double_pow_test.Infinity, math.pow(10.0, 309.0));
|
| + expect$.Expect.identical(0.0, math.pow(10.0, -325.0));
|
| + expect$.Expect.identical(double_pow_test.Infinity, math.pow(-0.0, -9223372036854775809));
|
| + };
|
| + dart.fn(double_pow_test.test, VoidTodynamic());
|
| + double_pow_test.main = function() {
|
| + for (let i = 0; i < 10; i++)
|
| + double_pow_test.test();
|
| + };
|
| + dart.fn(double_pow_test.main, VoidTodynamic());
|
| + // Exports:
|
| + exports.double_pow_test = double_pow_test;
|
| +});
|
|
|