From 483eb2f56657e8e7f419ab1a4fab8dce9ade8609 Mon Sep 17 00:00:00 2001 From: Daniel Baumann Date: Sat, 27 Apr 2024 20:24:20 +0200 Subject: Adding upstream version 14.2.21. Signed-off-by: Daniel Baumann --- .../libs/geometry/test/arithmetic/general.cpp | 142 +++++++++++++++++++++ 1 file changed, 142 insertions(+) create mode 100644 src/boost/libs/geometry/test/arithmetic/general.cpp (limited to 'src/boost/libs/geometry/test/arithmetic/general.cpp') diff --git a/src/boost/libs/geometry/test/arithmetic/general.cpp b/src/boost/libs/geometry/test/arithmetic/general.cpp new file mode 100644 index 00000000..a329a6e5 --- /dev/null +++ b/src/boost/libs/geometry/test/arithmetic/general.cpp @@ -0,0 +1,142 @@ +// Boost.Geometry (aka GGL, Generic Geometry Library) +// Unit Test + +// Copyright (c) 2007-2012 Barend Gehrels, Amsterdam, the Netherlands. +// Copyright (c) 2008-2012 Bruno Lalande, Paris, France. +// Copyright (c) 2009-2012 Mateusz Loskot, London, UK. + +// Parts of Boost.Geometry are redesigned from Geodan's Geographic Library +// (geolib/GGL), copyright (c) 1995-2010 Geodan, Amsterdam, the Netherlands. + +// Use, modification and distribution is subject to the Boost Software License, +// Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at +// http://www.boost.org/LICENSE_1_0.txt) + + +#include + + +#include + +#include + +#include +#include +#include +#include + +BOOST_GEOMETRY_REGISTER_C_ARRAY_CS(cs::cartesian) +BOOST_GEOMETRY_REGISTER_BOOST_TUPLE_CS(cs::cartesian) + + +template +void test_addition() +{ + P p1; + bg::assign_values(p1, 1, 2, 3); + bg::add_value(p1, 10); + BOOST_CHECK(bg::get<0>(p1) == 11); + BOOST_CHECK(bg::get<1>(p1) == 12); + BOOST_CHECK(bg::get<2>(p1) == 13); + + P2 p2(4, 5, 6); + bg::add_point(p1, p2); + BOOST_CHECK(bg::get<0>(p1) == 15); + BOOST_CHECK(bg::get<1>(p1) == 17); + BOOST_CHECK(bg::get<2>(p1) == 19); +} + +template +void test_subtraction() +{ + P p1; + bg::assign_values(p1, 1, 2, 3); + bg::subtract_value(p1, 10); + BOOST_CHECK(bg::get<0>(p1) == -9); + BOOST_CHECK(bg::get<1>(p1) == -8); + BOOST_CHECK(bg::get<2>(p1) == -7); + + P2 p2(4, 6, 8); + bg::subtract_point(p1, p2); + BOOST_CHECK(bg::get<0>(p1) == -13); + BOOST_CHECK(bg::get<1>(p1) == -14); + BOOST_CHECK(bg::get<2>(p1) == -15); +} + +template +void test_multiplication() +{ + P p1; + bg::assign_values(p1, 1, 2, 3); + bg::multiply_value(p1, 5); + BOOST_CHECK(bg::get<0>(p1) == 5); + BOOST_CHECK(bg::get<1>(p1) == 10); + BOOST_CHECK(bg::get<2>(p1) == 15); + + P2 p2(4, 5, 6); + bg::multiply_point(p1, p2); + BOOST_CHECK(bg::get<0>(p1) == 20); + BOOST_CHECK(bg::get<1>(p1) == 50); + BOOST_CHECK(bg::get<2>(p1) == 90); +} + +template +void test_division() +{ + P p1; + bg::assign_values(p1, 50, 100, 150); + bg::divide_value(p1, 5); + BOOST_CHECK(bg::get<0>(p1) == 10); + BOOST_CHECK(bg::get<1>(p1) == 20); + BOOST_CHECK(bg::get<2>(p1) == 30); + + P2 p2(2, 4, 6); + bg::divide_point(p1, p2); + BOOST_CHECK(bg::get<0>(p1) == 5); + BOOST_CHECK(bg::get<1>(p1) == 5); + BOOST_CHECK(bg::get<2>(p1) == 5); +} + +template +void test_assign() +{ + P p1; + P2 p2(12, 34, 56); + bg::assign_values(p1, 12, 34, 56); + bg::assign_point(p1, p2); + BOOST_CHECK(bg::get<0>(p1) == 12); + BOOST_CHECK(bg::get<1>(p1) == 34); + BOOST_CHECK(bg::get<2>(p1) == 56); + + bg::assign_value(p1, 78); + BOOST_CHECK(bg::get<0>(p1) == 78); + BOOST_CHECK(bg::get<1>(p1) == 78); + BOOST_CHECK(bg::get<2>(p1) == 78); +} + + +template +void test_all() +{ + typedef test::test_const_point P2; + + test_addition(); + test_subtraction(); + test_multiplication(); + test_division(); + test_assign(); +} + + +int test_main(int, char* []) +{ + test_all(); + test_all(); + test_all(); + test_all(); + test_all >(); + test_all >(); + test_all >(); + + return 0; +} -- cgit v1.2.3