From 2c6cd1ef38550c72672cfb65ef16597ce230f791 Mon Sep 17 00:00:00 2001 From: Filip Leonarski Date: Tue, 13 Oct 2026 05:21:33 +0200 Subject: [PATCH] ModelValidationTest: the null runs on every validation that judges its model ModelValidation_ReindexesTheDataIntoTheModelsIndexing still expected no null for data already in the model's indexing, as when the null ran only where a decision was pending. Since the unified model validation it runs on every validation whose schedule asks for it (fit_test, the default), and is skipped only where the verdict is another validation's; the test now checks that the null ran and that the model fits. Co-Authored-By: Claude Opus 5.5 (1M context) Claude-Session: https://claude.ai/code/session_01EizBKhTqrAYago9KJG3dA3 --- tests/ModelValidationTest.cpp | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tests/ModelValidationTest.cpp b/tests/ModelValidationTest.cpp index 47b7ddf73..5bac11561 100644 --- a/tests/ModelValidationTest.cpp +++ b/tests/ModelValidationTest.cpp @@ -510,12 +510,14 @@ TEST_CASE("ModelValidation_ReindexesTheDataIntoTheModelsIndexing", "[ModelValida CHECK(twin.indexing_op == gemmi::Op::identity()); CHECK(twin.change_of_basis_op == gemmi::Op::identity()); - // Data already in the model's indexing: nothing moves, and there is nothing to arbitrate. + // Data already in the model's indexing: nothing moves. The null is run all the same, as on every + // validation that judges its model (ModelValidationSchedule::fit_test), and the model fits. const auto same = ValidateAgainstModel(own, cell, model, prefix, logger, p4, true, 1, 1.0); REQUIRE(same.ok); CHECK(same.change_of_basis_op == gemmi::Op::identity()); CHECK(same.indexing_op == gemmi::Op::identity()); - CHECK_FALSE(same.fit_tested); + CHECK(same.fit_tested); + CHECK(same.model_fits); CHECK(same.r_work < 0.15); for (const char *suffix : {"_2fofc.ccp4", "_fofc.ccp4", "_anom.ccp4", "_maps.mtz"})