#include #include #include #include "Function1D.h" #include "MatlabReader.h" #include "Matrix.h" #include "config/config.h" #include "common/getMeasurementMetaData.h" #include "transmissionReconstruction/detection/detection.h" inline float fourDecimalRound(float src){ return round(src*10000.0)/10000.0; } #define EXPECT_DOUBLE_AE(valueA,valueB)\ EXPECT_DOUBLE_EQ(fourDecimalRound(valueA),fourDecimalRound(valueB)) #define ASSERT_DOUBLE_AE(valueA,valueB)\ ASSERT_DOUBLE_EQ(fourDecimalRound(valueA),fourDecimalRound(valueB)) class Detection_Test : public ::testing::Test { protected: static void SetUpDetectionTester() { } static void TearDownTestCase() { } void SetUp() { } void TearDown() { } }; // TEST_F(Detection_Test, detectTofAndAtt) { // MatlabReader m("/home/sun/testData/transmissionDetection.mat"); // auto AscanBlock = m.read("AscanBlock"); // auto AscanRefBlock = m.read("AscanRefBlock"); // auto distBlock = m.read("dists"); // auto distBlockRef = m.read("distRefBlock"); // auto sosWaterBlock = Recon::temperatureToSoundSpeed(m.read("waterTempBlock"), "marczak"); // auto sosWaterRefBlock = Recon::temperatureToSoundSpeed(m.read("waterTempRefBlock"), "marczak"); // float expectedSOSWater = 1.512677498767504e+03; // auto result = Recon::detectTofAndAtt( // AscanBlock, AscanRefBlock, distBlock, distBlockRef, sosWaterBlock, // sosWaterRefBlock, Recon::transParams::resampleFactor, // Recon::transParams::nThreads, expectedSOSWater, // Recon::transParams::useTimeWindowing, // Recon::transParams::aScanReconstructionFrequency, // Recon::transParams::detectionWindowATT,Recon::transParams::offsetElectronic, // Recon::transParams::detectionWindowSOS, // Recon::transParams::minSpeedOfSound, // Recon::transParams::maxSpeedOfSound, Recon::transParams::gaussWindow); // MatlabReader m2("/home/krad/TestData/sosResult.mat"); // auto sosvalue = m2.read("sosValue"); // auto tof = m2.read("tofRel"); // auto att = m2.read("att"); // // auto result1 = Recon::detectTofAndAttMex( // // AscanBlock, AscanRefBlock, distBlock, distBlockRef, sosWaterBlock, // // sosWaterRefBlock, Recon::transParams::resampleFactor, // // Recon::transParams::nThreads, expectedSOSWater, // // Recon::transParams::useTimeWindowing, // // Recon::transParams::aScanReconstructionFrequency, // // Recon::transParams::detectionWindowATT,Recon::transParams::offsetElectronic, // // Recon::transParams::detectionWindowSOS, // // Recon::transParams::minSpeedOfSound, // // Recon::transParams::maxSpeedOfSound, Recon::transParams::gaussWindow); // ASSERT_EQ(sosvalue.getDataSize(), result.tof.getDataSize()); // ASSERT_EQ(sosvalue.getDataSize(), result.sosValue.getDataSize()); // ASSERT_EQ(sosvalue.getDataSize(), result.att.getDataSize()); // #pragma omp parallel for // for (size_t i = 0; i < result.tof.getDataSize(); i++) // { // EXPECT_DOUBLE_AE(tof[i],result.tof[i])<<",index:"<