From dd8035c87efec996164c1c0f5c78c790d72747d9 Mon Sep 17 00:00:00 2001 From: Nao Pross Date: Sat, 23 Feb 2019 13:49:23 +0100 Subject: Add test to cmake --- CMakeLists.txt | 4 ++++ include/mmvec.hpp | 2 +- test/CMakeLists.txt | 28 ++++++++++++++++++++++++ test/example.cpp | 62 ---------------------------------------------------- test/vec_example.cpp | 62 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 5 files changed, 95 insertions(+), 63 deletions(-) create mode 100644 test/CMakeLists.txt delete mode 100644 test/example.cpp create mode 100644 test/vec_example.cpp diff --git a/CMakeLists.txt b/CMakeLists.txt index c7918e1..04faebb 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -112,3 +112,7 @@ export(EXPORT mm-targets ) export(PACKAGE MM) + +############################ +# tests +add_subdirectory(test) diff --git a/include/mmvec.hpp b/include/mmvec.hpp index db3c390..21e91b5 100644 --- a/include/mmvec.hpp +++ b/include/mmvec.hpp @@ -318,7 +318,7 @@ T mm::vec2::angle() const { template mm::vec2 mm::vec2::polar() const { - return mm::vec2 { + return { this->length(), this->angle() }; diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt new file mode 100644 index 0000000..e80e737 --- /dev/null +++ b/test/CMakeLists.txt @@ -0,0 +1,28 @@ +add_executable(vec_example + vec_example.cpp +) + +target_compile_options(vec_example + PRIVATE + $<$: + -pedantic -Wall -Wextra -Wcast-qual -Wcast-align -Wpointer-arith + -Winit-self -Wshadow -Wswitch-enum -Wredundant-decls -Wfloat-equal + -Wundef -Wvla -Wconversion -Wstrict-aliasing + > + $<$:/W4> +) + +target_compile_features(vec_example + PRIVATE + cxx_std_17 +) + +target_include_directories(vec_example + PRIVATE + ${MM_INCLUDE_DIRS} +) + +target_link_libraries(vec_example + PRIVATE + MM::mm +) diff --git a/test/example.cpp b/test/example.cpp deleted file mode 100644 index 3a00f58..0000000 --- a/test/example.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include "mmvec.hpp" - -#include -#include - -int main(int argc, char *argv[]) { - // N dimensional vectors - std::cout << "N dimensional (int) vectors" << std::endl; - mm::vec u {3, 2, 1, 0, 1}; - mm::vec v {1, 2, 3, 4, 5}; - - std::cout << "u = " << u << std::endl; - std::cout << "v = " << v << std::endl; - std::cout << std::endl; - - // basic operations - std::cout << "u + v = " << u + v << std::endl; - std::cout << "u - v = " << u - v << std::endl; - std::cout << "2 * v = " << 2 * v << std::endl; - std::cout << "v * 2 = " << v * 2 << std::endl; - std::cout << "u * v = " << u * v << std::endl; - std::cout << std::endl; - - u += v; - - // three dimensional vectors - std::cout << "three dimensional (double) vectors" << std::endl; - - mm::vec3 a {1, 2, 3}; - mm::vec3 b {3, 2, 1}; - - std::cout << "a = " << a << std::endl; - std::cout << "b = " << b << std::endl; - std::cout << std::endl; - - std::cout << "a x b = " << mm::vec3::cross(a, b) << std::endl; - std::cout << "zenith(a) = " << a.zenith() << std::endl; - std::cout << "azimuth(a) = " << a.azimuth() << std::endl; - std::cout << "spherical(a) = " << a.spherical() << std::endl; - std::cout << std::endl; - - a -= b; - - // two dimensional vector - std::cout << "two dimensional (complex) vectors" << std::endl; - - mm::vec2> j {{1, 2}, {3, -1}}; - mm::vec2> k { 5, {-2, 1}}; - - std::cout << "j = " << j << std::endl; - std::cout << "k = " << k << std::endl; - std::cout << std::endl; - - std::cout << "j x k = " << mm::vec2>::cross(j, k) << std::endl; - std::cout << "angle(j) = " << j.angle() << std::endl; - std::cout << "polar(j) = " << j.polar() << std::endl; - std::cout << std::endl; - - j *= 10; - - return 0; -} diff --git a/test/vec_example.cpp b/test/vec_example.cpp new file mode 100644 index 0000000..3a00f58 --- /dev/null +++ b/test/vec_example.cpp @@ -0,0 +1,62 @@ +#include "mmvec.hpp" + +#include +#include + +int main(int argc, char *argv[]) { + // N dimensional vectors + std::cout << "N dimensional (int) vectors" << std::endl; + mm::vec u {3, 2, 1, 0, 1}; + mm::vec v {1, 2, 3, 4, 5}; + + std::cout << "u = " << u << std::endl; + std::cout << "v = " << v << std::endl; + std::cout << std::endl; + + // basic operations + std::cout << "u + v = " << u + v << std::endl; + std::cout << "u - v = " << u - v << std::endl; + std::cout << "2 * v = " << 2 * v << std::endl; + std::cout << "v * 2 = " << v * 2 << std::endl; + std::cout << "u * v = " << u * v << std::endl; + std::cout << std::endl; + + u += v; + + // three dimensional vectors + std::cout << "three dimensional (double) vectors" << std::endl; + + mm::vec3 a {1, 2, 3}; + mm::vec3 b {3, 2, 1}; + + std::cout << "a = " << a << std::endl; + std::cout << "b = " << b << std::endl; + std::cout << std::endl; + + std::cout << "a x b = " << mm::vec3::cross(a, b) << std::endl; + std::cout << "zenith(a) = " << a.zenith() << std::endl; + std::cout << "azimuth(a) = " << a.azimuth() << std::endl; + std::cout << "spherical(a) = " << a.spherical() << std::endl; + std::cout << std::endl; + + a -= b; + + // two dimensional vector + std::cout << "two dimensional (complex) vectors" << std::endl; + + mm::vec2> j {{1, 2}, {3, -1}}; + mm::vec2> k { 5, {-2, 1}}; + + std::cout << "j = " << j << std::endl; + std::cout << "k = " << k << std::endl; + std::cout << std::endl; + + std::cout << "j x k = " << mm::vec2>::cross(j, k) << std::endl; + std::cout << "angle(j) = " << j.angle() << std::endl; + std::cout << "polar(j) = " << j.polar() << std::endl; + std::cout << std::endl; + + j *= 10; + + return 0; +} -- cgit v1.2.1