feat: fix all TEST and add DICOM export TEST

This commit is contained in:
kradchen
2024-09-19 15:37:02 +08:00
parent 4c4ab3794e
commit 01210045bc
10 changed files with 287 additions and 377 deletions

View File

@@ -3,12 +3,12 @@
#include "Function3D.h"
#include "transmissionReconstruction/dataPreperation.h"
inline double fourDecimalRound(double src){
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 EXPECT_FLOAT_AE(valueA,valueB)\
EXPECT_FLOAT_EQ(fourDecimalRound(valueA),fourDecimalRound(valueB))
class TransRecon_DataPreperation_Test : public ::testing::Test {
protected:
@@ -27,39 +27,39 @@ protected:
};
TEST_F(TransRecon_DataPreperation_Test, distanceBetweenTwoPoints) {
double *dataA = new double[9]{1, 9, 4, 0, .01, 1.9, 300,22, -93};
float *dataA = new float[9]{1, 9, 4, 0, .01, 1.9, 300,22, -93};
auto A = Aurora::Matrix::fromRawData(dataA, 3, 3);
double *dataB = new double[9]{2,3,3,2,2,1,3,3,-3};
float *dataB = new float[9]{2,3,3,2,2,1,3,3,-3};
auto B = Aurora::Matrix::fromRawData(dataB, 3, 3);
auto output =Recon::distanceBetweenTwoPoints(B,A);
EXPECT_EQ(3, output.getDataSize());
EXPECT_DOUBLE_AE(6.1644,output.getData()[0]);
EXPECT_DOUBLE_AE(2.9614,output.getData()[1]);
EXPECT_DOUBLE_AE(310.9180,output.getData()[2]);
EXPECT_FLOAT_AE(6.1644,output.getData()[0]);
EXPECT_FLOAT_AE(2.9614,output.getData()[1]);
EXPECT_FLOAT_AE(310.9180,output.getData()[2]);
}
TEST_F(TransRecon_DataPreperation_Test, calculateWaterTemperature) {
auto waterTempS = Aurora::ones(3, 2) * 25.9;
auto waterTempR = Aurora::ones(4, 2) * 20 + 1.1;
double *xD = new double[6]{1, 2, 3, 1, 2, 3};
float *xD = new float[6]{1, 2, 3, 1, 2, 3};
Aurora::Matrix sl(
std::shared_ptr<double>(xD, std::default_delete<double[]>()),
std::shared_ptr<float>(xD, std::default_delete<float[]>()),
std::vector<int>{6});
xD = new double[6]{1, 1, 1, 1, 1, 1};
xD = new float[6]{1, 1, 1, 1, 1, 1};
Aurora::Matrix rl(
std::shared_ptr<double>(xD, std::default_delete<double[]>()),
std::shared_ptr<float>(xD, std::default_delete<float[]>()),
std::vector<int>{6});
xD = new double[6]{1, 1, 1, 2, 2, 2};
xD = new float[6]{1, 1, 1, 2, 2, 2};
Aurora::Matrix mp(
std::shared_ptr<double>(xD, std::default_delete<double[]>()),
std::shared_ptr<float>(xD, std::default_delete<float[]>()),
std::vector<int>{6});
auto output = Recon::calculateWaterTemperature(waterTempS, waterTempR,
sl, rl, mp);
EXPECT_EQ(6, output.getDataSize());
EXPECT_DOUBLE_AE(23.5, output.getData()[0]);
EXPECT_DOUBLE_AE(23.5, output.getData()[1]);
EXPECT_FLOAT_AE(23.5, output.getData()[0]);
EXPECT_FLOAT_AE(23.5, output.getData()[1]);
}
TEST_F(TransRecon_DataPreperation_Test, prepareAScansForTransmissionDetection){
@@ -68,6 +68,6 @@ TEST_F(TransRecon_DataPreperation_Test, prepareAScansForTransmissionDetection){
auto result = Recon::prepareAScansForTransmissionDetection(aScanBlock,gainBlock);
EXPECT_EQ(300, result.getDimSize(0));
EXPECT_EQ(10, result.getDimSize(1));
EXPECT_DOUBLE_AE(0, result.getData()[0]);
EXPECT_FLOAT_AE(0, result.getData()[0]);
}