ResInsight/ApplicationCode/UnitTests/RiaPolyArcLineSampler-Test.cpp
Magne Sjaastad 651c28dc49 clang-format : Added extension .inl
Applied clang-format on all files in ApplicationCode including new extension .inl. Also includes some missing clang-format on other files.
2019-11-19 11:09:52 +01:00

77 lines
2.3 KiB
C++

#include "gtest/gtest.h"
#include "RiaPolyArcLineSampler.h"
#include <iostream>
//--------------------------------------------------------------------------------------------------
TEST( RiaPolyArcLineSampler, Basic )
{
std::vector<cvf::Vec3d> points{{0, 0, 0}, {0, 0, -10}, {0, 10, -20}, {0, 20, -20}, {0, 30, -30}};
RiaPolyArcLineSampler sampler( {0, 0, -1}, points );
std::vector<cvf::Vec3d> sampledPoints;
std::vector<double> mds;
sampler.sampledPointsAndMDs( 2, true, &sampledPoints, &mds );
#if 1
for ( size_t pIdx = 0; pIdx < sampledPoints.size(); ++pIdx )
{
std::cout << sampledPoints[pIdx].x() << " " << sampledPoints[pIdx].y() << " " << sampledPoints[pIdx].z()
<< " md: " << mds[pIdx] << std::endl;
}
#endif
EXPECT_EQ( 55, (int)sampledPoints.size() );
EXPECT_NEAR( 51.4159, mds.back(), 1e-4 );
EXPECT_NEAR( points[2].y(), sampledPoints[27].y(), 2 );
EXPECT_NEAR( points[2].z(), sampledPoints[27].z(), 2 );
EXPECT_NEAR( points[4].y(), sampledPoints.back().y(), 2 );
EXPECT_NEAR( points[4].z(), sampledPoints.back().z(), 2 );
}
//--------------------------------------------------------------------------------------------------
TEST( RiaPolyArcLineSampler, TestInvalidInput )
{
{
// Two identical points after each other
std::vector<cvf::Vec3d> points{{0, 0, -20}, {0, 0, -20}};
RiaPolyArcLineSampler sampler( {0, 0, -1}, points );
std::vector<cvf::Vec3d> sampledPoints;
std::vector<double> mds;
sampler.sampledPointsAndMDs( 2, true, &sampledPoints, &mds );
EXPECT_EQ( 0, (int)sampledPoints.size() );
}
{
std::vector<cvf::Vec3d> points;
RiaPolyArcLineSampler sampler( {0, 0, -1}, points );
std::vector<cvf::Vec3d> sampledPoints;
std::vector<double> mds;
sampler.sampledPointsAndMDs( 2, true, &sampledPoints, &mds );
EXPECT_EQ( 0, (int)sampledPoints.size() );
}
{
std::vector<cvf::Vec3d> points{{0, 0, 0}};
RiaPolyArcLineSampler sampler( {0, 0, -1}, points );
std::vector<cvf::Vec3d> sampledPoints;
std::vector<double> mds;
sampler.sampledPointsAndMDs( 2, true, &sampledPoints, &mds );
EXPECT_EQ( 0, (int)sampledPoints.size() );
}
}