@@ -62,6 +62,10 @@ TEST (PointTests, GetSet_Coordinates)
6262 p.setY (4 .0f );
6363 EXPECT_FLOAT_EQ (p.getX (), 3 .0f );
6464 EXPECT_FLOAT_EQ (p.getY (), 4 .0f );
65+
66+ auto p2 = p.withXY (5 .0f , 6 .0f );
67+ EXPECT_FLOAT_EQ (p2.getX (), 5 .0f );
68+ EXPECT_FLOAT_EQ (p2.getY (), 6 .0f );
6569}
6670
6771TEST (PointTests, With_Coordinates)
@@ -179,6 +183,14 @@ TEST (PointTests, Rotation)
179183 }
180184}
181185
186+ TEST (PointTests, AngleTo)
187+ {
188+ Point<float > p1 (0 .0f , 0 .0f );
189+ Point<float > p2 (1 .0f , 1 .0f );
190+
191+ EXPECT_FLOAT_EQ (p1.angleTo (p2), yup::degreesToRadians (45 .0f ));
192+ }
193+
182194TEST (PointTests, Midpoint)
183195{
184196 Point<float > p1 (0 .0f , 0 .0f );
@@ -234,6 +246,20 @@ TEST (PointTests, Reflection)
234246 Point<float > pO = p.reflectedOverOrigin ();
235247 EXPECT_FLOAT_EQ (pO.getX (), -1 .0f );
236248 EXPECT_FLOAT_EQ (pO.getY (), -2 .0f );
249+
250+ Point<float > p0 (1 .0f , 2 .0f );
251+
252+ p0.reflectOverXAxis ();
253+ EXPECT_FLOAT_EQ (p0.getX (), 1 .0f );
254+ EXPECT_FLOAT_EQ (p0.getY (), -2 .0f );
255+
256+ p0.reflectOverYAxis ();
257+ EXPECT_FLOAT_EQ (p0.getX (), -1 .0f );
258+ EXPECT_FLOAT_EQ (p0.getY (), -2 .0f );
259+
260+ p0.reflectOverOrigin ();
261+ EXPECT_FLOAT_EQ (p0.getX (), 1 .0f );
262+ EXPECT_FLOAT_EQ (p0.getY (), 2 .0f );
237263}
238264
239265TEST (PointTests, MinMax_Abs)
@@ -263,18 +289,42 @@ TEST (PointTests, Arithmetic_Operators)
263289 Point<float > sum = p1 + p2;
264290 EXPECT_FLOAT_EQ (sum.getX (), 4 .0f );
265291 EXPECT_FLOAT_EQ (sum.getY (), 6 .0f );
292+ sum = sum + 1 .0f ;
293+ EXPECT_FLOAT_EQ (sum.getX (), 5 .0f );
294+ EXPECT_FLOAT_EQ (sum.getY (), 7 .0f );
295+ sum += 1 .0f ;
296+ EXPECT_FLOAT_EQ (sum.getX (), 6 .0f );
297+ EXPECT_FLOAT_EQ (sum.getY (), 8 .0f );
266298
267299 Point<float > diff = p2 - p1;
268300 EXPECT_FLOAT_EQ (diff.getX (), 2 .0f );
269301 EXPECT_FLOAT_EQ (diff.getY (), 2 .0f );
270-
271- Point<float > scaled = p1 * 2 .0f ;
272- EXPECT_FLOAT_EQ (scaled.getX (), 2 .0f );
273- EXPECT_FLOAT_EQ (scaled.getY (), 4 .0f );
274-
275- Point<float > divided = scaled / 2 .0f ;
276- EXPECT_FLOAT_EQ (divided.getX (), 1 .0f );
277- EXPECT_FLOAT_EQ (divided.getY (), 2 .0f );
302+ diff = diff - 1 .0f ;
303+ EXPECT_FLOAT_EQ (diff.getX (), 1 .0f );
304+ EXPECT_FLOAT_EQ (diff.getY (), 1 .0f );
305+ diff -= 1 .0f ;
306+ EXPECT_FLOAT_EQ (diff.getX (), 0 .0f );
307+ EXPECT_FLOAT_EQ (diff.getY (), 0 .0f );
308+
309+ Point<float > mul = p2 * p1;
310+ EXPECT_FLOAT_EQ (mul.getX (), 3 .0f );
311+ EXPECT_FLOAT_EQ (mul.getY (), 8 .0f );
312+ mul = mul * 2 .0f ;
313+ EXPECT_FLOAT_EQ (mul.getX (), 6 .0f );
314+ EXPECT_FLOAT_EQ (mul.getY (), 16 .0f );
315+ mul *= 0 .5f ;
316+ EXPECT_FLOAT_EQ (mul.getX (), 3 .0f );
317+ EXPECT_FLOAT_EQ (mul.getY (), 8 .0f );
318+
319+ Point<float > div = p2 / p1;
320+ EXPECT_FLOAT_EQ (div.getX (), 3 .0f );
321+ EXPECT_FLOAT_EQ (div.getY (), 2 .0f );
322+ div = div / 2 .0f ;
323+ EXPECT_FLOAT_EQ (div.getX (), 1 .5f );
324+ EXPECT_FLOAT_EQ (div.getY (), 1 .0f );
325+ div /= 0 .5f ;
326+ EXPECT_FLOAT_EQ (div.getX (), 3 .0f );
327+ EXPECT_FLOAT_EQ (div.getY (), 2 .0f );
278328}
279329
280330TEST (PointTests, Equality_Operators)
0 commit comments