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);
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;
167 EXPECT_FALSE(
SizeF(.01f, .01f).IsEmpty());
171 EXPECT_FALSE(
test.IsEmpty());
173 test.SetSize(clearly_trivial, 1.f);
176 test.SetSize(.01f, clearly_trivial);
179 test.SetSize(0.f, 0.f);
182 test.SetSize(.01f, .01f);
183 EXPECT_FALSE(
test.IsEmpty());
186 test.set_width(clearly_trivial);
189 test.set_width(massize_dimension);
190 test.set_height(clearly_trivial);
193 test.set_width(clearly_trivial);
194 test.set_height(massize_dimension);
198 EXPECT_FALSE(
test.IsEmpty());
204 const float clearly_trivial = kTrivial / 2.f;
205 const float nearly_trivial = kTrivial * 1.5f;
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());
227 test.SetSize(0.f, 0.f);
228 test.Enlarge(clearly_trivial, clearly_trivial);
229 test.Enlarge(clearly_trivial, clearly_trivial);
230 test.Enlarge(clearly_trivial, clearly_trivial);