From 3ca97248a32a460d90b08a323a4447ad14591c58 Mon Sep 17 00:00:00 2001 From: Yuval Tassa Date: Wed, 11 Dec 2024 04:10:06 -0800 Subject: [PATCH] Fix comparison in engine_core_constraint_test. (was comparing number to itself) PiperOrigin-RevId: 705053943 Change-Id: I3d179ab4bb2ed1bc1b74b4edec7ce1114ad16b37 --- test/engine/engine_core_constraint_test.cc | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/test/engine/engine_core_constraint_test.cc b/test/engine/engine_core_constraint_test.cc index 8baeeadc..a0a8f149 100644 --- a/test/engine/engine_core_constraint_test.cc +++ b/test/engine/engine_core_constraint_test.cc @@ -477,6 +477,7 @@ TEST_F(CoreConstraintTest, MulJacTVecIsland) { mj_deleteModel(model); } +// compare mj_constraintUpdate and mj_constraintUpdate_island TEST_F(CoreConstraintTest, ConstraintUpdateIsland) { const std::string xml_path = GetTestDataFilePath(kIlslandEfcPath); mjModel* model = mj_loadXML(xml_path.c_str(), nullptr, nullptr, 0); @@ -557,12 +558,15 @@ TEST_F(CoreConstraintTest, ConstraintUpdateIsland) { } // compare cone Hessians - for (int c=0; c < data2->ncon; c++) { - int efcadr = data2->contact[c].efc_address; - if (data2->efc_island[efcadr] == island) { - for (int j=0; j < 36; j++) { - EXPECT_THAT(data2->contact[c].H[j], - DoubleNear(data2->contact[c].H[j], 1e-12)); + if (cone == mjCONE_ELLIPTIC) { + for (int c=0; c < data2->ncon; c++) { + int efcadr = data2->contact[c].efc_address; + if (data2->efc_island[efcadr] == island && + data2->efc_state[efcadr] == mjCNSTRSTATE_CONE) { + for (int j=0; j < 36; j++) { + EXPECT_THAT(data2->contact[c].H[j], + DoubleNear(data1->contact[c].H[j], 1e-12)); + } } } }