diff --git a/ci/licenses_golden/excluded_files b/ci/licenses_golden/excluded_files index b50f836af1bcf..97abb66f65ac1 100644 --- a/ci/licenses_golden/excluded_files +++ b/ci/licenses_golden/excluded_files @@ -142,6 +142,7 @@ ../../../flutter/impeller/fixtures ../../../flutter/impeller/geometry/README.md ../../../flutter/impeller/geometry/geometry_unittests.cc +../../../flutter/impeller/geometry/matrix_unittests.cc ../../../flutter/impeller/geometry/rect_unittests.cc ../../../flutter/impeller/golden_tests/README.md ../../../flutter/impeller/golden_tests_harvester/.dart_tool diff --git a/impeller/geometry/BUILD.gn b/impeller/geometry/BUILD.gn index 1596d0c1c115c..0ce6382e698e0 100644 --- a/impeller/geometry/BUILD.gn +++ b/impeller/geometry/BUILD.gn @@ -61,6 +61,7 @@ impeller_component("geometry_unittests") { testonly = true sources = [ "geometry_unittests.cc", + "matrix_unittests.cc", "rect_unittests.cc", ] diff --git a/impeller/geometry/geometry_asserts.h b/impeller/geometry/geometry_asserts.h index ab3f37389a522..f8c867703f281 100644 --- a/impeller/geometry/geometry_asserts.h +++ b/impeller/geometry/geometry_asserts.h @@ -39,7 +39,8 @@ inline ::testing::AssertionResult MatrixNear(impeller::Matrix a, && NumberNear(a.m[15], b.m[15]); return equal ? ::testing::AssertionSuccess() - : ::testing::AssertionFailure() << "Matrixes are not equal."; + : ::testing::AssertionFailure() + << "Matrixes are not equal " << a << " " << b; } inline ::testing::AssertionResult QuaternionNear(impeller::Quaternion a, diff --git a/impeller/geometry/matrix_unittests.cc b/impeller/geometry/matrix_unittests.cc new file mode 100644 index 0000000000000..2d1bdcfe8edee --- /dev/null +++ b/impeller/geometry/matrix_unittests.cc @@ -0,0 +1,28 @@ +// Copyright 2013 The Flutter 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 "gtest/gtest.h" + +#include "flutter/impeller/geometry/matrix.h" + +#include "flutter/impeller/geometry/geometry_asserts.h" + +namespace impeller { +namespace testing { + +TEST(MatrixTest, Multiply) { + Matrix x(0.0, 0.0, 0.0, 1.0, // + 1.0, 0.0, 0.0, 1.0, // + 0.0, 1.0, 0.0, 1.0, // + 1.0, 1.0, 0.0, 1.0); + Matrix translate = Matrix::MakeTranslation({10, 20, 0}); + Matrix result = translate * x; + EXPECT_TRUE(MatrixNear(result, Matrix(10.0, 20.0, 0.0, 1.0, // + 11.0, 20.0, 0.0, 1.0, // + 10.0, 21.0, 0.0, 1.0, // + 11.0, 21.0, 0.0, 1.0))); +} + +} // namespace testing +} // namespace impeller