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

Unified 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 side-by-side diff with in-line comments
Download patch
« sdk/lib/core/num.dart ('K') | « sdk/lib/core/num.dart ('k') | no next file » | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: tests/corelib/nan_infinity_test.dart
diff --git a/tests/corelib/nan_infinity_test.dart b/tests/corelib/nan_infinity_test.dart
index 83e9455ce19e4b9e21c16099047f6360ba0d5c6b..e70c0ae3ea64982cd63145acb56ac6c7f541e757 100644
--- a/tests/corelib/nan_infinity_test.dart
+++ b/tests/corelib/nan_infinity_test.dart
@@ -7,33 +7,83 @@ import "package:expect/expect.dart";
// Dart test program for testing NaN and Infinity.
void main() {
+ // Sanity tests.
+ Expect.isFalse(1.5.isNaN);
+ Expect.isFalse(1.5.isInfinite);
+ Expect.isFalse(1.5.isFinite);
+ Expect.isFalse(1.5.isNegative);
+ Expect.isTrue((-1.5).isNegative);
+ Expect.isFalse(0.0.isNegative);
+ Expect.isTrue((-0.0).isNegative);
+
+ Expect.isFalse(1.isNaN);
+ Expect.isFalse(1.isInfinite);
+ Expect.isFalse(1.isFinite);
+ Expect.isFalse(1.isNegative);
+ Expect.isTrue((-1).isNegative);
+
+ // Test that predicates give the correct result.
Expect.isTrue(double.NAN.isNaN);
Expect.isFalse(double.NAN.isInfinite);
+ Expect.isFalse(double.NAN.isFinite);
+ Expect.isFalse(double.NAN.isNegative);
+ Expect.isFalse((-double.NAN).isNegative);
+
Expect.isFalse(double.INFINITY.isNaN);
Expect.isTrue(double.INFINITY.isInfinite);
+ Expect.isFalse(double.INFINITY.isFinite);
+ Expect.isFalse(double.INFINITY.isNegative);
+ Expect.isTrue((-double.INFINITY).isNegative);
+
Expect.isFalse(double.NEGATIVE_INFINITY.isNaN);
Expect.isTrue(double.NEGATIVE_INFINITY.isInfinite);
+ Expect.isFalse(double.NEGATIVE_INFINITY.isFinite);
+ Expect.isTrue(double.NEGATIVE_INFINITY.isNegative);
+ Expect.isFalse((-double.NEGATIVE_INFINITY).isNegative);
+
+ // Test toString.
Expect.equals("NaN", double.NAN.toString());
Expect.equals("Infinity", double.INFINITY.toString());
Expect.equals("-Infinity", double.NEGATIVE_INFINITY.toString());
- Expect.isFalse(double.NAN == double.NAN);
+
+ // Test identities.
+ 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.
+ Expect.isTrue(identical(double.INFINITY, double.INFINITY));
+ Expect.isTrue(identical(double.NEGATIVE_INFINITY, double.NEGATIVE_INFINITY));
+ Expect.isFalse(identical(double.NAN, double.INFINITY));
+ Expect.isFalse(identical(double.NAN, double.NEGATIVE_INFINITY));
+ Expect.isFalse(identical(double.INFINITY, double.NEGATIVE_INFINITY));
+ Expect.isTrue(identical(double.NAN, -double.NAN));
+ Expect.isTrue(identical(double.INFINITY, -double.NEGATIVE_INFINITY));
+ Expect.isTrue(identical(double.NEGATIVE_INFINITY, -double.INFINITY));
+
+ // Test equalities
Expect.isTrue(double.INFINITY == double.INFINITY);
Expect.isTrue(double.NEGATIVE_INFINITY == double.NEGATIVE_INFINITY);
+ Expect.isFalse(double.INFINITY == double.NEGATIVE_INFINITY);
+ Expect.isFalse(double.NEGATIVE_INFINITY == double.INFINITY);
+ Expect.isFalse(double.NAN == double.NAN);
+ Expect.isFalse(double.NAN == double.INFINITY);
+ Expect.isFalse(double.NAN == double.NEGATIVE_INFINITY);
+ Expect.isFalse(double.INFINITY == double.NAN);
+ Expect.isFalse(double.NEGATIVE_INFINITY == double.NAN);
+
+ // Test relational order.
Expect.isFalse(double.NAN < double.NAN);
Expect.isFalse(double.NAN < double.INFINITY);
Expect.isFalse(double.NAN < double.NEGATIVE_INFINITY);
Expect.isFalse(double.NAN > double.NAN);
Expect.isFalse(double.NAN > double.INFINITY);
Expect.isFalse(double.NAN > double.NEGATIVE_INFINITY);
- Expect.isFalse(double.NAN == double.NAN);
- Expect.isFalse(double.NAN == double.INFINITY);
- Expect.isFalse(double.NAN == double.NEGATIVE_INFINITY);
Expect.isFalse(double.INFINITY < double.NAN);
Expect.isFalse(double.NEGATIVE_INFINITY < double.NAN);
Expect.isFalse(double.INFINITY > double.NAN);
Expect.isFalse(double.NEGATIVE_INFINITY > double.NAN);
- Expect.isFalse(double.INFINITY == double.NAN);
- Expect.isFalse(double.NEGATIVE_INFINITY == double.NAN);
- Expect.isTrue((3.0 * double.NAN).isNaN);
Expect.isTrue(double.INFINITY > double.NEGATIVE_INFINITY);
+ Expect.isFalse(double.INFINITY < double.NEGATIVE_INFINITY);
+
+ // NaN is contagious.
+ Expect.isTrue((3.0 * double.NAN).isNaN);
+ Expect.isTrue((3.0 + double.NAN).isNaN);
+ Expect.isTrue((-double.NAN).isNaN);
}
« 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