1 /* 2 * Copyright 2011 Google Inc. 3 * 4 * Use of this source code is governed by a BSD-style license that can be 5 * found in the LICENSE file. 6 */ 7 8 #include "SkSize.h" 9 #include "Test.h" 10 11 static void TestISize(skiatest::Reporter* reporter) { 12 SkISize a, b; 13 14 a.set(0, 0); 15 REPORTER_ASSERT(reporter, a.isEmpty()); 16 a.set(5, -5); 17 REPORTER_ASSERT(reporter, a.isEmpty()); 18 a.clampNegToZero(); 19 REPORTER_ASSERT(reporter, a.isEmpty()); 20 b.set(5, 0); 21 REPORTER_ASSERT(reporter, a == b); 22 23 a.set(3, 5); 24 REPORTER_ASSERT(reporter, !a.isEmpty()); 25 b = a; 26 REPORTER_ASSERT(reporter, !b.isEmpty()); 27 REPORTER_ASSERT(reporter, a == b); 28 REPORTER_ASSERT(reporter, !(a != b)); 29 REPORTER_ASSERT(reporter, 30 a.fWidth == b.fWidth && a.fHeight == b.fHeight); 31 } 32 33 DEF_TEST(Size, reporter) { 34 TestISize(reporter); 35 36 SkSize a, b; 37 int ix = 5; 38 int iy = 3; 39 SkScalar x = SkIntToScalar(ix); 40 SkScalar y = SkIntToScalar(iy); 41 42 a.set(0, 0); 43 REPORTER_ASSERT(reporter, a.isEmpty()); 44 a.set(x, -x); 45 REPORTER_ASSERT(reporter, a.isEmpty()); 46 a.clampNegToZero(); 47 REPORTER_ASSERT(reporter, a.isEmpty()); 48 b.set(x, 0); 49 REPORTER_ASSERT(reporter, a == b); 50 51 a.set(y, x); 52 REPORTER_ASSERT(reporter, !a.isEmpty()); 53 b = a; 54 REPORTER_ASSERT(reporter, !b.isEmpty()); 55 REPORTER_ASSERT(reporter, a == b); 56 REPORTER_ASSERT(reporter, !(a != b)); 57 REPORTER_ASSERT(reporter, 58 a.fWidth == b.fWidth && a.fHeight == b.fHeight); 59 60 SkISize ia; 61 ia.set(ix, iy); 62 a.set(x, y); 63 REPORTER_ASSERT(reporter, a.toRound() == ia); 64 } 65