diff --git a/test/init_mat.cpp b/test/init_mat.cpp index d3a600a..a6cc9c4 100644 --- a/test/init_mat.cpp +++ b/test/init_mat.cpp @@ -23,8 +23,7 @@ int main() { for (size_t i = 0; i < ROWS; ++i) { for (size_t j = 0; j < COLS; ++j) { - mat_faxis_x_rmo(i, j) = mat_daxis_x_rmo(i, j) = mat_faxis_x_cmo(i, j) = - mat_daxis_x_cmo(i, j) = rng(rng_engine); + mat_faxis_x_rmo(i, j) = mat_daxis_x_rmo(i, j) = mat_faxis_x_cmo(i, j) = mat_daxis_x_cmo(i, j) = rng(rng_engine); } } @@ -63,8 +62,7 @@ int main() { for (size_t i = 0; i < COLS; ++i) { for (size_t j = 0; j < ROWS; ++j) { - mat_faxis_y_rmo(i, j) = mat_daxis_y_rmo(i, j) = mat_faxis_y_cmo(i, j) = - mat_daxis_y_cmo(i, j) = rng(rng_engine); + mat_faxis_y_rmo(i, j) = mat_daxis_y_rmo(i, j) = mat_faxis_y_cmo(i, j) = mat_daxis_y_cmo(i, j) = rng(rng_engine); } } @@ -111,8 +109,7 @@ int main() { for (size_t i = 0; i < ROWS; ++i) { for (size_t j = 0; j < COLS; ++j) { - mat_faxis_x_rmo(i, j) = mat_daxis_x_rmo(i, j) = mat_faxis_x_cmo(i, j) = - mat_daxis_x_cmo(i, j) = rng(rng_engine); + mat_faxis_x_rmo(i, j) = mat_daxis_x_rmo(i, j) = mat_faxis_x_cmo(i, j) = mat_daxis_x_cmo(i, j) = rng(rng_engine); } } @@ -151,8 +148,7 @@ int main() { for (size_t i = 0; i < COLS; ++i) { for (size_t j = 0; j < ROWS; ++j) { - mat_faxis_y_rmo(i, j) = mat_daxis_y_rmo(i, j) = mat_faxis_y_cmo(i, j) = - mat_daxis_y_cmo(i, j) = rng(rng_engine); + mat_faxis_y_rmo(i, j) = mat_daxis_y_rmo(i, j) = mat_faxis_y_cmo(i, j) = mat_daxis_y_cmo(i, j) = rng(rng_engine); } } @@ -199,8 +195,7 @@ int main() { for (size_t i = 0; i < ROWS; ++i) { for (size_t j = 0; j < COLS; ++j) { - mat_faxis_x_rmo(i, j) = mat_daxis_x_rmo(i, j) = mat_faxis_x_cmo(i, j) = - mat_daxis_x_cmo(i, j) = rng(rng_engine); + mat_faxis_x_rmo(i, j) = mat_daxis_x_rmo(i, j) = mat_faxis_x_cmo(i, j) = mat_daxis_x_cmo(i, j) = rng(rng_engine); } } @@ -239,8 +234,7 @@ int main() { for (size_t i = 0; i < COLS; ++i) { for (size_t j = 0; j < ROWS; ++j) { - mat_faxis_y_rmo(i, j) = mat_daxis_y_rmo(i, j) = mat_faxis_y_cmo(i, j) = - mat_daxis_y_cmo(i, j) = rng(rng_engine); + mat_faxis_y_rmo(i, j) = mat_daxis_y_rmo(i, j) = mat_faxis_y_cmo(i, j) = mat_daxis_y_cmo(i, j) = rng(rng_engine); } } @@ -287,8 +281,7 @@ int main() { for (size_t i = 0; i < ROWS; ++i) { for (size_t j = 0; j < COLS; ++j) { - mat_faxis_x_rmo(i, j) = mat_daxis_x_rmo(i, j) = mat_faxis_x_cmo(i, j) = - mat_daxis_x_cmo(i, j) = rng(rng_engine); + mat_faxis_x_rmo(i, j) = mat_daxis_x_rmo(i, j) = mat_faxis_x_cmo(i, j) = mat_daxis_x_cmo(i, j) = rng(rng_engine); } } @@ -327,8 +320,7 @@ int main() { for (size_t i = 0; i < COLS; ++i) { for (size_t j = 0; j < ROWS; ++j) { - mat_faxis_y_rmo(i, j) = mat_daxis_y_rmo(i, j) = mat_faxis_y_cmo(i, j) = - mat_daxis_y_cmo(i, j) = rng(rng_engine); + mat_faxis_y_rmo(i, j) = mat_daxis_y_rmo(i, j) = mat_faxis_y_cmo(i, j) = mat_daxis_y_cmo(i, j) = rng(rng_engine); } } @@ -375,8 +367,7 @@ int main() { for (size_t i = 0; i < ROWS; ++i) { for (size_t j = 0; j < COLS; ++j) { - mat_faxis_x_rmo(i, j) = mat_daxis_x_rmo(i, j) = mat_faxis_x_cmo(i, j) = - mat_daxis_x_cmo(i, j) = rng(rng_engine); + mat_faxis_x_rmo(i, j) = mat_daxis_x_rmo(i, j) = mat_faxis_x_cmo(i, j) = mat_daxis_x_cmo(i, j) = rng(rng_engine); } } @@ -415,8 +406,7 @@ int main() { for (size_t i = 0; i < COLS; ++i) { for (size_t j = 0; j < ROWS; ++j) { - mat_faxis_y_rmo(i, j) = mat_daxis_y_rmo(i, j) = mat_faxis_y_cmo(i, j) = - mat_daxis_y_cmo(i, j) = rng(rng_engine); + mat_faxis_y_rmo(i, j) = mat_daxis_y_rmo(i, j) = mat_faxis_y_cmo(i, j) = mat_daxis_y_cmo(i, j) = rng(rng_engine); } } @@ -463,8 +453,7 @@ int main() { for (size_t i = 0; i < ROWS; ++i) { for (size_t j = 0; j < COLS; ++j) { - mat_faxis_x_rmo(i, j) = mat_daxis_x_rmo(i, j) = mat_faxis_x_cmo(i, j) = - mat_daxis_x_cmo(i, j) = rng(rng_engine); + mat_faxis_x_rmo(i, j) = mat_daxis_x_rmo(i, j) = mat_faxis_x_cmo(i, j) = mat_daxis_x_cmo(i, j) = rng(rng_engine); } } @@ -503,8 +492,7 @@ int main() { for (size_t i = 0; i < COLS; ++i) { for (size_t j = 0; j < ROWS; ++j) { - mat_faxis_y_rmo(i, j) = mat_daxis_y_rmo(i, j) = mat_faxis_y_cmo(i, j) = - mat_daxis_y_cmo(i, j) = rng(rng_engine); + mat_faxis_y_rmo(i, j) = mat_daxis_y_rmo(i, j) = mat_faxis_y_cmo(i, j) = mat_daxis_y_cmo(i, j) = rng(rng_engine); } } diff --git a/test/init_vec.cpp b/test/init_vec.cpp index e7cfc2f..9492d71 100644 --- a/test/init_vec.cpp +++ b/test/init_vec.cpp @@ -158,154 +158,10 @@ int main() { std::uniform_int_distribution rng(0, std::numeric_limits::max()); constexpr static size_t ROWS = 1; - constexpr static size_t COLS = 3; - - vec, axis_t::x> vec_faxis_x; - vec vec_daxis_x(COLS); - mat, order_t::row_major> mat_faxis_x_rmo; - mat mat_daxis_x_rmo(ROWS, COLS); - mat, order_t::col_major> mat_faxis_x_cmo; - mat mat_daxis_x_cmo(ROWS, COLS); - - for (size_t i = 0; i < ROWS; ++i) { - for (size_t j = 0; j < COLS; ++j) { - vec_faxis_x(i, j) = vec_daxis_x(i, j) = mat_faxis_x_rmo(i, j) = mat_daxis_x_rmo(i, j) = mat_faxis_x_cmo(i, j) = - mat_daxis_x_cmo(i, j) = rng(rng_engine); - } - } - - assert(vec_faxis_x == vec_faxis_x); - assert(vec_faxis_x == vec_daxis_x); - assert(vec_faxis_x == mat_faxis_x_rmo); - assert(vec_faxis_x == mat_daxis_x_rmo); - assert(vec_faxis_x == mat_faxis_x_cmo); - assert(vec_faxis_x == mat_daxis_x_cmo); - - assert(vec_daxis_x == vec_daxis_x); - assert(vec_daxis_x == mat_faxis_x_rmo); - assert(vec_daxis_x == mat_daxis_x_rmo); - assert(vec_daxis_x == mat_faxis_x_cmo); - assert(vec_daxis_x == mat_daxis_x_cmo); - - assert(mat_faxis_x_rmo == mat_faxis_x_rmo); - assert(mat_faxis_x_rmo == mat_daxis_x_rmo); - assert(mat_faxis_x_rmo == mat_faxis_x_cmo); - assert(mat_faxis_x_rmo == mat_daxis_x_cmo); - - assert(mat_daxis_x_rmo == mat_daxis_x_rmo); - assert(mat_daxis_x_rmo == mat_faxis_x_cmo); - assert(mat_daxis_x_rmo == mat_daxis_x_cmo); - - assert(mat_faxis_x_cmo == mat_faxis_x_cmo); - assert(mat_faxis_x_cmo == mat_daxis_x_cmo); - - assert(mat_daxis_x_cmo == mat_daxis_x_cmo); - - assert(vec_faxis_x == vec_faxis_x); - assert(vec_daxis_x == vec_faxis_x); - assert(mat_faxis_x_rmo == vec_faxis_x); - assert(mat_daxis_x_rmo == vec_faxis_x); - assert(mat_faxis_x_cmo == vec_faxis_x); - assert(mat_daxis_x_cmo == vec_faxis_x); - - assert(vec_daxis_x == vec_daxis_x); - assert(mat_faxis_x_rmo == vec_daxis_x); - assert(mat_daxis_x_rmo == vec_daxis_x); - assert(mat_faxis_x_cmo == vec_daxis_x); - assert(mat_daxis_x_cmo == vec_daxis_x); - - assert(mat_faxis_x_rmo == mat_faxis_x_rmo); - assert(mat_daxis_x_rmo == mat_faxis_x_rmo); - assert(mat_faxis_x_cmo == mat_faxis_x_rmo); - assert(mat_daxis_x_cmo == mat_faxis_x_rmo); - - assert(mat_daxis_x_rmo == mat_daxis_x_rmo); - assert(mat_faxis_x_cmo == mat_daxis_x_rmo); - assert(mat_daxis_x_cmo == mat_daxis_x_rmo); - - assert(mat_faxis_x_cmo == mat_faxis_x_cmo); - assert(mat_daxis_x_cmo == mat_faxis_x_cmo); - - assert(mat_daxis_x_cmo == mat_daxis_x_cmo); - - vec, axis_t::y> vec_faxis_y; - vec vec_daxis_y(COLS); - mat, order_t::row_major> mat_faxis_y_rmo; - mat mat_daxis_y_rmo(COLS, ROWS); - mat, order_t::col_major> mat_faxis_y_cmo; - mat mat_daxis_y_cmo(COLS, ROWS); - - for (size_t i = 0; i < COLS; ++i) { - for (size_t j = 0; j < ROWS; ++j) { - vec_faxis_y(i, j) = vec_daxis_y(i, j) = mat_faxis_y_rmo(i, j) = mat_daxis_y_rmo(i, j) = mat_faxis_y_cmo(i, j) = - mat_daxis_y_cmo(i, j) = rng(rng_engine); - } - } - - assert(vec_faxis_y == vec_faxis_y); - assert(vec_faxis_y == vec_daxis_y); - assert(vec_faxis_y == mat_faxis_y_rmo); - assert(vec_faxis_y == mat_daxis_y_rmo); - assert(vec_faxis_y == mat_faxis_y_cmo); - assert(vec_faxis_y == mat_daxis_y_cmo); - - assert(vec_daxis_y == vec_daxis_y); - assert(vec_daxis_y == mat_faxis_y_rmo); - assert(vec_daxis_y == mat_daxis_y_rmo); - assert(vec_daxis_y == mat_faxis_y_cmo); - assert(vec_daxis_y == mat_daxis_y_cmo); - - assert(mat_faxis_y_rmo == mat_faxis_y_rmo); - assert(mat_faxis_y_rmo == mat_daxis_y_rmo); - assert(mat_faxis_y_rmo == mat_faxis_y_cmo); - assert(mat_faxis_y_rmo == mat_daxis_y_cmo); - - assert(mat_daxis_y_rmo == mat_daxis_y_rmo); - assert(mat_daxis_y_rmo == mat_faxis_y_cmo); - assert(mat_daxis_y_rmo == mat_daxis_y_cmo); - - assert(mat_faxis_y_cmo == mat_faxis_y_cmo); - assert(mat_faxis_y_cmo == mat_daxis_y_cmo); - - assert(mat_daxis_y_cmo == mat_daxis_y_cmo); - - assert(vec_faxis_y == vec_faxis_y); - assert(vec_daxis_y == vec_faxis_y); - assert(mat_faxis_y_rmo == vec_faxis_y); - assert(mat_daxis_y_rmo == vec_faxis_y); - assert(mat_faxis_y_cmo == vec_faxis_y); - assert(mat_daxis_y_cmo == vec_faxis_y); - - assert(vec_daxis_y == vec_daxis_y); - assert(mat_faxis_y_rmo == vec_daxis_y); - assert(mat_daxis_y_rmo == vec_daxis_y); - assert(mat_faxis_y_cmo == vec_daxis_y); - assert(mat_daxis_y_cmo == vec_daxis_y); - - assert(mat_faxis_y_rmo == mat_faxis_y_rmo); - assert(mat_daxis_y_rmo == mat_faxis_y_rmo); - assert(mat_faxis_y_cmo == mat_faxis_y_rmo); - assert(mat_daxis_y_cmo == mat_faxis_y_rmo); - - assert(mat_daxis_y_rmo == mat_daxis_y_rmo); - assert(mat_faxis_y_cmo == mat_daxis_y_rmo); - assert(mat_daxis_y_cmo == mat_daxis_y_rmo); - - assert(mat_faxis_y_cmo == mat_faxis_y_cmo); - assert(mat_daxis_y_cmo == mat_faxis_y_cmo); - - assert(mat_daxis_y_cmo == mat_daxis_y_cmo); - } - - { - std::mt19937 rng_engine(std::chrono::steady_clock::now().time_since_epoch().count()); - std::uniform_int_distribution rng(0, std::numeric_limits::max()); - - constexpr static size_t ROWS = 1; - constexpr static size_t COLS = 50; + constexpr static size_t COLS = 2; - vec, axis_t::x> vec_faxis_x; - vec vec_daxis_x(COLS); + vec, axis_t::x, order_t::col_major> vec_faxis_x; + vec vec_daxis_x(COLS); mat, order_t::row_major> mat_faxis_x_rmo; mat mat_daxis_x_rmo(ROWS, COLS); mat, order_t::col_major> mat_faxis_x_cmo; @@ -372,8 +228,8 @@ int main() { assert(mat_daxis_x_cmo == mat_daxis_x_cmo); - vec, axis_t::y> vec_faxis_y; - vec vec_daxis_y(COLS); + vec, axis_t::y, order_t::col_major> vec_faxis_y; + vec vec_daxis_y(COLS); mat, order_t::row_major> mat_faxis_y_rmo; mat mat_daxis_y_rmo(COLS, ROWS); mat, order_t::col_major> mat_faxis_y_cmo; diff --git a/test/lvl0.cpp b/test/lvl0.cpp new file mode 100644 index 0000000..0b552ec --- /dev/null +++ b/test/lvl0.cpp @@ -0,0 +1,47 @@ +#include +#include +#include "../include/cyfre.hpp" + +int main() { + constexpr size_t SIZE = 16; + cyfre::vec, cyfre::axis_t::x> vec1; + cyfre::vec, cyfre::axis_t::y> vec2; + cyfre::vec vec3(SIZE); + cyfre::vec vec4(SIZE); + + cyfre::vec, cyfre::axis_t::x> vec5; + cyfre::vec, cyfre::axis_t::y> vec6; + cyfre::vec vec7(SIZE); + cyfre::vec vec8(SIZE); + + for (size_t i = 0; i < SIZE; ++i) { + vec1[i] = vec2[i] = vec3[i] = vec4[i] = i + 1; + } + + assert(vec1 == vec1); + assert(!(vec1 == vec2)); + assert(vec1 == vec3); + assert(!(vec1 == vec4)); + + assert(vec2 == vec2); + assert(!(vec2 == vec3)); + assert(vec2 == vec4); + + assert(vec3 == vec3); + assert(!(vec3 == vec4)); + + assert(vec1 == vec1); + assert(!(vec2 == vec1)); + assert(vec3 == vec1); + assert(!(vec4 == vec1)); + + assert(vec2 == vec2); + assert(!(vec3 == vec2)); + assert(vec4 == vec2); + + assert(vec3 == vec3); + assert(!(vec4 == vec3)); + + std::cout << "\nTests : PASSED - BLAS level 0\n"; + return 0; +} \ No newline at end of file diff --git a/test/type_assertions.cpp b/test/type_assertions.cpp index 87293a6..1428b23 100644 --- a/test/type_assertions.cpp +++ b/test/type_assertions.cpp @@ -1,5 +1,6 @@ #include #include +#include #include "../include/cyfre.hpp" @@ -125,6 +126,9 @@ int main() { // problem with protected members if not accessed inside the mat class. static_assert(concepts::matrices, "MatrixType6 - test"); + static_assert(concepts::matrices>>, "Matrix Test - test 1"); + static_assert(concepts::matrices>, "Matrix Test - test 2"); + std::cout << "Tests : PASSED - Type Assertions\n"; return 0; } \ No newline at end of file