Files
UR/test/Common_Test.cpp

85 lines
2.5 KiB
C++
Raw Normal View History

#include <gtest/gtest.h>
#include "common/ceMatchedFilterHandling.h"
2023-05-10 10:39:40 +08:00
#include "common/common.h"
2023-05-09 17:07:53 +08:00
#include "common/convertfp16tofloat.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))
class Common_Test : public ::testing::Test {
protected:
static void SetUpCommonTester() {
}
static void TearDownTestCase() {
}
void SetUp() {
}
void TearDown() {
}
};
TEST_F(Common_Test, adaptFrequency) {
// MatlabReader m("/home/krad/TestData/adaptFrequency.mat");
2023-05-10 17:00:36 +08:00
MatlabReader m("/home/sun/Aurora_back/build/a.mat");
auto mCe = m.read("input");
mCe = Recon::adaptFrequency(mCe,40000000.0,10000000.0);
EXPECT_EQ(4096,mCe.getDataSize());
auto output = m.read("output");
for (size_t i = 0; i < 4096; i++)
{
EXPECT_DOUBLE_AE(mCe.getData()[i],output.getData()[i])<<", index:"<<i;
}
}
2023-05-09 17:07:53 +08:00
TEST_F(Common_Test, convertfp16tofloat) {
MatlabReader m("/home/krad/TestData/convertReal.mat");
size_t count = 0;
auto input = m.readint16("input",count);
auto ma = Aurora::Matrix::copyFromRawData((double*)input.get(),count/4);
auto resultM = Recon::convertfp16tofloat(ma);
auto result = resultM.getData();
auto output = m.read("output");
2023-05-09 17:44:06 +08:00
for (size_t i = 0; i<count; i++) {
2023-05-09 17:07:53 +08:00
EXPECT_EQ(result[i], output.getData()[i])<<"index:"<<i<<",input:"<< ((short*)ma.getData())[i]<<",input2:"<<input.get()[i];
}
2023-05-10 10:39:40 +08:00
}
TEST_F(Common_Test, convertToLinearIndices) {
//2D
{
double *dataA = new double[6]{1, 9, 4, 0, .01, 1.9};
auto A = Aurora::Matrix::fromRawData(dataA, 3, 2);
double *dataB = new double[2]{3, 2};
auto B = Aurora::Matrix::fromRawData(dataB, 2, 1);
auto output =Recon::convertToLinearIndices(B,A);
EXPECT_DOUBLE_AE(-2,output.getData()[0]);
EXPECT_DOUBLE_AE(6.03,output.getData()[1]);
EXPECT_DOUBLE_AE(6.7,output.getData()[2]);
}
//3D
{
double *dataA = new double[12]{1, 9, 4, 0, .01, 1.9, 1, 9, 4, 0, .01, 1.9};
auto A = Aurora::Matrix::fromRawData(dataA, 2, 3, 2);
double *dataB = new double[3]{3, 2, 2};
auto B = Aurora::Matrix::fromRawData(dataB, 3, 1);
auto output =Recon::convertToLinearIndices(B,A);
EXPECT_DOUBLE_AE(4.06,output.getData()[0]);
EXPECT_DOUBLE_AE(11.4,output.getData()[1]);
}
2023-05-09 17:07:53 +08:00
}