vkgs-sim / tests /cpp /test_segment_map.cpp
kimjunhan's picture
Add files using upload-large-folder tool
4c75661 verified
Raw History Blame Contribute Delete
1.41 kB
// segment_map.hpp ์‹œํ—˜ (tests/test_segment_map_cpp.py ๊ฐ€ ์ปดํŒŒ์ผยท์‹คํ–‰). ์ฐฝ ์—†์Œ.
#include <cstdio>
#include "segment_map.hpp"
#define CHECK(c) \
do { \
if (!(c)) { \
std::printf("์‹คํŒจ %s:%d %s\n", __FILE__, __LINE__, #c); \
return 1; \
} \
} while (0)
int main(int argc, char** argv) {
auto m = vkgs::SegmentMap::load(argv[1]);
CHECK(m.segs.size() == 3);
CHECK(m.segs[1].offset[0] == 50.0 && m.segs[2].ply == "/a b/seg2/point_cloud.ply"); // ๊ฒฝ๋กœ์— ๊ณต๋ฐฑ
CHECK(m.max_gaussians() == 300);
// ๊ตฌ๊ฐ„ 0 ์ด x 0..49, 1 ์ด 50..99, 2 ๊ฐ€ 100..149 ๋ฅผ ๋งก๋Š”๋‹ค (y = 0)
CHECK(m.nearest(10, 0) == 0 && m.nearest(75, 0) == 1 && m.nearest(140, 5) == 2);
// ๊ฒฝ๊ณ„(49.5) ๋ฐ”๋กœ ๋„˜์–ด์„œ๋Š” ์ง€๊ธˆ ๊ตฌ๊ฐ„์„ ์œ ์ง€, hysteresis(3 m) ์˜ ์ ˆ๋ฐ˜ ๋„˜๊ฒŒ ์ง€๋‚˜๋ฉด ๋ฐ”๊พผ๋‹ค
CHECK(m.pick(50.5, 0, 0) == 0);
CHECK(m.pick(53.0, 0, 0) == 1);
CHECK(m.pick(48.5, 0, 1) == 1); // ๋˜๋Œ์•„๊ฐ€๋„ ๊ฒฝ๊ณ„์—์„œ ๋ฐ”๋กœ ๋ฐ”๊พธ์ง€ ์•Š๋Š”๋‹ค
CHECK(m.pick(46.0, 0, 1) == 0);
CHECK(m.pick(120, 0, 0) == 2); // ๋ฉ€๋ฆฌ ๊ฑด๋„ˆ๋›ฐ๊ธฐ (์ž์œ  ์‹œ์ )
std::printf("ok\n");
return 0;
}