Index: cc/test/geometry_test_utils.cc |
diff --git a/cc/test/geometry_test_utils.cc b/cc/test/geometry_test_utils.cc |
new file mode 100644 |
index 0000000000000000000000000000000000000000..9bf5811ec9c9044412ab205f5214f2796ffec0e4 |
--- /dev/null |
+++ b/cc/test/geometry_test_utils.cc |
@@ -0,0 +1,44 @@ |
+// Copyright 2012 The Chromium Authors. All rights reserved. |
+// Use of this source code is governed by a BSD-style license that can be |
+// found in the LICENSE file. |
+ |
+#include "cc/test/geometry_test_utils.h" |
+ |
+#include "base/logging.h" |
+#include "testing/gtest/include/gtest/gtest.h" |
+#include "ui/gfx/transform.h" |
+ |
+namespace cc { |
+ |
+// NOTE: even though transform data types use double precision, we only check |
+// for equality within single-precision error bounds because many transforms |
+// originate from single-precision data types such as quads/rects/etc. |
+ |
+void ExpectTransformationMatrixEq(const gfx::Transform& expected, |
+ const gfx::Transform& actual) { |
+ EXPECT_FLOAT_EQ((expected).matrix().get(0, 0), (actual).matrix().get(0, 0)); |
+ EXPECT_FLOAT_EQ((expected).matrix().get(1, 0), (actual).matrix().get(1, 0)); |
+ EXPECT_FLOAT_EQ((expected).matrix().get(2, 0), (actual).matrix().get(2, 0)); |
+ EXPECT_FLOAT_EQ((expected).matrix().get(3, 0), (actual).matrix().get(3, 0)); |
+ EXPECT_FLOAT_EQ((expected).matrix().get(0, 1), (actual).matrix().get(0, 1)); |
+ EXPECT_FLOAT_EQ((expected).matrix().get(1, 1), (actual).matrix().get(1, 1)); |
+ EXPECT_FLOAT_EQ((expected).matrix().get(2, 1), (actual).matrix().get(2, 1)); |
+ EXPECT_FLOAT_EQ((expected).matrix().get(3, 1), (actual).matrix().get(3, 1)); |
+ EXPECT_FLOAT_EQ((expected).matrix().get(0, 2), (actual).matrix().get(0, 2)); |
+ EXPECT_FLOAT_EQ((expected).matrix().get(1, 2), (actual).matrix().get(1, 2)); |
+ EXPECT_FLOAT_EQ((expected).matrix().get(2, 2), (actual).matrix().get(2, 2)); |
+ EXPECT_FLOAT_EQ((expected).matrix().get(3, 2), (actual).matrix().get(3, 2)); |
+ EXPECT_FLOAT_EQ((expected).matrix().get(0, 3), (actual).matrix().get(0, 3)); |
+ EXPECT_FLOAT_EQ((expected).matrix().get(1, 3), (actual).matrix().get(1, 3)); |
+ EXPECT_FLOAT_EQ((expected).matrix().get(2, 3), (actual).matrix().get(2, 3)); |
+ EXPECT_FLOAT_EQ((expected).matrix().get(3, 3), (actual).matrix().get(3, 3)); |
+} |
+ |
+gfx::Transform Inverse(const gfx::Transform& transform) { |
+ gfx::Transform result(gfx::Transform::kSkipInitialization); |
+ bool inverted_successfully = transform.GetInverse(&result); |
+ DCHECK(inverted_successfully); |
+ return result; |
+} |
+ |
+} // namespace cc |