ensure that negative zeros are still ignored when computing isIdentity()
authorreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 19 Apr 2013 12:25:00 +0000 (12:25 +0000)
committerreed@google.com <reed@google.com@2bbb7eff-a529-9590-31e7-b0007b416f81>
Fri, 19 Apr 2013 12:25:00 +0000 (12:25 +0000)
crbug.com/162747

git-svn-id: http://skia.googlecode.com/svn/trunk@8761 2bbb7eff-a529-9590-31e7-b0007b416f81

tests/Matrix44Test.cpp

index bdeafd4..b2c7071 100644 (file)
@@ -231,6 +231,17 @@ static void test_gettype(skiatest::Reporter* reporter) {
 
     matrix.set(3, 2, 1);
     REPORTER_ASSERT(reporter, matrix.getType() & SkMatrix44::kPerspective_Mask);
+
+    // ensure that negative zero is treated as zero
+    SkMScalar dx = 0;
+    SkMScalar dy = 0;
+    SkMScalar dz = 0;
+    matrix.setTranslate(-dx, -dy, -dz);
+    REPORTER_ASSERT(reporter, matrix.isIdentity());
+    matrix.preTranslate(-dx, -dy, -dz);
+    REPORTER_ASSERT(reporter, matrix.isIdentity());
+    matrix.postTranslate(-dx, -dy, -dz);
+    REPORTER_ASSERT(reporter, matrix.isIdentity());
 }
 
 static void test_common_angles(skiatest::Reporter* reporter) {