36 lines
1.3 KiB
C++
36 lines
1.3 KiB
C++
#include <gtest/gtest.h>
|
|
#include "repo/CategoryDescriptor.hpp"
|
|
#include "DatasetCategory.hpp"
|
|
|
|
using namespace geopro::data;
|
|
|
|
TEST(CategoryCatalog, HasFiveSegmentsInOrder) {
|
|
const auto& cat = categoryCatalog();
|
|
ASSERT_EQ(cat.size(), 5u);
|
|
EXPECT_EQ(cat[0].id, "resistivity");
|
|
EXPECT_EQ(cat[3].id, "voxel");
|
|
EXPECT_EQ(cat[4].id, "trajectory");
|
|
EXPECT_EQ(cat[4].sceneKind, SceneKind::Plane2D);
|
|
EXPECT_EQ(cat[4].renderStrategyId, "plane2d");
|
|
}
|
|
|
|
TEST(CategoryCatalog, TrajectoryClassifiesByDdCode) {
|
|
const auto& cat = categoryCatalog();
|
|
DsRow traj; traj.id = "t1"; traj.ddCode = "dd_trajectory_data";
|
|
EXPECT_TRUE(cat[4].classify(traj));
|
|
DsRow vox; vox.ddCode = "dd_voxel";
|
|
EXPECT_FALSE(cat[4].classify(vox));
|
|
}
|
|
|
|
TEST(SplitByCategory, RoutesRowToFirstMatchingDescriptor) {
|
|
DsRow traj; traj.id = "t1"; traj.ddCode = "dd_trajectory_data";
|
|
DsRow ert; ert.id = "e1"; ert.dsTypeCode = "ERT platform inversion data";
|
|
auto b = geopro::app::splitByCategory({traj, ert});
|
|
const auto& cat = categoryCatalog();
|
|
ASSERT_EQ(b.segments.size(), cat.size());
|
|
EXPECT_EQ(b.segments[0].size(), 1u); // resistivity ← ert
|
|
EXPECT_EQ(b.segments[0][0].id, "e1");
|
|
EXPECT_EQ(b.segments[4].size(), 1u); // trajectory ← traj
|
|
EXPECT_EQ(b.segments[4][0].id, "t1");
|
|
}
|