Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(481)

Side by Side Diff: tests/MatrixTest.cpp

Issue 1022003003: Revert of add SkMatrix::decomposeScale (Closed) Base URL: https://skia.googlesource.com/skia.git@master
Patch Set: Created 5 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « src/core/SkPictureShader.cpp ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * Copyright 2011 Google Inc. 2 * Copyright 2011 Google Inc.
3 * 3 *
4 * Use of this source code is governed by a BSD-style license that can be 4 * Use of this source code is governed by a BSD-style license that can be
5 * found in the LICENSE file. 5 * found in the LICENSE file.
6 */ 6 */
7 7
8 #include "SkMath.h" 8 #include "SkMath.h"
9 #include "SkMatrix.h" 9 #include "SkMatrix.h"
10 #include "SkMatrixUtils.h" 10 #include "SkMatrixUtils.h"
(...skipping 753 matching lines...) Expand 10 before | Expand all | Expand 10 after
764 for (int j = 0; j < kTripleCount; ++j) { 764 for (int j = 0; j < kTripleCount; ++j) {
765 SkScalar dst[3]; 765 SkScalar dst[3];
766 mats[i].mapHomogeneousPoints(dst, &randTriples[j*3], 1); 766 mats[i].mapHomogeneousPoints(dst, &randTriples[j*3], 1);
767 REPORTER_ASSERT(reporter, naive_homogeneous_mapping(mats[i], &randTr iples[j*3], dst)); 767 REPORTER_ASSERT(reporter, naive_homogeneous_mapping(mats[i], &randTr iples[j*3], dst));
768 } 768 }
769 } 769 }
770 } 770 }
771 771
772 } 772 }
773 773
774 static bool check_decompScale(const SkMatrix& matrix) {
775 SkSize scale;
776 SkMatrix remaining;
777
778 if (!matrix.decomposeScale(&scale, &remaining)) {
779 return false;
780 }
781 if (scale.width() <= 0 || scale.height() <= 0) {
782 return false;
783 }
784 remaining.preScale(scale.width(), scale.height());
785 return nearly_equal(matrix, remaining);
786 }
787
788 static void test_decompScale(skiatest::Reporter* reporter) {
789 SkMatrix m;
790
791 m.reset();
792 REPORTER_ASSERT(reporter, check_decompScale(m));
793 m.setScale(2, 3);
794 REPORTER_ASSERT(reporter, check_decompScale(m));
795 m.setRotate(35, 0, 0);
796 REPORTER_ASSERT(reporter, check_decompScale(m));
797
798 m.setScale(1, 0);
799 REPORTER_ASSERT(reporter, !check_decompScale(m));
800 }
801
802 DEF_TEST(Matrix, reporter) { 774 DEF_TEST(Matrix, reporter) {
803 SkMatrix mat, inverse, iden1, iden2; 775 SkMatrix mat, inverse, iden1, iden2;
804 776
805 mat.reset(); 777 mat.reset();
806 mat.setTranslate(SK_Scalar1, SK_Scalar1); 778 mat.setTranslate(SK_Scalar1, SK_Scalar1);
807 REPORTER_ASSERT(reporter, mat.invert(&inverse)); 779 REPORTER_ASSERT(reporter, mat.invert(&inverse));
808 iden1.setConcat(mat, inverse); 780 iden1.setConcat(mat, inverse);
809 REPORTER_ASSERT(reporter, is_identity(iden1)); 781 REPORTER_ASSERT(reporter, is_identity(iden1));
810 782
811 mat.setScale(SkIntToScalar(2), SkIntToScalar(4)); 783 mat.setScale(SkIntToScalar(2), SkIntToScalar(4));
(...skipping 98 matching lines...) Expand 10 before | Expand all | Expand 10 after
910 mat.set(SkMatrix::kMSkewX, SK_ScalarNaN); 882 mat.set(SkMatrix::kMSkewX, SK_ScalarNaN);
911 mat2.set(SkMatrix::kMSkewX, SK_ScalarNaN); 883 mat2.set(SkMatrix::kMSkewX, SK_ScalarNaN);
912 REPORTER_ASSERT(reporter, !are_equal(reporter, mat, mat2)); 884 REPORTER_ASSERT(reporter, !are_equal(reporter, mat, mat2));
913 885
914 test_matrix_min_max_scale(reporter); 886 test_matrix_min_max_scale(reporter);
915 test_matrix_preserve_shape(reporter); 887 test_matrix_preserve_shape(reporter);
916 test_matrix_recttorect(reporter); 888 test_matrix_recttorect(reporter);
917 test_matrix_decomposition(reporter); 889 test_matrix_decomposition(reporter);
918 test_matrix_homogeneous(reporter); 890 test_matrix_homogeneous(reporter);
919 test_set9(reporter); 891 test_set9(reporter);
920
921 test_decompScale(reporter);
922 } 892 }
923 893
924 DEF_TEST(Matrix_Concat, r) { 894 DEF_TEST(Matrix_Concat, r) {
925 SkMatrix a; 895 SkMatrix a;
926 a.setTranslate(10, 20); 896 a.setTranslate(10, 20);
927 897
928 SkMatrix b; 898 SkMatrix b;
929 b.setScale(3, 5); 899 b.setScale(3, 5);
930 900
931 SkMatrix expected; 901 SkMatrix expected;
932 expected.setConcat(a,b); 902 expected.setConcat(a,b);
933 903
934 REPORTER_ASSERT(r, expected == SkMatrix::Concat(a, b)); 904 REPORTER_ASSERT(r, expected == SkMatrix::Concat(a, b));
935 } 905 }
OLDNEW
« no previous file with comments | « src/core/SkPictureShader.cpp ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698