• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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 "Test.h"
9 #include "TestClassDef.h"
10 #include "SkSize.h"
11 
TestISize(skiatest::Reporter * reporter)12 static void TestISize(skiatest::Reporter* reporter) {
13     SkISize  a, b;
14 
15     a.set(0, 0);
16     REPORTER_ASSERT(reporter, a.isEmpty());
17     a.set(5, -5);
18     REPORTER_ASSERT(reporter, a.isEmpty());
19     a.clampNegToZero();
20     REPORTER_ASSERT(reporter, a.isEmpty());
21     b.set(5, 0);
22     REPORTER_ASSERT(reporter, a == b);
23 
24     a.set(3, 5);
25     REPORTER_ASSERT(reporter, !a.isEmpty());
26     b = a;
27     REPORTER_ASSERT(reporter, !b.isEmpty());
28     REPORTER_ASSERT(reporter, a == b);
29     REPORTER_ASSERT(reporter, !(a != b));
30     REPORTER_ASSERT(reporter,
31                     a.fWidth == b.fWidth && a.fHeight == b.fHeight);
32 }
33 
DEF_TEST(Size,reporter)34 DEF_TEST(Size, reporter) {
35     TestISize(reporter);
36 
37     SkSize a, b;
38     int ix = 5;
39     int iy = 3;
40     SkScalar x = SkIntToScalar(ix);
41     SkScalar y = SkIntToScalar(iy);
42 
43     a.set(0, 0);
44     REPORTER_ASSERT(reporter, a.isEmpty());
45     a.set(x, -x);
46     REPORTER_ASSERT(reporter, a.isEmpty());
47     a.clampNegToZero();
48     REPORTER_ASSERT(reporter, a.isEmpty());
49     b.set(x, 0);
50     REPORTER_ASSERT(reporter, a == b);
51 
52     a.set(y, x);
53     REPORTER_ASSERT(reporter, !a.isEmpty());
54     b = a;
55     REPORTER_ASSERT(reporter, !b.isEmpty());
56     REPORTER_ASSERT(reporter, a == b);
57     REPORTER_ASSERT(reporter, !(a != b));
58     REPORTER_ASSERT(reporter,
59                     a.fWidth == b.fWidth && a.fHeight == b.fHeight);
60 
61     SkISize ia;
62     ia.set(ix, iy);
63     a.set(x, y);
64     REPORTER_ASSERT(reporter, a.toRound() == ia);
65 }
66