aboutsummaryrefslogtreecommitdiffhomepage
path: root/tests/Matrix44Test.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'tests/Matrix44Test.cpp')
-rw-r--r--tests/Matrix44Test.cpp16
1 files changed, 16 insertions, 0 deletions
diff --git a/tests/Matrix44Test.cpp b/tests/Matrix44Test.cpp
index 75dd5181d4..13ead192b3 100644
--- a/tests/Matrix44Test.cpp
+++ b/tests/Matrix44Test.cpp
@@ -761,6 +761,21 @@ static void test_preserves_2d_axis_alignment(skiatest::Reporter* reporter) {
test(true, reporter, transform);
}
+// just want to exercise the various converters for MScalar
+static void test_toint(skiatest::Reporter* reporter) {
+ SkMatrix44 mat(SkMatrix44::kUninitialized_Constructor);
+ mat.setScale(3, 3, 3);
+
+ SkMScalar sum = SkMScalarFloor(mat.get(0, 0)) +
+ SkMScalarRound(mat.get(1, 0)) +
+ SkMScalarCeil(mat.get(2, 0));
+ int isum = SkMScalarFloorToInt(mat.get(0, 1)) +
+ SkMScalarRoundToInt(mat.get(1, 2)) +
+ SkMScalarCeilToInt(mat.get(2, 3));
+ REPORTER_ASSERT(reporter, sum >= 0);
+ REPORTER_ASSERT(reporter, isum >= 0);
+ REPORTER_ASSERT(reporter, static_cast<SkMScalar>(isum) == SkIntToMScalar(isum));
+}
DEF_TEST(Matrix44, reporter) {
SkMatrix44 mat(SkMatrix44::kUninitialized_Constructor);
@@ -869,4 +884,5 @@ DEF_TEST(Matrix44, reporter) {
test_3x3_conversion(reporter);
test_has_perspective(reporter);
test_preserves_2d_axis_alignment(reporter);
+ test_toint(reporter);
}