diff --git a/src/user/user_mesh.cc b/src/user/user_mesh.cc index e0d6f938..8d99c79f 100644 --- a/src/user/user_mesh.cc +++ b/src/user/user_mesh.cc @@ -1014,8 +1014,8 @@ void mjCMesh::Process(void) { mju_eig3(eigval, eigvec, quattmp, full); // check eigval - SHOULD NOT OCCUR - if (eigval[2] + + + + + + + + )"; + mjModel* model = LoadModelFromString(xml, 0, 0); + ASSERT_THAT(model, testing::NotNull()); + mj_deleteModel(model); +} + +TEST_F(MujocoTest, SmallInertiaLoads) { + static constexpr char xml[] = R"( + + + + + + + + + + + + + )"; + mjModel* model = LoadModelFromString(xml, 0, 0); + ASSERT_THAT(model, testing::NotNull()); + mj_deleteModel(model); +} + +TEST_F(MujocoTest, TinyInertiaFails) { + static constexpr char xml[] = R"( + + + + + + + + + + + + )"; + std::array error; + LoadModelFromString(xml, error.data(), error.size()); + EXPECT_THAT( + error.data(), + HasSubstr( + "mass and inertia of moving bodies must be larger than mjMINVAL")); +} + } // namespace } // namespace mujoco