Add getGeometryInfo function.

This commit is contained in:
sunwen
2023-05-17 13:38:48 +08:00
parent 0855801017
commit aa6b220905
5 changed files with 943 additions and 9 deletions

View File

@@ -1,8 +1,10 @@
#include <gtest/gtest.h>
#include "Matrix.h"
#include "common/ceMatchedFilterHandling.h"
#include "common/common.h"
#include "common/convertfp16tofloat.h"
#include "common/getGeometryInfo.h"
#include "MatlabReader.h"
inline double fourDecimalRound(double src){
@@ -82,4 +84,138 @@ TEST_F(Common_Test, convertToLinearIndices) {
}
}
}
TEST_F(Common_Test, getGeometryInfo) {
MatlabReader m("/home/sun/testData/getGeometryInfo.mat");
auto correctReceiverNormals = m.read4d("receiverNormals");
auto correctReceiverPositions = m.read4d("receiverPositions");
auto correctSenderNormals = m.read4d("senderNormals");
auto correctSenderPositions = m.read4d("senderPositions");
auto motoPos = m.read("motorPosAvailable");
auto transformationMatrices = m.read("transformationMatrices");
auto rlList = m.read("rlList");
auto rnList = m.read("rnList");
auto slList = m.read("slList");
auto snList = m.read("snList");
auto geom = Recon::getGeometryInfo(motoPos,transformationMatrices,rlList,rnList,slList,snList);
auto receiverNormals = geom.receiverNormals;
auto receiverPositions = geom.receiverPositions;
auto senderNormals = geom.senderNormals;
auto senderPositions = geom.senderPositions;
EXPECT_DOUBLE_EQ(correctReceiverNormals.size(), receiverNormals.size());
for(int i=0;i<correctReceiverNormals.size();++i)
{
EXPECT_DOUBLE_EQ(correctReceiverNormals[i].getDimSize(0), receiverNormals[i].getDimSize(0));
EXPECT_DOUBLE_EQ(correctReceiverNormals[i].getDimSize(1), receiverNormals[i].getDimSize(1));
EXPECT_DOUBLE_EQ(correctReceiverNormals[i].getDimSize(2), receiverNormals[i].getDimSize(2));
for(int j=0;j<correctReceiverNormals[i].getDataSize();++j)
{
EXPECT_DOUBLE_AE(correctReceiverNormals[i][j], receiverNormals[i][j]);
}
}
EXPECT_DOUBLE_EQ(correctReceiverPositions.size(), receiverPositions.size());
for(int i=0;i<correctReceiverPositions.size();++i)
{
EXPECT_DOUBLE_EQ(correctReceiverPositions[i].getDimSize(0), receiverPositions[i].getDimSize(0));
EXPECT_DOUBLE_EQ(correctReceiverPositions[i].getDimSize(1), receiverPositions[i].getDimSize(1));
EXPECT_DOUBLE_EQ(correctReceiverPositions[i].getDimSize(2), receiverPositions[i].getDimSize(2));
for(int j=0;j<correctReceiverPositions[i].getDataSize();++j)
{
EXPECT_DOUBLE_AE(correctReceiverPositions[i][j], receiverPositions[i][j]);
}
}
EXPECT_DOUBLE_EQ(correctSenderNormals.size(), senderNormals.size());
for(int i=0;i<correctSenderNormals.size();++i)
{
EXPECT_DOUBLE_EQ(correctSenderNormals[i].getDimSize(0), senderNormals[i].getDimSize(0));
EXPECT_DOUBLE_EQ(correctSenderNormals[i].getDimSize(1), senderNormals[i].getDimSize(1));
EXPECT_DOUBLE_EQ(correctSenderNormals[i].getDimSize(2), senderNormals[i].getDimSize(2));
for(int j=0;j<correctSenderNormals[i].getDataSize();++j)
{
EXPECT_DOUBLE_AE(correctSenderNormals[i][j], senderNormals[i][j]);
}
}
EXPECT_DOUBLE_EQ(correctSenderPositions.size(), senderPositions.size());
for(int i=0;i<correctSenderPositions.size();++i)
{
EXPECT_DOUBLE_EQ(correctSenderPositions[i].getDimSize(0), senderPositions[i].getDimSize(0));
EXPECT_DOUBLE_EQ(correctSenderPositions[i].getDimSize(1), senderPositions[i].getDimSize(1));
EXPECT_DOUBLE_EQ(correctSenderPositions[i].getDimSize(2), senderPositions[i].getDimSize(2));
for(int j=0;j<correctSenderPositions[i].getDataSize();++j)
{
EXPECT_DOUBLE_AE(correctSenderPositions[i][j], senderPositions[i][j]);
}
}
Aurora::Matrix sensChar = m.read("sensChar");
EXPECT_DOUBLE_EQ(geom.sensChar.getDataSize(), sensChar.getDataSize());
for(int i=0;i<geom.sensChar.getDataSize();++i)
{
EXPECT_DOUBLE_AE(geom.sensChar.getData()[i], sensChar.getData()[i]);
}
Aurora::Matrix headTable = m.read("headTable");
EXPECT_DOUBLE_EQ(geom.headTable.getDataSize(), headTable.getDataSize());
for(int i=0;i<geom.headTable.getDataSize();++i)
{
EXPECT_DOUBLE_AE(geom.headTable.getData()[i], headTable.getData()[i]);
}
Aurora::Matrix minEmitter = m.read("minEmitter");
EXPECT_DOUBLE_EQ(geom.minEmitter.getDataSize(), minEmitter.getDataSize());
for(int i=0;i<geom.minEmitter.getDataSize();++i)
{
EXPECT_DOUBLE_AE(geom.minEmitter.getData()[i], minEmitter.getData()[i]);
}
Aurora::Matrix minReceiver = m.read("minReceiver");
EXPECT_DOUBLE_EQ(geom.minReceiver.getDataSize(), minReceiver.getDataSize());
for(int i=0;i<geom.minReceiver.getDataSize();++i)
{
EXPECT_DOUBLE_AE(geom.minReceiver.getData()[i], minReceiver.getData()[i]);
}
Aurora::Matrix minSize = m.read("minSize");
EXPECT_DOUBLE_EQ(geom.minSize.getDataSize(), minSize.getDataSize());
for(int i=0;i<geom.minSize.getDataSize();++i)
{
EXPECT_DOUBLE_AE(geom.minSize.getData()[i], minSize.getData()[i]);
}
Aurora::Matrix maxEmitter = m.read("maxEmitter");
EXPECT_DOUBLE_EQ(geom.maxEmitter.getDataSize(), maxEmitter.getDataSize());
for(int i=0;i<geom.maxEmitter.getDataSize();++i)
{
EXPECT_DOUBLE_AE(geom.maxEmitter.getData()[i], maxEmitter.getData()[i]);
}
Aurora::Matrix maxReceiver = m.read("maxReceiver");
EXPECT_DOUBLE_EQ(geom.maxReceiver.getDataSize(), maxReceiver.getDataSize());
for(int i=0;i<geom.maxReceiver.getDataSize();++i)
{
EXPECT_DOUBLE_AE(geom.maxReceiver.getData()[i], maxReceiver.getData()[i]);
}
Aurora::Matrix maxSize = m.read("maxSize");
EXPECT_DOUBLE_EQ(geom.maxSize.getDataSize(), maxSize.getDataSize());
for(int i=0;i<geom.maxSize.getDataSize();++i)
{
EXPECT_DOUBLE_AE(geom.maxSize.getData()[i], maxSize.getData()[i]);
}
Aurora::Matrix maxSL = m.read("maxSL");
EXPECT_DOUBLE_EQ(geom.maxSL, maxSL[0]);
Aurora::Matrix maxSN = m.read("maxSN");
EXPECT_DOUBLE_EQ(geom.maxSN, maxSN[0]);
Aurora::Matrix maxRL = m.read("maxRL");
EXPECT_DOUBLE_EQ(geom.maxRL, maxRL[0]);
Aurora::Matrix maxRN = m.read("maxRN");
EXPECT_DOUBLE_EQ(geom.maxRN, maxRN[0]);
}