diff options
author | 2015-03-19 16:10:54 -0700 | |
---|---|---|
committer | 2015-03-19 16:10:54 -0700 | |
commit | adf9990cb56ca389f37f02ac637496083b3c3cfc (patch) | |
tree | 9836e2845d7cc22b84d5f035d868610925b38f1d /tests/MatrixTest.cpp | |
parent | d800d878caae5d25b275d488a1b5ae8c24cea492 (diff) |
add SkMatrix::decomposeScale
BUG=skia:
Review URL: https://codereview.chromium.org/1006173005
Diffstat (limited to 'tests/MatrixTest.cpp')
-rw-r--r-- | tests/MatrixTest.cpp | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/tests/MatrixTest.cpp b/tests/MatrixTest.cpp index 7875d9ea45..95d33acabd 100644 --- a/tests/MatrixTest.cpp +++ b/tests/MatrixTest.cpp @@ -771,6 +771,34 @@ static void test_matrix_homogeneous(skiatest::Reporter* reporter) { } +static bool check_decompScale(const SkMatrix& matrix) { + SkSize scale; + SkMatrix remaining; + + if (!matrix.decomposeScale(&scale, &remaining)) { + return false; + } + if (scale.width() <= 0 || scale.height() <= 0) { + return false; + } + remaining.preScale(scale.width(), scale.height()); + return nearly_equal(matrix, remaining); +} + +static void test_decompScale(skiatest::Reporter* reporter) { + SkMatrix m; + + m.reset(); + REPORTER_ASSERT(reporter, check_decompScale(m)); + m.setScale(2, 3); + REPORTER_ASSERT(reporter, check_decompScale(m)); + m.setRotate(35, 0, 0); + REPORTER_ASSERT(reporter, check_decompScale(m)); + + m.setScale(1, 0); + REPORTER_ASSERT(reporter, !check_decompScale(m)); +} + DEF_TEST(Matrix, reporter) { SkMatrix mat, inverse, iden1, iden2; @@ -889,6 +917,8 @@ DEF_TEST(Matrix, reporter) { test_matrix_decomposition(reporter); test_matrix_homogeneous(reporter); test_set9(reporter); + + test_decompScale(reporter); } DEF_TEST(Matrix_Concat, r) { |