19 lines
712 B
C++
19 lines
712 B
C++
#include "io/gpr/IprHeader.hpp"
|
|
#include <gtest/gtest.h>
|
|
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);
|
|
}
|