| |
| /* |
| * Copyright 2011 Google Inc. |
| * |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| */ |
| #include "Test.h" |
| #include "SkSize.h" |
| |
| static void TestISize(skiatest::Reporter* reporter) { |
| SkISize a, b; |
| |
| a.set(0, 0); |
| REPORTER_ASSERT(reporter, a.isEmpty()); |
| a.set(5, -5); |
| REPORTER_ASSERT(reporter, a.isEmpty()); |
| a.clampNegToZero(); |
| REPORTER_ASSERT(reporter, a.isEmpty()); |
| b.set(5, 0); |
| REPORTER_ASSERT(reporter, a == b); |
| |
| a.set(3, 5); |
| REPORTER_ASSERT(reporter, !a.isEmpty()); |
| b = a; |
| REPORTER_ASSERT(reporter, !b.isEmpty()); |
| REPORTER_ASSERT(reporter, a == b); |
| REPORTER_ASSERT(reporter, !(a != b)); |
| REPORTER_ASSERT(reporter, |
| a.fWidth == b.fWidth && a.fHeight == b.fHeight); |
| } |
| |
| static void TestSize(skiatest::Reporter* reporter) { |
| TestISize(reporter); |
| |
| SkSize a, b; |
| int ix = 5; |
| int iy = 3; |
| SkScalar x = SkIntToScalar(ix); |
| SkScalar y = SkIntToScalar(iy); |
| |
| a.set(0, 0); |
| REPORTER_ASSERT(reporter, a.isEmpty()); |
| a.set(x, -x); |
| REPORTER_ASSERT(reporter, a.isEmpty()); |
| a.clampNegToZero(); |
| REPORTER_ASSERT(reporter, a.isEmpty()); |
| b.set(x, 0); |
| REPORTER_ASSERT(reporter, a == b); |
| |
| a.set(y, x); |
| REPORTER_ASSERT(reporter, !a.isEmpty()); |
| b = a; |
| REPORTER_ASSERT(reporter, !b.isEmpty()); |
| REPORTER_ASSERT(reporter, a == b); |
| REPORTER_ASSERT(reporter, !(a != b)); |
| REPORTER_ASSERT(reporter, |
| a.fWidth == b.fWidth && a.fHeight == b.fHeight); |
| |
| SkISize ia; |
| ia.set(ix, iy); |
| a.set(x, y); |
| REPORTER_ASSERT(reporter, a.toRound() == ia); |
| }; |
| |
| #include "TestClassDef.h" |
| DEFINE_TESTCLASS("Size", TestSizeClass, TestSize) |