#include "tap.hpp" #include "geom/segment.hpp" int main (int, char**) { util::TAP::logger tap; static struct { util::point3f a, b; util::point3f q; float distance; const char *message; } const TESTS[] = { { { 0, 0, 0 }, { 1, 1, 1 }, { 0, 0, 0 }, 0, "origin line, origin point" }, { { 0, 0, 0 }, { 1, 1, 1 }, { 1, 1, 1 }, 0, "origin line, point on line" }, { { 0, 1, 0 }, { 1, 1, 0 }, { 0, 0, 0 }, 1, "+x line, unit distance" }, }; for (auto const& t: TESTS) { util::geom::segment3f s {t.a, t.b}; auto d = distance (s, t.q); tap.expect_eq (d, t.distance, "%!", t.message); } return tap.status (); }