geopro/tests/data/test_category_descriptor.cpp

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