// Copyright (2019-2023) Paul Scherrer Institute #include #include "../common/DetectorSetup.h" TEST_CASE("DetectorSetup_MismatchInSize") { REQUIRE_THROWS(DetectorSetup(DetectorGeometry(8), "JF", {"mx1","mx2","mx3","mx4"})); REQUIRE_THROWS(DetectorSetup(DetectorGeometry(2), "JF", {"mx1","mx2","mx3","mx4"})); REQUIRE_NOTHROW(DetectorSetup(DetectorGeometry(4), "JF", {"mx1","mx2","mx3","mx4"})); } TEST_CASE("DetectorSetup_ProtoBuf") { DetectorSetup setup(DetectorGeometry(4), "JF", {"mx1","mx2","mx3","mx4"}); JFJochProtoBuf::Detector detector = setup; REQUIRE(detector.description() == "JF"); REQUIRE(detector.module_hostname_size() == 4); REQUIRE(detector.module_hostname(3) == "mx4"); REQUIRE(detector.pixel_size_mm() == Approx(0.075)); REQUIRE(detector.nmodules() == 4); REQUIRE(detector.geometry().module_geometry_size() == 4); } TEST_CASE("DetectorSetup_ProtoBuf_FullSpeed") { DetectorSetup setup(DetectorGeometry(4), "JF", {"mx1","mx2","mx3","mx4"}); JFJochProtoBuf::Detector detector = setup; REQUIRE(detector.udp_interface_count() == 2); REQUIRE_NOTHROW(setup.UDPInterfaceCount(1)); REQUIRE_THROWS(setup.UDPInterfaceCount(0)); REQUIRE_THROWS(setup.UDPInterfaceCount(5)); REQUIRE_THROWS(setup.UDPInterfaceCount(-56)); detector = setup; REQUIRE(detector.udp_interface_count() == 1); } TEST_CASE("DetectorSetup_LoadGainFile") { DetectorSetup setup(DetectorGeometry(4), "JF", {"mx1","mx2","mx3","mx4"}); REQUIRE_THROWS(setup.LoadGain({})); REQUIRE(setup.GetGainCalibration().empty()); REQUIRE_THROWS(setup.LoadGain({ "../../tests/test_data/gainMaps_M049.bin", "../../tests/test_data/gainMaps_M049.bin", "../../tests/test_data/gainMaps_M049.bin" })); REQUIRE_THROWS(setup.LoadGain({ "../../tests/test_data/gainMaps_M049.bin", "../../tests/test_data/gainMaps_M049.bin", "../../tests/test_data/gainMaps_M049.bin", "../../tests/test_data/gainMaps_M049.bin", "../../tests/test_data/gainMaps_M049.bin" })); REQUIRE_NOTHROW(setup.LoadGain({ "../../tests/test_data/gainMaps_M049.bin", "../../tests/test_data/gainMaps_M049.bin", "../../tests/test_data/gainMaps_M049.bin", "../../tests/test_data/gainMaps_M049.bin" })); REQUIRE(setup.GetGainCalibration().size() == 4); }