1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 // Use of this source code is governed by a BSD-style license that can be 3 // found in the LICENSE file. 4 5 #include "ui/compositor/test/test_utils.h" 6 7 #include "testing/gtest/include/gtest/gtest.h" 8 #include "ui/gfx/rect.h" 9 #include "ui/gfx/transform.h" 10 11 namespace ui { 12 13 //TODO(avallee): Make this into a predicate and add some matrix pretty printing. 14 void CheckApproximatelyEqual(const gfx::Transform& lhs, 15 const gfx::Transform& rhs) { 16 unsigned int errors = 0; 17 for (int i = 0; i < 4; ++i) { 18 for (int j = 0; j < 4; ++j) { 19 EXPECT_FLOAT_EQ(lhs.matrix().get(i, j), rhs.matrix().get(i, j)) 20 << "(i, j) = (" << i << ", " << j << "), error count: " << ++errors; 21 } 22 } 23 24 if (errors) { 25 ADD_FAILURE() << "Expected matrix:\n" 26 << lhs.ToString() << "\n" 27 << "Actual matrix:\n" 28 << rhs.ToString(); 29 } 30 } 31 32 void CheckApproximatelyEqual(const gfx::Rect& lhs, const gfx::Rect& rhs) { 33 EXPECT_FLOAT_EQ(lhs.x(), rhs.x()); 34 EXPECT_FLOAT_EQ(lhs.y(), rhs.y()); 35 EXPECT_FLOAT_EQ(lhs.width(), rhs.width()); 36 EXPECT_FLOAT_EQ(lhs.height(), rhs.height()); 37 } 38 39 } // namespace ui 40