1ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com/*
2ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Copyright 2011 Google Inc.
3ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com *
4ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * Use of this source code is governed by a BSD-style license that can be
5ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com * found in the LICENSE file.
6ec3ed6a5ebf6f2c406d7bcf94b6bc34fcaeb976eepoger@google.com */
7e4fafb146e85cdfcf9d5418597b6818aa0754adatfarina@chromium.org
86a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com#include "SkSize.h"
912345aee12daffe96dbc9c77056e797d91c78d3etfarina
108f6884aab8aecd7657cf3f9cdbc682f0deca29c5tfarina@chromium.org#include "Test.h"
116a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com
1212345aee12daffe96dbc9c77056e797d91c78d3etfarinaDEF_TEST(ISize, reporter) {
136a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    SkISize  a, b;
14d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com
156a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.set(0, 0);
166a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a.isEmpty());
176a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.set(5, -5);
186a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a.isEmpty());
196a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.clampNegToZero();
206a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a.isEmpty());
216a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    b.set(5, 0);
226a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a == b);
23d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com
246a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.set(3, 5);
256a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, !a.isEmpty());
266a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    b = a;
276a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, !b.isEmpty());
286a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a == b);
296a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, !(a != b));
306a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter,
316a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com                    a.fWidth == b.fWidth && a.fHeight == b.fHeight);
326a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com}
336a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com
34e4fafb146e85cdfcf9d5418597b6818aa0754adatfarina@chromium.orgDEF_TEST(Size, reporter) {
356a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    SkSize a, b;
366a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    int ix = 5;
376a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    int iy = 3;
386a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    SkScalar x = SkIntToScalar(ix);
396a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    SkScalar y = SkIntToScalar(iy);
40d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com
416a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.set(0, 0);
426a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a.isEmpty());
436a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.set(x, -x);
446a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a.isEmpty());
456a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.clampNegToZero();
466a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a.isEmpty());
476a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    b.set(x, 0);
486a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a == b);
49d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com
506a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.set(y, x);
516a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, !a.isEmpty());
526a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    b = a;
536a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, !b.isEmpty());
546a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a == b);
556a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, !(a != b));
566a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter,
576a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com                    a.fWidth == b.fWidth && a.fHeight == b.fHeight);
58d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com
596a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    SkISize ia;
606a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    ia.set(ix, iy);
616a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.set(x, y);
62f59799139bacd300bf5251a1ca4e6b2ad3196457reed@android.com    REPORTER_ASSERT(reporter, a.toRound() == ia);
63e4fafb146e85cdfcf9d5418597b6818aa0754adatfarina@chromium.org}
64