#include "catch.hpp" #include "container_utils.h" #include "multiSlsDetector.h" #include "slsDetector.h" #include "string_utils.h" #include using namespace sls; // SCENARIO("Multi detector operation", "[detector]") { // multiSlsDetector::freeSharedMemory(20, -1); // GIVEN("An empty multi detector") { // multiSlsDetector m(20); // THEN("the size is zero") { // CHECK(m.getNumberOfDetectors() == 0); // CHECK(m.getDataBytes() == 0); // CHECK(m.getTotalNumberOfChannels() == 0); // } // WHEN("we add a detector") { // m.addSlsDetector(sls::make_unique( // slsDetectorDefs::detectorType::EIGER, 20, 0)); // THEN("the size and number of detector changes") { // CHECK(m.getNumberOfDetectors() == 1); // CHECK(m.getTotalNumberOfChannels() == 256 * 1024); // } // WHEN("we add another detector") { // m.addSlsDetector(sls::make_unique( // slsDetectorDefs::detectorType::EIGER, 20, 1)); // THEN("the size and number of detector changes") { // CHECK(m.getNumberOfDetectors() == 2); // CHECK(m.getTotalNumberOfChannels() == 2 * 256 * 1024); // } // WHEN("We set the trimen") { // std::vector energies{5000, 6000, 7000, 8000, 9000}; // m.setTrimEn(energies); // THEN("we read back the same values") { // CHECK(m.getTrimEn() == energies); // } // } // WHEN("We set the trimen to different values") { // std::vector en0{5000, 6000, 7000, 8000, 9000}; // std::vector en1{6000, 7000, 8000, 9000}; // m.setTrimEn(en0, 0); // m.setTrimEn(en1, 1); // THEN("we read back the same values") { // CHECK(m.getTrimEn(0) == en0); // CHECK(m.getTrimEn(1) == en1); // CHECK(m.getTrimEn() == std::vector{-1}); // } // } // } // } // m.freeSharedMemory(); // } // } // TEST_CASE("Set and get partialFramesPadding", "[detector][somenewtag]"){ // multiSlsDetector::freeSharedMemory(20, -1); // multiSlsDetector m(20); // m.addSlsDetector(sls::make_unique( // slsDetectorDefs::detectorType::EIGER, 20, 0)); // m.addSlsDetector(sls::make_unique( // slsDetectorDefs::detectorType::EIGER, 20, 1)); // m.setPartialFramesPadding(false); // CHECK(m.getPartialFramesPadding() == 0); // m.setPartialFramesPadding(true); // CHECK(m.getPartialFramesPadding() == 1); // m.setPartialFramesPadding(false, 0); // CHECK(m.getPartialFramesPadding() == -1); // m.freeSharedMemory(); // }