@@ -224,10 +224,22 @@ TEST(MultiShapeConf, AddConvexHullWithOnePointSameAsDisk)
224
224
225
225
const auto massData = GetMassData (foo);
226
226
EXPECT_NE (massData, defaultMassData);
227
- EXPECT_EQ (massData.center , center);
227
+ EXPECT_NEAR (static_cast <double >(Real{GetX (massData.center )/1_m}),
228
+ static_cast <double >(Real{GetX (center)/1_m}),
229
+ 1.0 /1000000 );
230
+ EXPECT_NEAR (static_cast <double >(Real{GetY (massData.center )/1_m}),
231
+ static_cast <double >(Real{GetY (center)/1_m}),
232
+ 1.0 /1000000 );
228
233
229
234
const auto diskMassData = playrho::d2::GetMassData (0 .7_m, conf.density , center);
230
- EXPECT_EQ (massData, diskMassData);
235
+ EXPECT_NEAR (static_cast <double >(Real{GetX (massData.center )/1_m}),
236
+ static_cast <double >(Real{GetX (diskMassData.center )/1_m}),
237
+ 1.0 /1000000 );
238
+ EXPECT_NEAR (static_cast <double >(Real{GetY (massData.center )/1_m}),
239
+ static_cast <double >(Real{GetY (diskMassData.center )/1_m}),
240
+ 1.0 /1000000 );
241
+ EXPECT_EQ (massData.mass , diskMassData.mass );
242
+ EXPECT_EQ (massData.I , diskMassData.I );
231
243
}
232
244
233
245
TEST (MultiShapeConf, AddConvexHullWithTwoPointsSameAsEdge)
@@ -260,12 +272,23 @@ TEST(MultiShapeConf, AddConvexHullWithTwoPointsSameAsEdge)
260
272
261
273
const auto massData = GetMassData (foo);
262
274
EXPECT_NE (massData, defaultMassData);
263
- EXPECT_EQ (massData.center , (p0 + p1) / Real (2 ));
264
-
275
+ const auto expectedCenter = (p0 + p1) / Real (2 );
276
+ EXPECT_NEAR (static_cast <double >(Real{GetX (massData.center )/1_m}),
277
+ static_cast <double >(Real{GetX (expectedCenter)/1_m}),
278
+ 1.0 /1000000 );
279
+ EXPECT_NEAR (static_cast <double >(Real{GetY (massData.center )/1_m}),
280
+ static_cast <double >(Real{GetY (expectedCenter)/1_m}),
281
+ 1.0 /1000000 );
282
+
265
283
const auto edgeMassData = playrho::d2::GetMassData (0 .7_m, conf.density , p0, p1);
266
- EXPECT_EQ (massData.center , edgeMassData.center );
267
- // / @note Units of L^-2 M^-1 QP^2.
284
+ EXPECT_NEAR (static_cast <double >(Real{GetX (massData.center )/1_m}),
285
+ static_cast <double >(Real{GetX (edgeMassData.center )/1_m}),
286
+ 1.0 /1000000 );
287
+ EXPECT_NEAR (static_cast <double >(Real{GetY (massData.center )/1_m}),
288
+ static_cast <double >(Real{GetY (edgeMassData.center )/1_m}),
289
+ 1.0 /1000000 );
268
290
291
+ // / @note Units of L^-2 M^-1 QP^2.
269
292
EXPECT_NEAR (static_cast <double >(Real{massData.I / (SquareMeter*1_kg/SquareRadian)}),
270
293
static_cast <double >(Real{edgeMassData.I / (SquareMeter*1_kg/SquareRadian)}),
271
294
228.4113 /1000000.0 );
@@ -319,7 +342,13 @@ TEST(MultiShapeConf, AddTwoConvexHullWithOnePoint)
319
342
320
343
const auto massData = GetMassData (foo);
321
344
EXPECT_NE (massData, defaultMassData);
322
- EXPECT_EQ (massData.center , (p0 + p1) / Real (2 ));
345
+ const auto expectedCenter = (p0 + p1) / Real (2 );
346
+ EXPECT_NEAR (static_cast <double >(Real{GetX (massData.center )/1_m}),
347
+ static_cast <double >(Real{GetX (expectedCenter)/1_m}),
348
+ 1.0 /1000000 );
349
+ EXPECT_NEAR (static_cast <double >(Real{GetY (massData.center )/1_m}),
350
+ static_cast <double >(Real{GetY (expectedCenter)/1_m}),
351
+ 1.0 /1000000 );
323
352
324
353
const auto massDataP0 = playrho::d2::GetMassData (0 .7_m, conf.density , p0);
325
354
const auto massDataP1 = playrho::d2::GetMassData (0 .7_m, conf.density , p1);
0 commit comments