37 lines
1.1 KiB
C++
37 lines
1.1 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("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(), 2u);
|
|
EXPECT_EQ(b.dim3D[0].id, "a");
|
|
EXPECT_EQ(b.dim3D[1].id, "b");
|
|
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());
|
|
}
|