Skip to content

Commit 9464909

Browse files
committed
More tests
1 parent 9f63d3c commit 9464909

File tree

2 files changed

+44
-16
lines changed

2 files changed

+44
-16
lines changed

modules/yup_graphics/primitives/yup_Rectangle.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2091,21 +2091,21 @@ template <class ValueType>
20912091
template <class T>
20922092
[[nodiscard]] constexpr Rectangle<T> Size<ValueType>::toRectangle() const noexcept
20932093
{
2094-
return { static_cast<T> (0), static_cast<T> (0), *this };
2094+
return { static_cast<T> (0), static_cast<T> (0), static_cast<T> (width), static_cast<T> (height) };
20952095
}
20962096

20972097
template <class ValueType>
20982098
template <class T>
20992099
[[nodiscard]] constexpr Rectangle<T> Size<ValueType>::toRectangle (T x, T y) const noexcept
21002100
{
2101-
return { x, y, *this };
2101+
return { x, y, static_cast<T> (width), static_cast<T> (height) };
21022102
}
21032103

21042104
template <class ValueType>
21052105
template <class T>
21062106
[[nodiscard]] constexpr Rectangle<T> Size<ValueType>::toRectangle (Point<T> xy) const noexcept
21072107
{
2108-
return { xy, *this };
2108+
return { xy, static_cast<T> (width), static_cast<T> (height) };
21092109
}
21102110

21112111
} // namespace yup

tests/yup_graphics/yup_Size.cpp

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -151,6 +151,10 @@ TEST (SizeTests, PrimitiveConversions)
151151
EXPECT_FLOAT_EQ (toPoint.getX(), 3.7f);
152152
EXPECT_FLOAT_EQ (toPoint.getY(), 4.2f);
153153

154+
auto toPointInt = s.toPoint<int>();
155+
EXPECT_EQ (toPointInt.getX(), 3);
156+
EXPECT_EQ (toPointInt.getY(), 4);
157+
154158
auto toRectangle1 = s.toRectangle();
155159
EXPECT_FLOAT_EQ (toRectangle1.getX(), 0.0f);
156160
EXPECT_FLOAT_EQ (toRectangle1.getY(), 0.0f);
@@ -168,23 +172,47 @@ TEST (SizeTests, PrimitiveConversions)
168172
EXPECT_FLOAT_EQ (toRectangle3.getY(), 2.9f);
169173
EXPECT_FLOAT_EQ (toRectangle3.getWidth(), 3.7f);
170174
EXPECT_FLOAT_EQ (toRectangle3.getHeight(), 4.2f);
175+
176+
auto toRectangleInt = s.toRectangle<int>();
177+
EXPECT_EQ (toRectangleInt.getX(), 0);
178+
EXPECT_EQ (toRectangleInt.getY(), 0);
179+
EXPECT_EQ (toRectangleInt.getWidth(), 3);
180+
EXPECT_EQ (toRectangleInt.getHeight(), 4);
171181
}
172182

173183
TEST (SizeTests, ArithmeticOperators)
174184
{
175-
Size<float> s (2.0f, 3.0f);
176-
auto mul = s * 2.0f;
177-
EXPECT_FLOAT_EQ (mul.getWidth(), 4.0f);
178-
EXPECT_FLOAT_EQ (mul.getHeight(), 6.0f);
179-
s *= 0.5f;
180-
EXPECT_FLOAT_EQ (s.getWidth(), 1.0f);
181-
EXPECT_FLOAT_EQ (s.getHeight(), 1.5f);
182-
auto div = mul / 2.0f;
183-
EXPECT_FLOAT_EQ (div.getWidth(), 2.0f);
184-
EXPECT_FLOAT_EQ (div.getHeight(), 3.0f);
185-
mul /= 2.0f;
186-
EXPECT_FLOAT_EQ (mul.getWidth(), 2.0f);
187-
EXPECT_FLOAT_EQ (mul.getHeight(), 3.0f);
185+
{
186+
Size<int> s (2, 4);
187+
auto mul = s * 2;
188+
EXPECT_FLOAT_EQ (mul.getWidth(), 4);
189+
EXPECT_FLOAT_EQ (mul.getHeight(), 8);
190+
s *= 2;
191+
EXPECT_FLOAT_EQ (s.getWidth(), 4);
192+
EXPECT_FLOAT_EQ (s.getHeight(), 8);
193+
auto div = mul / 2;
194+
EXPECT_FLOAT_EQ (div.getWidth(), 2);
195+
EXPECT_FLOAT_EQ (div.getHeight(), 4);
196+
mul /= 2;
197+
EXPECT_FLOAT_EQ (mul.getWidth(), 2);
198+
EXPECT_FLOAT_EQ (mul.getHeight(), 4);
199+
}
200+
201+
{
202+
Size<float> s (2.0f, 3.0f);
203+
auto mul = s * 2.0f;
204+
EXPECT_FLOAT_EQ (mul.getWidth(), 4.0f);
205+
EXPECT_FLOAT_EQ (mul.getHeight(), 6.0f);
206+
s *= 0.5f;
207+
EXPECT_FLOAT_EQ (s.getWidth(), 1.0f);
208+
EXPECT_FLOAT_EQ (s.getHeight(), 1.5f);
209+
auto div = mul / 2.0f;
210+
EXPECT_FLOAT_EQ (div.getWidth(), 2.0f);
211+
EXPECT_FLOAT_EQ (div.getHeight(), 3.0f);
212+
mul /= 2.0f;
213+
EXPECT_FLOAT_EQ (mul.getWidth(), 2.0f);
214+
EXPECT_FLOAT_EQ (mul.getHeight(), 3.0f);
215+
}
188216
}
189217

190218
TEST (SizeTests, EqualityAndApproxEqual)

0 commit comments

Comments
 (0)