diff --git a/test/engine/engine_collision_box_test.cc b/test/engine/engine_collision_box_test.cc index e73f4ad9..e75a6c83 100644 --- a/test/engine/engine_collision_box_test.cc +++ b/test/engine/engine_collision_box_test.cc @@ -30,7 +30,6 @@ namespace { using MjCollisionBoxTest = MujocoTest; using ::testing::NotNull; -using ::testing::DoubleNear; static const char* const kBad0FilePath = "engine/testdata/collision_box/boxbox_bad0.xml"; @@ -266,7 +265,8 @@ TEST_F(MjCollisionBoxTest, BoxSphere) { data->qpos[2] = z; mj_forward(model, data); EXPECT_EQ(data->ncon, 2); - EXPECT_THAT(data->contact[0].dist, DoubleNear(data->contact[1].dist, 1e-8)); + EXPECT_THAT(data->contact[0].dist, + MjNear(data->contact[1].dist, 1e-8, 1e-6)); } mj_deleteData(data); @@ -294,7 +294,7 @@ TEST_F(MjCollisionBoxTest, BoxBoxContactDistance) { for (mjfCollision collision : {mjc_BoxBox, mjc_Convex}) { int n = collision(model, data, contact, 0, 1, 0.0); for (int i = 0; i < n; i++) { - EXPECT_NEAR(contact[i].dist, -0.5, 1.0e-8); + EXPECT_NEAR(contact[i].dist, -0.5, MjTol(1e-8, 1e-6)); } } diff --git a/test/engine/engine_collision_sdf_test.cc b/test/engine/engine_collision_sdf_test.cc index a8f93c32..bcc0d1c3 100644 --- a/test/engine/engine_collision_sdf_test.cc +++ b/test/engine/engine_collision_sdf_test.cc @@ -59,7 +59,8 @@ TEST_F(SdfTest, SdfPrimitive) { mjtNum gradient[3], dist[kgeoms][kpoints] = { {0, 0, 0, 0, 1, 1}, // plane {-1, 0, 0, mju_sqrt(2)-1, mju_sqrt(2)-1, mju_sqrt(3)-1}, // sphere - {-.1, .9, .9, mju_sqrt(2)-.1, .9, mju_sqrt(2)-.1}, // capsule + {(mjtNum)-.1, (mjtNum).9, (mjtNum).9, + mju_sqrt(2)-(mjtNum).1, (mjtNum).9, mju_sqrt(2)-(mjtNum).1}, // capsule {-1, 0, 0, mju_sqrt(2)-1, 0, mju_sqrt(2)-1}, // cylinder {-mju_sqrt(3), 0, 0, 0, 0, 0}, // box }; @@ -72,7 +73,8 @@ TEST_F(SdfTest, SdfPrimitive) { sdf.type = mjSDFTYPE_SINGLE; sdf.geomtype = (mjtGeom*)(model->geom_type+i); for (int j = 0; j < kpoints; j++) { - EXPECT_NEAR(mjc_distance(model, data, &sdf, points[j]), dist[i][j], 1e-9); + EXPECT_NEAR(mjc_distance(model, data, &sdf, points[j]), dist[i][j], + MjTol(1e-9, 5e-7)); mjc_gradient(model, data, &sdf, gradient, points[j]); } } diff --git a/test/engine/engine_core_constraint_test.cc b/test/engine/engine_core_constraint_test.cc index 7bb7f0a1..b5ab5e0e 100644 --- a/test/engine/engine_core_constraint_test.cc +++ b/test/engine/engine_core_constraint_test.cc @@ -33,7 +33,6 @@ namespace mujoco { namespace { -using ::testing::DoubleNear; using ::testing::NotNull; using ::testing::Pointwise; using CoreConstraintTest = MujocoTest; @@ -63,6 +62,9 @@ void RotationResidual(const mjModel *model, mjData *data, // validate rotational Jacobian used in welds TEST_F(CoreConstraintTest, WeldRotJacobian) { +#ifdef mjUSESINGLE + GTEST_SKIP() << "FD Jacobian with eps=1e-6 below float32 precision"; +#endif constexpr char xml[] = R"(