RotationIndexerTest: Use FFT or FFTW indexing (if available)

This commit is contained in:
2025-12-01 17:26:27 +01:00
parent 0a9e6834a4
commit 9886d01907

View File

@@ -17,18 +17,26 @@ TEST_CASE("RotationIndexer") {
.DetectorDistance_mm(200);
IndexingSettings settings;
#ifdef JFJOCH_USE_CUDA
settings.Algorithm(IndexingAlgorithmEnum::FFT);
#elif JFJOCH_USE_FFTW
settings.Algorithm(IndexingAlgorithmEnum::FFTW);
#else
return;
#endif
settings.RotationIndexing(true).RotationIndexingAngularStride_deg(1.0).RotationIndexingMinAngularRange_deg(30.0);
exp_i.ImportIndexingSettings(settings);
// Base lattice (non-pathological)
CrystalLattice latt_base(40, 50, 80, 90, 95, 90);
CrystalLattice latt_base(40, 50, 80, 90, 90, 90);
// Rotation axis: around X with 1 deg per image
GoniometerAxis axis("omega", 0.0f, 1.0f, Coord(1,0,0), std::nullopt);
exp_i.Goniometer(axis);
BraggPredictionSettings prediction_settings{
.high_res_A = 1.5,
.high_res_A = 1.3,
.ewald_dist_cutoff = 0.002
};
@@ -65,7 +73,7 @@ TEST_CASE("RotationIndexer") {
CHECK (cnt == 20);
auto ret = indexer.Finalize(false);
REQUIRE(ret);
REQUIRE(ret.has_value());
CHECK(ret->search_result.centering == 'P');
CHECK(ret->search_result.system == gemmi::CrystalSystem::Monoclinic);
}