#include "io/gpr/IprHeader.hpp" #include using geopro::io::gpr::parseIprHeader; TEST(IprHeader, ParsesKeyFieldsFromRealSample) { const std::string t = "SAMPLES: 821\nLAST TRACE: 45305\nCHANNELS: 14\n" "TIMEWINDOW: 160.352\nSOIL VELOCITY: 100.000000\nDISTANCE INTERVAL: 0.049084\n"; auto h = parseIprHeader(t); EXPECT_EQ(h.samples, 821); EXPECT_EQ(h.lastTrace, 45305); EXPECT_EQ(h.channels, 14); EXPECT_DOUBLE_EQ(h.timeWindowNs, 160.352); EXPECT_DOUBLE_EQ(h.soilVelocity, 1e8); // 100 m/µs → 1e8 m/s EXPECT_NEAR(h.distanceInterval, 0.049084, 1e-9); } TEST(IprHeader, ThrowsOnMissingSamples) { EXPECT_THROW(parseIprHeader("CHANNELS: 14\n"), std::runtime_error); }