#include #include #include #include "Function1D.h" #include "MatlabReader.h" #include "MatlabWriter.h" #include "Matrix.h" #include "Sparse.h" #include "config/config.h" #include "transmissionReconstruction/reconstruction/buildMatrix/DGradient.h" #include "transmissionReconstruction/reconstruction/buildMatrix/FMM.h" #include "transmissionReconstruction/reconstruction/buildMatrix/buildMatrix.h" #include "transmissionReconstruction/reconstruction/reconstruction.h" #include "transmissionReconstruction/reconstruction/solvingEquationSystem/TVAL/TVAL.h" #include "reflectionReconstruction/preprocessData/determineOptimalPulse.h" inline double fourDecimalRound(double 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 Reconstruction_Test : public ::testing::Test { protected: static void SetUpReconstructionTester() { } static void TearDownTestCase() { } void SetUp() { } void TearDown() { } }; TEST_F(Reconstruction_Test, determineOptimalPulse) { Recon::reflectParams::imageResolution = 8.6381e-04; Recon::reflectParams::optPulseFactor = 24; auto result = Recon::determineOptimalPulse(1.0000e-07,3000); EXPECT_EQ(3000, result.getDataSize()); ASSERT_DOUBLE_AE(result[2], 0.0025); ASSERT_DOUBLE_AE(result[4], 0.0078); // for(size_t i=0; i