#include #include #include #include "Function1D.h" #include "MatlabReader.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" 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)) class Reconstruction_Test : public ::testing::Test { protected: static void SetUpReconstructionTester() { } static void TearDownTestCase() { } void SetUp() { } void TearDown() { } }; TEST_F(Reconstruction_Test, reconstructArt) { MatlabReader m("/home/sun/testData/reconstructArt.mat"); auto data = m.read("data"); auto dataAtt = m.read("dataAtt"); auto dims = m.read("dims"); auto receiverList = m.read("receiverList"); auto res = m.read("res"); auto senderList = m.read("senderList"); auto SOS_IN_WATER = m.read("SOS_IN_WATER"); auto f1 = m.read("f1"); auto result = Recon::reconstructArt(data, dataAtt, dims, senderList, receiverList, res, SOS_IN_WATER[0]); for(size_t i=0; i