mirror of
https://codeberg.org/comaps/comaps
synced 2025-12-20 13:23:59 +00:00
committed by
Konstantin Pastbin
parent
c9cbb64f12
commit
76ffc99abd
60
libs/drape_frontend/drape_frontend_tests/path_text_test.cpp
Normal file
60
libs/drape_frontend/drape_frontend_tests/path_text_test.cpp
Normal file
@@ -0,0 +1,60 @@
|
||||
#include "testing/testing.hpp"
|
||||
|
||||
#include "drape_frontend/path_text_handle.hpp"
|
||||
#include "drape_frontend/visual_params.hpp"
|
||||
|
||||
#include "base/logging.hpp"
|
||||
|
||||
namespace
|
||||
{
|
||||
bool IsSmooth(m2::SplineEx const & spline)
|
||||
{
|
||||
for (size_t i = 0, sz = spline.GetDirections().size(); i + 1 < sz; ++i)
|
||||
{
|
||||
if (!df::IsValidSplineTurn(spline.GetDirections()[i], spline.GetDirections()[i + 1]))
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
} // namespace
|
||||
|
||||
UNIT_TEST(Rounding_Spline)
|
||||
{
|
||||
df::VisualParams::Init(1.0, 1024);
|
||||
|
||||
m2::SplineEx spline1;
|
||||
df::AddPointAndRound(spline1, m2::PointD(0, 200));
|
||||
df::AddPointAndRound(spline1, m2::PointD(0, 0));
|
||||
df::AddPointAndRound(spline1, m2::PointD(200, 0));
|
||||
TEST(IsSmooth(spline1), ());
|
||||
TEST(spline1.GetSize() == 8, ());
|
||||
|
||||
m2::SplineEx spline2;
|
||||
df::AddPointAndRound(spline2, m2::PointD(-200, 0));
|
||||
df::AddPointAndRound(spline2, m2::PointD(0, 0));
|
||||
df::AddPointAndRound(spline2, m2::PointD(200, 200));
|
||||
df::AddPointAndRound(spline2, m2::PointD(400, 200));
|
||||
TEST(IsSmooth(spline2), ());
|
||||
TEST(spline2.GetSize() == 8, ());
|
||||
|
||||
m2::SplineEx spline3;
|
||||
df::AddPointAndRound(spline3, m2::PointD(200, 100));
|
||||
df::AddPointAndRound(spline3, m2::PointD(0, 0));
|
||||
df::AddPointAndRound(spline3, m2::PointD(200, 0));
|
||||
TEST(!IsSmooth(spline3), ());
|
||||
TEST(spline3.GetSize() == 3, ());
|
||||
|
||||
m2::SplineEx spline4;
|
||||
df::AddPointAndRound(spline4, m2::PointD(-200, 5));
|
||||
df::AddPointAndRound(spline4, m2::PointD(0, 0));
|
||||
df::AddPointAndRound(spline4, m2::PointD(200, 5));
|
||||
TEST(IsSmooth(spline4), ());
|
||||
TEST(spline4.GetSize() == 3, ());
|
||||
|
||||
m2::SplineEx spline5;
|
||||
df::AddPointAndRound(spline5, m2::PointD(200, 5));
|
||||
df::AddPointAndRound(spline5, m2::PointD(0, 0));
|
||||
df::AddPointAndRound(spline5, m2::PointD(200, -5));
|
||||
TEST(!IsSmooth(spline5), ());
|
||||
TEST(spline5.GetSize() == 3, ());
|
||||
}
|
||||
Reference in New Issue
Block a user