Testing functional API only (oss/rotgen#17)
Co-authored-by: Jules Pénuchot <jules@penuchot.com> See merge request oss/rotgen!42
This commit is contained in:
parent
6fa95fb22d
commit
4a7aa08cdb
11 changed files with 192 additions and 192 deletions
|
|
@ -5,61 +5,68 @@
|
|||
SPDX-License-Identifier: BSL-1.0
|
||||
*/
|
||||
//==================================================================================================
|
||||
#include "unit/tests.hpp"
|
||||
#include <rotgen/rotgen.hpp>
|
||||
|
||||
#include "unit/tests.hpp"
|
||||
|
||||
TTS_CASE_TPL("rowwise API", rotgen::tests::types)<typename T, typename O>(
|
||||
tts::type<tts::types<T, O>>)
|
||||
{
|
||||
using e_t = Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic, O::value>;
|
||||
e_t ref = e_t::Random(4, 4);
|
||||
auto ref_rw = ref.rowwise();
|
||||
using eigen_mat_t =
|
||||
Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic, O::value>;
|
||||
eigen_mat_t eigen_ref = eigen_mat_t::Random(4, 4);
|
||||
auto eigen_ref_rw = eigen_ref.rowwise();
|
||||
|
||||
rotgen::matrix<T, rotgen::Dynamic, rotgen::Dynamic, O::value> mat(4, 4);
|
||||
rotgen::tests::prepare([&](auto r, auto c) { return ref(r, c); }, mat);
|
||||
rotgen::matrix<T, rotgen::Dynamic, rotgen::Dynamic, O::value> rotgen_mat(4,
|
||||
4);
|
||||
rotgen::tests::prepare([&](auto r, auto c) { return eigen_ref(r, c); },
|
||||
rotgen_mat);
|
||||
|
||||
auto rw = rotgen::rowwise(mat);
|
||||
auto rotgen_rw = rotgen::rowwise(rotgen_mat);
|
||||
|
||||
for (rotgen::Index i = 0; i < mat.rows(); ++i)
|
||||
TTS_EQUAL(rw.sum()(i), ref_rw.sum()(i));
|
||||
for (rotgen::Index i = 0; i < mat.rows(); ++i)
|
||||
TTS_EQUAL(rw.mean()(i), ref_rw.mean()(i));
|
||||
for (rotgen::Index i = 0; i < mat.rows(); ++i)
|
||||
TTS_EQUAL(rw.prod()(i), ref_rw.prod()(i));
|
||||
for (rotgen::Index i = 0; i < mat.rows(); ++i)
|
||||
TTS_EQUAL(rw.maxCoeff()(i), ref_rw.maxCoeff()(i));
|
||||
for (rotgen::Index i = 0; i < mat.rows(); ++i)
|
||||
TTS_EQUAL(rw.minCoeff()(i), ref_rw.minCoeff()(i));
|
||||
for (rotgen::Index i = 0; i < mat.rows(); ++i)
|
||||
TTS_EQUAL(rw.squaredNorm()(i), ref_rw.squaredNorm()(i));
|
||||
for (rotgen::Index i = 0; i < mat.rows(); ++i)
|
||||
TTS_EQUAL(rw.norm()(i), ref_rw.norm()(i));
|
||||
for (rotgen::Index i = 0; i < rotgen_mat.rows(); ++i)
|
||||
TTS_EQUAL(rotgen::sum(rotgen_rw)(i), eigen_ref_rw.sum()(i));
|
||||
for (rotgen::Index i = 0; i < rotgen_mat.rows(); ++i)
|
||||
TTS_EQUAL(rotgen::mean(rotgen_rw)(i), eigen_ref_rw.mean()(i));
|
||||
for (rotgen::Index i = 0; i < rotgen_mat.rows(); ++i)
|
||||
TTS_EQUAL(rotgen::prod(rotgen_rw)(i), eigen_ref_rw.prod()(i));
|
||||
for (rotgen::Index i = 0; i < rotgen_mat.rows(); ++i)
|
||||
TTS_EQUAL(rotgen::maxCoeff(rotgen_rw)(i), eigen_ref_rw.maxCoeff()(i));
|
||||
for (rotgen::Index i = 0; i < rotgen_mat.rows(); ++i)
|
||||
TTS_EQUAL(rotgen::minCoeff(rotgen_rw)(i), eigen_ref_rw.minCoeff()(i));
|
||||
for (rotgen::Index i = 0; i < rotgen_mat.rows(); ++i)
|
||||
TTS_EQUAL(rotgen::squaredNorm(rotgen_rw)(i), eigen_ref_rw.squaredNorm()(i));
|
||||
for (rotgen::Index i = 0; i < rotgen_mat.rows(); ++i)
|
||||
TTS_EQUAL(rotgen::norm(rotgen_rw)(i), eigen_ref_rw.norm()(i));
|
||||
};
|
||||
|
||||
TTS_CASE_TPL("colwise API", rotgen::tests::types)<typename T, typename O>(
|
||||
tts::type<tts::types<T, O>>)
|
||||
{
|
||||
using e_t = Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic, O::value>;
|
||||
e_t ref = e_t::Random(4, 4);
|
||||
auto ref_rw = ref.colwise();
|
||||
using eigen_mat_t =
|
||||
Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic, O::value>;
|
||||
eigen_mat_t eigen_ref = eigen_mat_t::Random(4, 4);
|
||||
auto eigen_ref_rw = eigen_ref.colwise();
|
||||
|
||||
rotgen::matrix<T, rotgen::Dynamic, rotgen::Dynamic, O::value> mat(4, 4);
|
||||
rotgen::tests::prepare([&](auto r, auto c) { return ref(r, c); }, mat);
|
||||
rotgen::matrix<T, rotgen::Dynamic, rotgen::Dynamic, O::value> rotgen_mat(4,
|
||||
4);
|
||||
rotgen::tests::prepare([&](auto r, auto c) { return eigen_ref(r, c); },
|
||||
rotgen_mat);
|
||||
|
||||
auto rw = rotgen::colwise(mat);
|
||||
auto rotgen_rw = rotgen::colwise(rotgen_mat);
|
||||
|
||||
for (rotgen::Index i = 0; i < mat.cols(); ++i)
|
||||
TTS_EQUAL(rw.sum()(i), ref_rw.sum()(i));
|
||||
for (rotgen::Index i = 0; i < mat.cols(); ++i)
|
||||
TTS_EQUAL(rw.mean()(i), ref_rw.mean()(i));
|
||||
for (rotgen::Index i = 0; i < mat.cols(); ++i)
|
||||
TTS_EQUAL(rw.prod()(i), ref_rw.prod()(i));
|
||||
for (rotgen::Index i = 0; i < mat.cols(); ++i)
|
||||
TTS_EQUAL(rw.maxCoeff()(i), ref_rw.maxCoeff()(i));
|
||||
for (rotgen::Index i = 0; i < mat.cols(); ++i)
|
||||
TTS_EQUAL(rw.minCoeff()(i), ref_rw.minCoeff()(i));
|
||||
for (rotgen::Index i = 0; i < mat.cols(); ++i)
|
||||
TTS_EQUAL(rw.squaredNorm()(i), ref_rw.squaredNorm()(i));
|
||||
for (rotgen::Index i = 0; i < mat.cols(); ++i)
|
||||
TTS_EQUAL(rw.norm()(i), ref_rw.norm()(i));
|
||||
for (rotgen::Index i = 0; i < rotgen_mat.cols(); ++i)
|
||||
TTS_EQUAL(rotgen::sum(rotgen_rw)(i), eigen_ref_rw.sum()(i));
|
||||
for (rotgen::Index i = 0; i < rotgen_mat.cols(); ++i)
|
||||
TTS_EQUAL(rotgen::mean(rotgen_rw)(i), eigen_ref_rw.mean()(i));
|
||||
for (rotgen::Index i = 0; i < rotgen_mat.cols(); ++i)
|
||||
TTS_EQUAL(rotgen::prod(rotgen_rw)(i), eigen_ref_rw.prod()(i));
|
||||
for (rotgen::Index i = 0; i < rotgen_mat.cols(); ++i)
|
||||
TTS_EQUAL(rotgen::maxCoeff(rotgen_rw)(i), eigen_ref_rw.maxCoeff()(i));
|
||||
for (rotgen::Index i = 0; i < rotgen_mat.cols(); ++i)
|
||||
TTS_EQUAL(rotgen::minCoeff(rotgen_rw)(i), eigen_ref_rw.minCoeff()(i));
|
||||
for (rotgen::Index i = 0; i < rotgen_mat.cols(); ++i)
|
||||
TTS_EQUAL(rotgen::squaredNorm(rotgen_rw)(i), eigen_ref_rw.squaredNorm()(i));
|
||||
for (rotgen::Index i = 0; i < rotgen_mat.cols(); ++i)
|
||||
TTS_EQUAL(rotgen::norm(rotgen_rw)(i), eigen_ref_rw.norm()(i));
|
||||
};
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue