Add resampleTransmissionVolume and unittest.
This commit is contained in:
86
test/ProcessData_Test.cpp
Normal file
86
test/ProcessData_Test.cpp
Normal file
@@ -0,0 +1,86 @@
|
||||
#include <gtest/gtest.h>
|
||||
|
||||
#include "Function2D.h"
|
||||
#include "Matrix.h"
|
||||
|
||||
#include "src/reflectionReconstruction/preprocessData/resampleTransmissionVolume.h"
|
||||
#include "src/reflectionReconstruction/preprocessData/precalcImageParameters.h"
|
||||
#include "src/reflectionReconstruction/preprocessData/imageExtrapolation.h"
|
||||
#include "src/common/getGeometryInfo.h"
|
||||
#include "src/config/config.h"
|
||||
|
||||
#include "MatlabReader.h"
|
||||
|
||||
using namespace Recon;
|
||||
|
||||
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 ProcessData_Test : public ::testing::Test {
|
||||
protected:
|
||||
static void SetUpCommonTester() {
|
||||
|
||||
}
|
||||
|
||||
static void TearDownTestCase() {
|
||||
}
|
||||
|
||||
void SetUp() {
|
||||
}
|
||||
|
||||
void TearDown() {
|
||||
}
|
||||
};
|
||||
|
||||
TEST_F(ProcessData_Test, imageExtrapolation) {
|
||||
MatlabReader m("/home/sun/testData/imageExtrapolation.mat");
|
||||
|
||||
auto smHelperInput = m.read("SMHelperInput");
|
||||
auto smHelper = m.read("SMHelper");
|
||||
auto result = imageExtrapolation(smHelperInput, 3);
|
||||
for(int i=0;i<result.getDataSize();++i)
|
||||
{
|
||||
EXPECT_DOUBLE_AE(smHelper[i],result[i]) << i;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
TEST_F(ProcessData_Test, resampleTransmissionVolume) {
|
||||
MatlabReader m("/home/sun/testData/resampleTransmissionVolume.mat");
|
||||
|
||||
auto maxEmitter = m.read("maxEmitter");
|
||||
auto maxPos = m.read("maxPos");
|
||||
auto maxReceiver = m.read("maxReceiver");
|
||||
auto minEmitter = m.read("minEmitter");
|
||||
auto minPos = m.read("minPos");
|
||||
auto minReceiver = m.read("minReceiver");
|
||||
auto transVol = m.read("transVol");
|
||||
auto speedMap3d = m.read("SpeedMap3D");
|
||||
auto beginTransMap = m.read("begin_TransMap");
|
||||
auto deltaTransMap = m.read("delta_TransMap");
|
||||
Recon::GeometryInfo geom;
|
||||
geom.maxEmitter = maxEmitter;
|
||||
geom.minEmitter = minEmitter;
|
||||
geom.maxReceiver = maxReceiver;
|
||||
geom.minReceiver = minReceiver;
|
||||
geom.minSize = m.read("minSize");
|
||||
geom.maxSize = m.read("maxSize");
|
||||
precalcImageParameters(geom);
|
||||
auto r = resampleTransmissionVolume(transVol, maxPos, minPos, geom);
|
||||
for(int i=0;i<r.transMap.getDataSize();++i)
|
||||
{
|
||||
EXPECT_DOUBLE_AE(speedMap3d[i],r.transMap[i]);
|
||||
}
|
||||
for(int i=0;i<r.beginTransMap.getDataSize();++i)
|
||||
{
|
||||
EXPECT_DOUBLE_AE(beginTransMap[i],r.beginTransMap[i]);
|
||||
}
|
||||
|
||||
EXPECT_DOUBLE_AE(deltaTransMap[0],r.deltaTransMap);
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user