update to work correctly for scalar == fixed or float



git-svn-id: http://skia.googlecode.com/svn/trunk@780 2bbb7eff-a529-9590-31e7-b0007b416f81
diff --git a/tests/InfRectTest.cpp b/tests/InfRectTest.cpp
index bcdbf4a..1e15023 100644
--- a/tests/InfRectTest.cpp
+++ b/tests/InfRectTest.cpp
@@ -1,41 +1,41 @@
 #include "Test.h"
 #include "SkRect.h"
 
+#ifdef SK_SCALAR_IS_FLOAT
 static float make_zero() {
     return sk_float_sin(0);
 }
+#endif
+
+static void check_invalid(skiatest::Reporter* reporter,
+                          SkScalar l, SkScalar t, SkScalar r, SkScalar b) {
+    SkRect rect;
+    rect.set(l, t, r, b);
+    REPORTER_ASSERT(reporter, !rect.hasValidCoordinates());
+}
 
 // Tests that hasValidCoordinates() will reject any rect with +/-inf values
 // as one of its coordinates.
 static void TestInfRect(skiatest::Reporter* reporter) {
-    float zero = make_zero();
+#ifdef SK_SCALAR_IS_FLOAT
+    float invalid = 1 / make_zero();    // infinity
+#else
+    SkFixed invalid = SK_FixedNaN;
+#endif
+    SkScalar small = SkIntToScalar(10);
+    SkScalar big = SkIntToScalar(100);
 
-    SkRect rect = SkRect::MakeXYWH(10.0f, 10.0f, 100.0f, 100.0f);
+    SkRect rect = SkRect::MakeXYWH(small, small, big, big);
     REPORTER_ASSERT(reporter, rect.hasValidCoordinates());
 
-    rect = SkRect::MakeXYWH(10.0f, 10.0f, 100.0f, 1.0f/zero); // Make 'inf' value without numeric_limits.
-    REPORTER_ASSERT(reporter, !rect.hasValidCoordinates());
-
-    rect = SkRect::MakeXYWH(10.0f, 10.0f, 1.0f/zero, 100.0f);
-    REPORTER_ASSERT(reporter, !rect.hasValidCoordinates());
-
-    rect = SkRect::MakeXYWH(1.0f/zero, 10.0f, 100.0f, 100.0f);
-    REPORTER_ASSERT(reporter, !rect.hasValidCoordinates());
-
-    rect = SkRect::MakeXYWH(10.0f, 1.0f/zero, 100.0f, 100.0f);
-    REPORTER_ASSERT(reporter, !rect.hasValidCoordinates());
-
-    rect = SkRect::MakeXYWH(10.0f, 10.0f, 100.0f, -1.0f/zero);
-    REPORTER_ASSERT(reporter, !rect.hasValidCoordinates());
-
-    rect = SkRect::MakeXYWH(10.0f, 10.0f, -1.0f/zero, 100.0f);
-    REPORTER_ASSERT(reporter, !rect.hasValidCoordinates());
-
-    rect = SkRect::MakeXYWH(-1.0f/zero, 10.0f, 100.0f, 100.0f);
-    REPORTER_ASSERT(reporter, !rect.hasValidCoordinates());
-
-    rect = SkRect::MakeXYWH(10.0f, -1.0f/zero, 100.0f, 100.0f);
-    REPORTER_ASSERT(reporter, !rect.hasValidCoordinates());
+    check_invalid(reporter, small, small, big, invalid);
+    check_invalid(reporter, small, small, invalid, big);
+    check_invalid(reporter, small, invalid, big, big);
+    check_invalid(reporter, invalid, small, big, big);
+    check_invalid(reporter, small, small, big, -invalid);
+    check_invalid(reporter, small, small, -invalid, big);
+    check_invalid(reporter, small, -invalid, big, big);
+    check_invalid(reporter, -invalid, small, big, big);
 }
 
 // need tests for SkStrSearch