geopro/tests/core/test_model_data.cpp

35 lines
964 B
C++

#include <gtest/gtest.h>
#include "model/Field.hpp"
#include "model/Anomaly.hpp"
using namespace geopro::core;
TEST(DataModel, GridHasMetaFields) {
Grid g(2, 3);
g.z.assign(6, 0.0); g.elevation = {1,2}; g.lat = {22.5,22.5}; g.lon = {114.1,114.1};
g.vmin = -10; g.vmax = 800;
EXPECT_EQ(g.z.size(), 6u);
EXPECT_DOUBLE_EQ(g.vmax, 800);
}
TEST(DataModel, ScatterHasGis) {
ScatterField s; s.projX = {516000.0}; s.projY = {2494000.0};
EXPECT_EQ(s.projX.size(), 1u);
}
TEST(DataModel, AnomalyHolds) {
Anomaly a;
a.name = "ERT1-54"; a.markType = AnomalyMarkType::Polyline;
a.localPts = {{1.0, 2.0}, {3.0, 4.0}};
EXPECT_EQ(a.markType, AnomalyMarkType::Polyline);
EXPECT_EQ(a.localPts.size(), 2u);
}
#include <cmath>
TEST(GridNaN, HasValueReflectsNaN) {
geopro::core::Grid g(2, 2);
g.valueAt(0, 0) = 3.0;
g.valueAt(1, 0) = std::nan("");
EXPECT_TRUE(g.hasValue(0, 0));
EXPECT_FALSE(g.hasValue(1, 0));
}