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"
98f6884aab8aecd7657cf3f9cdbc682f0deca29c5tfarina@chromium.org#include "Test.h"
106a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com
116a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.comstatic void TestISize(skiatest::Reporter* reporter) {
126a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    SkISize  a, b;
13d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com
146a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.set(0, 0);
156a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a.isEmpty());
166a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.set(5, -5);
176a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a.isEmpty());
186a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.clampNegToZero();
196a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a.isEmpty());
206a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    b.set(5, 0);
216a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a == b);
22d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com
236a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.set(3, 5);
246a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, !a.isEmpty());
256a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    b = a;
266a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, !b.isEmpty());
276a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a == b);
286a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, !(a != b));
296a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter,
306a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com                    a.fWidth == b.fWidth && a.fHeight == b.fHeight);
316a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com}
326a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com
33e4fafb146e85cdfcf9d5418597b6818aa0754adatfarina@chromium.orgDEF_TEST(Size, reporter) {
346a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    TestISize(reporter);
35d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com
366a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    SkSize a, b;
376a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    int ix = 5;
386a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    int iy = 3;
396a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    SkScalar x = SkIntToScalar(ix);
406a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    SkScalar y = SkIntToScalar(iy);
41d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com
426a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.set(0, 0);
436a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a.isEmpty());
446a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.set(x, -x);
456a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a.isEmpty());
466a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.clampNegToZero();
476a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a.isEmpty());
486a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    b.set(x, 0);
496a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a == b);
50d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com
516a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.set(y, x);
526a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, !a.isEmpty());
536a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    b = a;
546a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, !b.isEmpty());
556a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, a == b);
566a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter, !(a != b));
576a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    REPORTER_ASSERT(reporter,
586a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com                    a.fWidth == b.fWidth && a.fHeight == b.fHeight);
59d6176b0dcacb124539e0cfd051e6d93a9782f020rmistry@google.com
606a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    SkISize ia;
616a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    ia.set(ix, iy);
626a5a2667a7cb2a2ccbb8cc19fe1d5e9ee28bb1d3reed@android.com    a.set(x, y);
63f59799139bacd300bf5251a1ca4e6b2ad3196457reed@android.com    REPORTER_ASSERT(reporter, a.toRound() == ia);
64e4fafb146e85cdfcf9d5418597b6818aa0754adatfarina@chromium.org}
65