104 a =
SizeF(3.5f, 5.5f);
133TEST(SizeTest, IntegerOverflow) {
134 int int_max = std::numeric_limits<int>::max();
135 int int_min = std::numeric_limits<int>::min();
137 Size max_size(int_max, int_max);
138 Size min_size(int_min, int_min);
142 test.
Enlarge(int_max, int_max);
143 EXPECT_EQ(test, max_size);
146 test.
Enlarge(int_min, int_min);
147 EXPECT_EQ(test, min_size);
150 test.
Enlarge(int_max, int_max);
151 EXPECT_EQ(test, max_size);
153 test =
Size(-10, -20);
154 test.
Enlarge(int_min, int_min);
155 EXPECT_EQ(test, min_size);
159TEST(SizeTest, TrivialDimensionTests) {
160 const float clearly_trivial = kTrivial / 2.f;
161 const float massize_dimension = 4e13f;
164 EXPECT_TRUE(
SizeF(clearly_trivial, 1.f).IsEmpty());
165 EXPECT_TRUE(
SizeF(.01f, clearly_trivial).IsEmpty());
166 EXPECT_TRUE(
SizeF(0.f, 0.f).IsEmpty());
167 EXPECT_FALSE(
SizeF(.01f, .01f).IsEmpty());
170 SizeF test(2.f, 1.f);
173 test.
SetSize(clearly_trivial, 1.f);
176 test.
SetSize(.01f, clearly_trivial);
204 const float clearly_trivial = kTrivial / 2.f;
205 const float nearly_trivial = kTrivial * 1.5f;
207 SizeF test(clearly_trivial, 1.f);
209 EXPECT_FLOAT_EQ(0.f, test.
width());
210 EXPECT_FLOAT_EQ(1.f, test.
height());
212 test.
SetSize(.01f, clearly_trivial);
214 EXPECT_FLOAT_EQ(.01f, test.
width());
215 EXPECT_FLOAT_EQ(0.f, test.
height());
217 test.
SetSize(nearly_trivial, nearly_trivial);
219 EXPECT_FLOAT_EQ(nearly_trivial, test.
width());
220 EXPECT_FLOAT_EQ(nearly_trivial, test.
height());
224 EXPECT_FLOAT_EQ(0.f, test.
width());
225 EXPECT_FLOAT_EQ(0.f, test.
height());
228 test.
Enlarge(clearly_trivial, clearly_trivial);
229 test.
Enlarge(clearly_trivial, clearly_trivial);
230 test.
Enlarge(clearly_trivial, clearly_trivial);
232 EXPECT_EQ(
SizeF(0.f, 0.f), test);