39 lines
1.2 KiB
C++
39 lines
1.2 KiB
C++
#include <gtest/gtest.h>
|
||
#include "DatasetDimension.hpp"
|
||
#include "repo/RepoTypes.hpp"
|
||
|
||
using geopro::data::DsRow;
|
||
using geopro::app::splitByDimension;
|
||
using geopro::app::DimBuckets;
|
||
|
||
static DsRow row(const char* id, const char* ddCode) {
|
||
DsRow r; r.id = id; r.ddCode = ddCode; return r;
|
||
}
|
||
|
||
TEST(DatasetDimension, SplitsByDdCode) {
|
||
std::vector<DsRow> in{
|
||
row("a", "dd_section"), // 3D
|
||
row("b", "dd_voxel"), // 3D
|
||
row("f", "dd_radar_3d"), // 3D(三维雷达体,spec §6.1)
|
||
row("c", "dd_trajectory_data"), // 2D
|
||
row("d", "dd_slice"), // Analysis
|
||
row("e", "dd_unknownxyz"), // Other -> not in any bucket
|
||
};
|
||
DimBuckets b = splitByDimension(in);
|
||
ASSERT_EQ(b.dim3D.size(), 3u);
|
||
EXPECT_EQ(b.dim3D[0].id, "a");
|
||
EXPECT_EQ(b.dim3D[1].id, "b");
|
||
EXPECT_EQ(b.dim3D[2].id, "f");
|
||
ASSERT_EQ(b.dim2D.size(), 1u);
|
||
EXPECT_EQ(b.dim2D[0].id, "c");
|
||
ASSERT_EQ(b.analysis.size(), 1u);
|
||
EXPECT_EQ(b.analysis[0].id, "d");
|
||
}
|
||
|
||
TEST(DatasetDimension, EmptyInput) {
|
||
DimBuckets b = splitByDimension({});
|
||
EXPECT_TRUE(b.dim3D.empty());
|
||
EXPECT_TRUE(b.dim2D.empty());
|
||
EXPECT_TRUE(b.analysis.empty());
|
||
}
|