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 11namespace ui { 12 13//TODO(avallee): Make this into a predicate and add some matrix pretty printing. 14void 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 32void 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