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

Side by Side Diff: tests/lib/math/double_pow_test.dart

Issue 87953002: Change Expect.identical(NaN, x) to not assume NaNs are identical. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years 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 unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « tests/corelib/num_parse_test.dart ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2011, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 library math_test; 5 library math_test;
6 import "package:expect/expect.dart"; 6 import "package:expect/expect.dart";
7 import 'dart:math'; 7 import 'dart:math';
8 8
9 void checkVeryClose(double a, double b) { 9 void checkVeryClose(double a, double b) {
10 // We find a ulp (unit in the last place) by shifting the original number 10 // We find a ulp (unit in the last place) by shifting the original number
(...skipping 48 matching lines...) Expand 10 before | Expand all | Expand 10 after
59 // if `y` is zero (0.0 or -0.0), the result is always 1.0. 59 // if `y` is zero (0.0 or -0.0), the result is always 1.0.
60 Expect.identical(1.0, pow(d, 0.0), "$d"); 60 Expect.identical(1.0, pow(d, 0.0), "$d");
61 Expect.identical(1.0, pow(d, -0.0), "$d"); 61 Expect.identical(1.0, pow(d, -0.0), "$d");
62 } 62 }
63 for (var d in samples) { 63 for (var d in samples) {
64 // if `x` is 1.0, the result is always 1.0. 64 // if `x` is 1.0, the result is always 1.0.
65 Expect.identical(1.0, pow(1.0, d), "$d"); 65 Expect.identical(1.0, pow(1.0, d), "$d");
66 } 66 }
67 for (var d in samples) { 67 for (var d in samples) {
68 // otherwise, if either `x` or `y` is NaN then the result is NaN. 68 // otherwise, if either `x` or `y` is NaN then the result is NaN.
69 if (d != 0.0) Expect.identical(NaN, pow(NaN, d), "$d"); 69 if (d != 0.0) Expect.isTrue(pow(NaN, d).isNaN, "$d");
70 if (d != 1.0) Expect.identical(NaN, pow(d, NaN), "$d"); 70 if (d != 1.0) Expect.isTrue(pow(d, NaN).isNaN, "$d");
71 } 71 }
72 72
73 for (var d in samples) { 73 for (var d in samples) {
74 // if `x` is a finite and strictly negative and `y` is a finite non-integer, 74 // if `x` is a finite and strictly negative and `y` is a finite non-integer,
75 // the result is NaN. 75 // the result is NaN.
76 if (d < 0 && !d.isInfinite) { 76 if (d < 0 && !d.isInfinite) {
77 Expect.identical(NaN, pow(d, 0.5), "$d"); 77 Expect.isTrue(pow(d, 0.5).isNaN, "$d");
78 Expect.identical(NaN, pow(d, -0.5), "$d"); 78 Expect.isTrue(pow(d, -0.5).isNaN, "$d");
79 Expect.identical(NaN, pow(d, 1.5), "$d"); 79 Expect.isTrue(pow(d, 1.5).isNaN, "$d");
80 Expect.identical(NaN, pow(d, -1.5), "$d"); 80 Expect.isTrue(pow(d, -1.5).isNaN, "$d");
81 } 81 }
82 } 82 }
83 83
84 for (var d in samples) { 84 for (var d in samples) {
85 if (d < 0) { 85 if (d < 0) {
86 // if `x` is Infinity and `y` is strictly negative, the result is 0.0. 86 // if `x` is Infinity and `y` is strictly negative, the result is 0.0.
87 Expect.identical(0.0, pow(Infinity, d), "$d"); 87 Expect.identical(0.0, pow(Infinity, d), "$d");
88 } 88 }
89 if (d > 0) { 89 if (d > 0) {
90 // if `x` is Infinity and `y` is strictly positive, the result is Infinity . 90 // if `x` is Infinity and `y` is strictly positive, the result is Infinity .
(...skipping 58 matching lines...) Expand 10 before | Expand all | Expand 10 after
149 // Underflow. 149 // Underflow.
150 Expect.identical(0.0, pow(10.0, -325.0)); 150 Expect.identical(0.0, pow(10.0, -325.0));
151 151
152 // Conversion to double. 152 // Conversion to double.
153 153
154 // The second argument is an odd integer as int, but not when converted 154 // The second argument is an odd integer as int, but not when converted
155 // to double. 155 // to double.
156 Expect.identical(Infinity, pow(-0.0, -9223372036854775809)); 156 Expect.identical(Infinity, pow(-0.0, -9223372036854775809));
157 } 157 }
158 158
OLDNEW
« no previous file with comments | « tests/corelib/num_parse_test.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698