Skip to content

Commit dfd463c

Browse files
kbayescopybara-github
authored andcommitted
Reset nnzJ in resetData.
PiperOrigin-RevId: 517976421 Change-Id: I329c0096d368062f150c6dbeec181f5b0eeefcbf
1 parent e58d53e commit dfd463c

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/engine/engine_io.c

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1283,6 +1283,7 @@ static void _resetData(const mjModel* m, mjData* d, unsigned char debug_value) {
12831283
d->ne = 0;
12841284
d->nf = 0;
12851285
d->nefc = 0;
1286+
d->nnzJ = 0;
12861287
d->ncon = 0;
12871288

12881289
// clear global properties

test/engine/engine_io_test.cc

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -203,6 +203,27 @@ TEST_F(EngineIoTest, MakeDataReturnsNullOnFailure) {
203203
mj_deleteModel(model);
204204
}
205205

206+
TEST_F(EngineIoTest, ResetVariableSizes) {
207+
constexpr char xml[] = "<mujoco/>";
208+
209+
std::array<char, 1024> error;
210+
mjModel* model = LoadModelFromString(xml, error.data(), error.size());
211+
ASSERT_THAT(model, NotNull()) << "Failed to load model: " << error.data();
212+
213+
mjData* data = mj_makeData(model);
214+
ASSERT_THAT(model, NotNull()) << "Failed to create mjData";
215+
216+
// don't call mj_forward, vars should be reset
217+
EXPECT_EQ(data->ne, 0);
218+
EXPECT_EQ(data->nf, 0);
219+
EXPECT_EQ(data->nefc, 0);
220+
EXPECT_EQ(data->nnzJ, 0);
221+
EXPECT_EQ(data->ncon, 0);
222+
223+
mj_deleteData(data);
224+
mj_deleteModel(model);
225+
}
226+
206227
using ValidateReferencesTest = MujocoTest;
207228

208229
TEST_F(ValidateReferencesTest, BodyReferences) {

0 commit comments

Comments
 (0)