geopro/tests/data/test_parsers.cpp

24 lines
825 B
C++

#include <gtest/gtest.h>
#include <fstream>
#include <sstream>
#include "parse/SampleParsers.hpp"
using namespace geopro::data;
using namespace geopro::core;
static std::string slurp(const char* p){std::ifstream f(p);std::stringstream s;s<<f.rdbuf();return s.str();}
TEST(Parsers, Grid) {
Grid g = parseGrid(slurp("D:/dev/spike_data/grid.json"));
EXPECT_EQ(g.nx(), 100); EXPECT_EQ(g.ny(), 22);
EXPECT_EQ(g.values().size(), 100u*22u);
EXPECT_NEAR(g.vmin, -57.09, 0.1); EXPECT_NEAR(g.vmax, 828.08, 0.1);
EXPECT_EQ(g.lat.size(), 100u); EXPECT_EQ(g.lon.size(), 100u);
}
TEST(Parsers, ColorScale) {
ColorScale cs = parseColorScale(slurp("D:/dev/spike_data/colorbar.json"));
EXPECT_FALSE(cs.empty());
auto c = cs.colorAt(-57.0); // 首段 -57.09 → rgba(0,0,170,255)
EXPECT_EQ(c.b, 170);
}