#include #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"); }