• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 // Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 
5 #include "ui/gfx/size_base.h"
6 
7 #include "testing/gtest/include/gtest/gtest.h"
8 #include "ui/gfx/size.h"
9 #include "ui/gfx/size_conversions.h"
10 #include "ui/gfx/size_f.h"
11 
12 namespace gfx {
13 
14 namespace {
15 
TestSizeF(const SizeF & s)16 int TestSizeF(const SizeF& s) {
17   return s.width();
18 }
19 
20 }  // namespace
21 
TEST(SizeTest,ToSizeF)22 TEST(SizeTest, ToSizeF) {
23   // Check that implicit conversion from integer to float compiles.
24   Size a(10, 20);
25   float width = TestSizeF(a);
26   EXPECT_EQ(width, a.width());
27 
28   SizeF b(10, 20);
29 
30   EXPECT_EQ(a, b);
31   EXPECT_EQ(b, a);
32 }
33 
TEST(SizeTest,ToFlooredSize)34 TEST(SizeTest, ToFlooredSize) {
35   EXPECT_EQ(Size(0, 0), ToFlooredSize(SizeF(0, 0)));
36   EXPECT_EQ(Size(0, 0), ToFlooredSize(SizeF(0.0001f, 0.0001f)));
37   EXPECT_EQ(Size(0, 0), ToFlooredSize(SizeF(0.4999f, 0.4999f)));
38   EXPECT_EQ(Size(0, 0), ToFlooredSize(SizeF(0.5f, 0.5f)));
39   EXPECT_EQ(Size(0, 0), ToFlooredSize(SizeF(0.9999f, 0.9999f)));
40 
41   EXPECT_EQ(Size(10, 10), ToFlooredSize(SizeF(10, 10)));
42   EXPECT_EQ(Size(10, 10), ToFlooredSize(SizeF(10.0001f, 10.0001f)));
43   EXPECT_EQ(Size(10, 10), ToFlooredSize(SizeF(10.4999f, 10.4999f)));
44   EXPECT_EQ(Size(10, 10), ToFlooredSize(SizeF(10.5f, 10.5f)));
45   EXPECT_EQ(Size(10, 10), ToFlooredSize(SizeF(10.9999f, 10.9999f)));
46 }
47 
TEST(SizeTest,ToCeiledSize)48 TEST(SizeTest, ToCeiledSize) {
49   EXPECT_EQ(Size(0, 0), ToCeiledSize(SizeF(0, 0)));
50   EXPECT_EQ(Size(1, 1), ToCeiledSize(SizeF(0.0001f, 0.0001f)));
51   EXPECT_EQ(Size(1, 1), ToCeiledSize(SizeF(0.4999f, 0.4999f)));
52   EXPECT_EQ(Size(1, 1), ToCeiledSize(SizeF(0.5f, 0.5f)));
53   EXPECT_EQ(Size(1, 1), ToCeiledSize(SizeF(0.9999f, 0.9999f)));
54 
55   EXPECT_EQ(Size(10, 10), ToCeiledSize(SizeF(10, 10)));
56   EXPECT_EQ(Size(11, 11), ToCeiledSize(SizeF(10.0001f, 10.0001f)));
57   EXPECT_EQ(Size(11, 11), ToCeiledSize(SizeF(10.4999f, 10.4999f)));
58   EXPECT_EQ(Size(11, 11), ToCeiledSize(SizeF(10.5f, 10.5f)));
59   EXPECT_EQ(Size(11, 11), ToCeiledSize(SizeF(10.9999f, 10.9999f)));
60 }
61 
TEST(SizeTest,ToRoundedSize)62 TEST(SizeTest, ToRoundedSize) {
63   EXPECT_EQ(Size(0, 0), ToRoundedSize(SizeF(0, 0)));
64   EXPECT_EQ(Size(0, 0), ToRoundedSize(SizeF(0.0001f, 0.0001f)));
65   EXPECT_EQ(Size(0, 0), ToRoundedSize(SizeF(0.4999f, 0.4999f)));
66   EXPECT_EQ(Size(1, 1), ToRoundedSize(SizeF(0.5f, 0.5f)));
67   EXPECT_EQ(Size(1, 1), ToRoundedSize(SizeF(0.9999f, 0.9999f)));
68 
69   EXPECT_EQ(Size(10, 10), ToRoundedSize(SizeF(10, 10)));
70   EXPECT_EQ(Size(10, 10), ToRoundedSize(SizeF(10.0001f, 10.0001f)));
71   EXPECT_EQ(Size(10, 10), ToRoundedSize(SizeF(10.4999f, 10.4999f)));
72   EXPECT_EQ(Size(11, 11), ToRoundedSize(SizeF(10.5f, 10.5f)));
73   EXPECT_EQ(Size(11, 11), ToRoundedSize(SizeF(10.9999f, 10.9999f)));
74 }
75 
TEST(SizeTest,ClampSize)76 TEST(SizeTest, ClampSize) {
77   Size a;
78 
79   a = Size(3, 5);
80   EXPECT_EQ(Size(3, 5).ToString(), a.ToString());
81   a.SetToMax(Size(2, 4));
82   EXPECT_EQ(Size(3, 5).ToString(), a.ToString());
83   a.SetToMax(Size(3, 5));
84   EXPECT_EQ(Size(3, 5).ToString(), a.ToString());
85   a.SetToMax(Size(4, 2));
86   EXPECT_EQ(Size(4, 5).ToString(), a.ToString());
87   a.SetToMax(Size(8, 10));
88   EXPECT_EQ(Size(8, 10).ToString(), a.ToString());
89 
90   a.SetToMin(Size(9, 11));
91   EXPECT_EQ(Size(8, 10).ToString(), a.ToString());
92   a.SetToMin(Size(8, 10));
93   EXPECT_EQ(Size(8, 10).ToString(), a.ToString());
94   a.SetToMin(Size(11, 9));
95   EXPECT_EQ(Size(8, 9).ToString(), a.ToString());
96   a.SetToMin(Size(7, 11));
97   EXPECT_EQ(Size(7, 9).ToString(), a.ToString());
98   a.SetToMin(Size(3, 5));
99   EXPECT_EQ(Size(3, 5).ToString(), a.ToString());
100 }
101 
TEST(SizeTest,ClampSizeF)102 TEST(SizeTest, ClampSizeF) {
103   SizeF a;
104 
105   a = SizeF(3.5f, 5.5f);
106   EXPECT_EQ(SizeF(3.5f, 5.5f).ToString(), a.ToString());
107   a.SetToMax(SizeF(2.5f, 4.5f));
108   EXPECT_EQ(SizeF(3.5f, 5.5f).ToString(), a.ToString());
109   a.SetToMax(SizeF(3.5f, 5.5f));
110   EXPECT_EQ(SizeF(3.5f, 5.5f).ToString(), a.ToString());
111   a.SetToMax(SizeF(4.5f, 2.5f));
112   EXPECT_EQ(SizeF(4.5f, 5.5f).ToString(), a.ToString());
113   a.SetToMax(SizeF(8.5f, 10.5f));
114   EXPECT_EQ(SizeF(8.5f, 10.5f).ToString(), a.ToString());
115 
116   a.SetToMin(SizeF(9.5f, 11.5f));
117   EXPECT_EQ(SizeF(8.5f, 10.5f).ToString(), a.ToString());
118   a.SetToMin(SizeF(8.5f, 10.5f));
119   EXPECT_EQ(SizeF(8.5f, 10.5f).ToString(), a.ToString());
120   a.SetToMin(SizeF(11.5f, 9.5f));
121   EXPECT_EQ(SizeF(8.5f, 9.5f).ToString(), a.ToString());
122   a.SetToMin(SizeF(7.5f, 11.5f));
123   EXPECT_EQ(SizeF(7.5f, 9.5f).ToString(), a.ToString());
124   a.SetToMin(SizeF(3.5f, 5.5f));
125   EXPECT_EQ(SizeF(3.5f, 5.5f).ToString(), a.ToString());
126 }
127 
128 }  // namespace gfx
129