#include #include "Matrix.h" #include "common/getGeometryInfo.h" #include "transmissionReconstruction/dataFilter/sensitivityCalculations.h" #include "MatlabReader.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 Sensitivity_Test : public ::testing::Test { protected: static void SetUpSensitivityTester() { } static void TearDownTestCase() { } void SetUp() { } void TearDown() { } }; #include "Function3D.h" TEST_F(Sensitivity_Test, getSensitivity) { MatlabReader m("/home/krad/TestData/sensitivity.mat"); auto sensmap = m.read("sensmap"); auto senderNormal = m.read("senderNormal"); auto dirToReceiver = m.read("dirVector"); { auto xyn = Aurora::zeros(1, 3); xyn.getData()[2] = 1; xyn = Aurora::repmat(xyn,2304, 1); } auto output = Recon::getSensitivity(sensmap, senderNormal, dirToReceiver); auto sens = m.read("sens"); EXPECT_EQ(output.getDataSize(), sens.getDataSize()); for (size_t i = 0; i < output.getDataSize(); i++) { EXPECT_DOUBLE_AE(output.getData()[i],sens.getData()[i])<<", index:"<