diff options
author | Derek Sollenberger <djsollen@google.com> | 2011-03-14 11:20:24 -0400 |
---|---|---|
committer | Derek Sollenberger <djsollen@google.com> | 2011-03-14 16:33:36 -0400 |
commit | 05b6b4d746867a9fb02e14edfe1bf3685abeb813 (patch) | |
tree | 34b121f598d1693c014df48ee70bffa382b0cc23 /tests/InfRectTest.cpp | |
parent | 6210a7c68844602ee390bcce61dbb637910a3c6b (diff) | |
download | external_skia-05b6b4d746867a9fb02e14edfe1bf3685abeb813.zip external_skia-05b6b4d746867a9fb02e14edfe1bf3685abeb813.tar.gz external_skia-05b6b4d746867a9fb02e14edfe1bf3685abeb813.tar.bz2 |
Skia Merge (revision 922)
Change-Id: I7ed57d10905d8bad6486a4d7410165eec1cc2b4f
Diffstat (limited to 'tests/InfRectTest.cpp')
-rw-r--r-- | tests/InfRectTest.cpp | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/tests/InfRectTest.cpp b/tests/InfRectTest.cpp new file mode 100644 index 0000000..1e15023 --- /dev/null +++ b/tests/InfRectTest.cpp @@ -0,0 +1,44 @@ +#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) { +#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(small, small, big, big); + 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 + +#include "TestClassDef.h" +DEFINE_TESTCLASS("InfRect", InfRectTestClass, TestInfRect) |