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

Side by Side Diff: tests/corelib/nan_infinity_test.dart

Issue 28973002: Add isFinite getter to num. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 7 years, 2 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 unified diff | Download patch | Annotate | Revision Log
« sdk/lib/core/num.dart ('K') | « sdk/lib/core/num.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 import "package:expect/expect.dart"; 5 import "package:expect/expect.dart";
6 6
7 // Dart test program for testing NaN and Infinity. 7 // Dart test program for testing NaN and Infinity.
8 8
9 void main() { 9 void main() {
10 // Sanity tests.
11 Expect.isFalse(1.5.isNaN);
12 Expect.isFalse(1.5.isInfinite);
13 Expect.isFalse(1.5.isFinite);
14 Expect.isFalse(1.5.isNegative);
15 Expect.isTrue((-1.5).isNegative);
16 Expect.isFalse(0.0.isNegative);
17 Expect.isTrue((-0.0).isNegative);
18
19 Expect.isFalse(1.isNaN);
20 Expect.isFalse(1.isInfinite);
21 Expect.isFalse(1.isFinite);
22 Expect.isFalse(1.isNegative);
23 Expect.isTrue((-1).isNegative);
24
25 // Test that predicates give the correct result.
10 Expect.isTrue(double.NAN.isNaN); 26 Expect.isTrue(double.NAN.isNaN);
11 Expect.isFalse(double.NAN.isInfinite); 27 Expect.isFalse(double.NAN.isInfinite);
28 Expect.isFalse(double.NAN.isFinite);
29 Expect.isFalse(double.NAN.isNegative);
30 Expect.isFalse((-double.NAN).isNegative);
31
12 Expect.isFalse(double.INFINITY.isNaN); 32 Expect.isFalse(double.INFINITY.isNaN);
13 Expect.isTrue(double.INFINITY.isInfinite); 33 Expect.isTrue(double.INFINITY.isInfinite);
34 Expect.isFalse(double.INFINITY.isFinite);
35 Expect.isFalse(double.INFINITY.isNegative);
36 Expect.isTrue((-double.INFINITY).isNegative);
37
14 Expect.isFalse(double.NEGATIVE_INFINITY.isNaN); 38 Expect.isFalse(double.NEGATIVE_INFINITY.isNaN);
15 Expect.isTrue(double.NEGATIVE_INFINITY.isInfinite); 39 Expect.isTrue(double.NEGATIVE_INFINITY.isInfinite);
40 Expect.isFalse(double.NEGATIVE_INFINITY.isFinite);
41 Expect.isTrue(double.NEGATIVE_INFINITY.isNegative);
42 Expect.isFalse((-double.NEGATIVE_INFINITY).isNegative);
43
44 // Test toString.
16 Expect.equals("NaN", double.NAN.toString()); 45 Expect.equals("NaN", double.NAN.toString());
17 Expect.equals("Infinity", double.INFINITY.toString()); 46 Expect.equals("Infinity", double.INFINITY.toString());
18 Expect.equals("-Infinity", double.NEGATIVE_INFINITY.toString()); 47 Expect.equals("-Infinity", double.NEGATIVE_INFINITY.toString());
19 Expect.isFalse(double.NAN == double.NAN); 48
49 // Test identities.
50 Expect.isTrue(identical(double.NAN, double.NAN));
floitsch 2013/10/18 11:54:59 sure this won't break dart2js? if yes it should pr
Lasse Reichstein Nielsen 2013/10/22 16:31:45 The test runs, but I didn't check if it was becaus
Lasse Reichstein Nielsen 2013/10/23 10:21:38 Turned into multi-test that fails for dart2js.
51 Expect.isTrue(identical(double.INFINITY, double.INFINITY));
52 Expect.isTrue(identical(double.NEGATIVE_INFINITY, double.NEGATIVE_INFINITY));
53 Expect.isFalse(identical(double.NAN, double.INFINITY));
54 Expect.isFalse(identical(double.NAN, double.NEGATIVE_INFINITY));
55 Expect.isFalse(identical(double.INFINITY, double.NEGATIVE_INFINITY));
56 Expect.isTrue(identical(double.NAN, -double.NAN));
57 Expect.isTrue(identical(double.INFINITY, -double.NEGATIVE_INFINITY));
58 Expect.isTrue(identical(double.NEGATIVE_INFINITY, -double.INFINITY));
59
60 // Test equalities
20 Expect.isTrue(double.INFINITY == double.INFINITY); 61 Expect.isTrue(double.INFINITY == double.INFINITY);
21 Expect.isTrue(double.NEGATIVE_INFINITY == double.NEGATIVE_INFINITY); 62 Expect.isTrue(double.NEGATIVE_INFINITY == double.NEGATIVE_INFINITY);
63 Expect.isFalse(double.INFINITY == double.NEGATIVE_INFINITY);
64 Expect.isFalse(double.NEGATIVE_INFINITY == double.INFINITY);
65 Expect.isFalse(double.NAN == double.NAN);
66 Expect.isFalse(double.NAN == double.INFINITY);
67 Expect.isFalse(double.NAN == double.NEGATIVE_INFINITY);
68 Expect.isFalse(double.INFINITY == double.NAN);
69 Expect.isFalse(double.NEGATIVE_INFINITY == double.NAN);
70
71 // Test relational order.
22 Expect.isFalse(double.NAN < double.NAN); 72 Expect.isFalse(double.NAN < double.NAN);
23 Expect.isFalse(double.NAN < double.INFINITY); 73 Expect.isFalse(double.NAN < double.INFINITY);
24 Expect.isFalse(double.NAN < double.NEGATIVE_INFINITY); 74 Expect.isFalse(double.NAN < double.NEGATIVE_INFINITY);
25 Expect.isFalse(double.NAN > double.NAN); 75 Expect.isFalse(double.NAN > double.NAN);
26 Expect.isFalse(double.NAN > double.INFINITY); 76 Expect.isFalse(double.NAN > double.INFINITY);
27 Expect.isFalse(double.NAN > double.NEGATIVE_INFINITY); 77 Expect.isFalse(double.NAN > double.NEGATIVE_INFINITY);
28 Expect.isFalse(double.NAN == double.NAN);
29 Expect.isFalse(double.NAN == double.INFINITY);
30 Expect.isFalse(double.NAN == double.NEGATIVE_INFINITY);
31 Expect.isFalse(double.INFINITY < double.NAN); 78 Expect.isFalse(double.INFINITY < double.NAN);
32 Expect.isFalse(double.NEGATIVE_INFINITY < double.NAN); 79 Expect.isFalse(double.NEGATIVE_INFINITY < double.NAN);
33 Expect.isFalse(double.INFINITY > double.NAN); 80 Expect.isFalse(double.INFINITY > double.NAN);
34 Expect.isFalse(double.NEGATIVE_INFINITY > double.NAN); 81 Expect.isFalse(double.NEGATIVE_INFINITY > double.NAN);
35 Expect.isFalse(double.INFINITY == double.NAN); 82 Expect.isTrue(double.INFINITY > double.NEGATIVE_INFINITY);
36 Expect.isFalse(double.NEGATIVE_INFINITY == double.NAN); 83 Expect.isFalse(double.INFINITY < double.NEGATIVE_INFINITY);
84
85 // NaN is contagious.
37 Expect.isTrue((3.0 * double.NAN).isNaN); 86 Expect.isTrue((3.0 * double.NAN).isNaN);
38 Expect.isTrue(double.INFINITY > double.NEGATIVE_INFINITY); 87 Expect.isTrue((3.0 + double.NAN).isNaN);
88 Expect.isTrue((-double.NAN).isNaN);
39 } 89 }
OLDNEW
« sdk/lib/core/num.dart ('K') | « sdk/lib/core/num.dart ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698