Home | History | Annotate | Download | only in tests
      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