11cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger
21cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger/*
31cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Copyright 2011 Google Inc.
41cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger *
51cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * Use of this source code is governed by a BSD-style license that can be
61cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger * found in the LICENSE file.
71cab2921ab279367f8206cdadc9259d12e603548Derek Sollenberger */
8215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed#include "Test.h"
9215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed#include "SkSize.h"
10215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed
11215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reedstatic void TestISize(skiatest::Reporter* reporter) {
12215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    SkISize  a, b;
13215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed
14215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    a.set(0, 0);
15215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, a.isEmpty());
16215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    a.set(5, -5);
17215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, a.isEmpty());
18215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    a.clampNegToZero();
19215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, a.isEmpty());
20215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    b.set(5, 0);
21215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, a == b);
22215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed
23215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    a.set(3, 5);
24215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, !a.isEmpty());
25215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    b = a;
26215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, !b.isEmpty());
27215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, a == b);
28215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, !(a != b));
29215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter,
30215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed                    a.fWidth == b.fWidth && a.fHeight == b.fHeight);
31215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed}
32215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed
33215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reedstatic void TestSize(skiatest::Reporter* reporter) {
34215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    TestISize(reporter);
35215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed
36215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    SkSize a, b;
37215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    int ix = 5;
38215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    int iy = 3;
39215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    SkScalar x = SkIntToScalar(ix);
40215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    SkScalar y = SkIntToScalar(iy);
41215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed
42215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    a.set(0, 0);
43215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, a.isEmpty());
44215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    a.set(x, -x);
45215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, a.isEmpty());
46215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    a.clampNegToZero();
47215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, a.isEmpty());
48215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    b.set(x, 0);
49215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, a == b);
50215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed
51215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    a.set(y, x);
52215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, !a.isEmpty());
53215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    b = a;
54215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, !b.isEmpty());
55215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, a == b);
56215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter, !(a != b));
57215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    REPORTER_ASSERT(reporter,
58215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed                    a.fWidth == b.fWidth && a.fHeight == b.fHeight);
59215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed
60215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    SkISize ia;
61215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    ia.set(ix, iy);
62215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed    a.set(x, y);
6305b6b4d746867a9fb02e14edfe1bf3685abeb813Derek Sollenberger    REPORTER_ASSERT(reporter, a.toRound() == ia);
64215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed};
65215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed
66215473cea1702d8acc0316da3e5a9bf4ce0130efMike Reed#include "TestClassDef.h"
67215473cea1702d8acc0316da3e5a9bf4ce0130efMike ReedDEFINE_TESTCLASS("Size", TestSizeClass, TestSize)
68