diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt index 9b36a2be37e9eeee47e162ed8e8f4830d0c77738..2b806c92cdb591b9eb58f149ed015468537b604d 100644 --- a/test/CMakeLists.txt +++ b/test/CMakeLists.txt @@ -190,6 +190,10 @@ target_link_libraries(gtest_odom_2D ${PROJECT_NAME}) wolf_add_gtest(gtest_processor_odom_3D gtest_processor_odom_3D.cpp) target_link_libraries(gtest_processor_odom_3D ${PROJECT_NAME}) +# yaml conversions +wolf_add_gtest(gtest_yaml_conversions gtest_yaml_conversions.cpp) +target_link_libraries(gtest_yaml_conversions ${PROJECT_NAME}) + # ------- Now Core classes Serialization ---------- add_subdirectory(serialization) diff --git a/demos/demo_yaml_conversions.cpp b/test/gtest_yaml_conversions.cpp similarity index 55% rename from demos/demo_yaml_conversions.cpp rename to test/gtest_yaml_conversions.cpp index b8e1f41f9c0f8b6ae50e65c4fec943dbb1305a7d..3fce436c95600377d547d01a375a2c204c059588 100644 --- a/demos/demo_yaml_conversions.cpp +++ b/test/gtest_yaml_conversions.cpp @@ -5,19 +5,23 @@ * \author: jsola */ +#include "core/common/wolf.h" +#include "core/utils/utils_gtest.h" #include "core/yaml/yaml_conversion.h" - #include <yaml-cpp/yaml.h> - #include <eigen3/Eigen/Dense> - #include <iostream> //#include <fstream> -int main() -{ +using namespace Eigen; +using namespace wolf; - using namespace Eigen; +TEST(MapYaml, save_2D) +{ + MatrixXs M23(2,3); + MatrixXs M33(3,3); + M23 << 1, 2, 3, 4, 5, 6; + M33 << 1, 2, 3, 4, 5, 6, 7, 8, 9; std::cout << "\nTrying different yaml specs for matrix..." << std::endl; @@ -29,26 +33,37 @@ int main() mat_23 = YAML::Load("[1, 2, 3, 4, 5, 6]"); // insensitive to spacing mat_33 = YAML::Load("[1, 2, 3, 4, 5, 6, 7, 8, 9]"); // insensitive to spacing - MatrixXd Mx = mat_sized_23.as<MatrixXd>(); + MatrixXs Mx = mat_sized_23.as<MatrixXs>(); std::cout << "Dyn-Dyn [[2,3] ,[1, 2, 3, 4, 5, 6] ] = \n" << Mx << std::endl; + ASSERT_MATRIX_APPROX(Mx, M23, 1e-12); - Matrix<double, 2, Dynamic> M2D = mat_sized_23.as<Matrix<double, 2, Dynamic>>(); + Matrix<Scalar, 2, Dynamic> M2D = mat_sized_23.as<Matrix<Scalar, 2, Dynamic>>(); std::cout << "2-Dyn [[2,3] ,[1, 2, 3, 4, 5, 6] ] = \n" << M2D << std::endl; + ASSERT_MATRIX_APPROX(M2D, M23, 1e-12); - Matrix<double, Dynamic, 3> MD3 = mat_sized_23.as<Matrix<double, Dynamic, 3>>(); + Matrix<Scalar, Dynamic, 3> MD3 = mat_sized_23.as<Matrix<Scalar, Dynamic, 3>>(); std::cout << "Dyn-3 [[2,3] ,[1, 2, 3, 4, 5, 6] ] = \n" << MD3 << std::endl; + ASSERT_MATRIX_APPROX(MD3, M23, 1e-12); - Matrix3d M3 = mat_sized_33.as<Matrix3d>(); + Matrix3s M3 = mat_sized_33.as<Matrix3s>(); std::cout << "3-3 [[3,3] ,[1, 2, 3, 4, 5, 6, 7, 8, 9] ] = \n" << M3 << std::endl; + ASSERT_MATRIX_APPROX(M3, M33, 1e-12); - M2D = mat_23.as<Matrix<double, 2, Dynamic>>(); + M2D = mat_23.as<Matrix<Scalar, 2, Dynamic>>(); std::cout << "2-Dyn [1, 2, 3, 4, 5, 6] = \n" << M2D << std::endl; + ASSERT_MATRIX_APPROX(M2D, M23, 1e-12); - MD3 = mat_23.as<Matrix<double, Dynamic, 3>>(); + MD3 = mat_23.as<Matrix<Scalar, Dynamic, 3>>(); std::cout << "Dyn-3 [1, 2, 3, 4, 5, 6] = \n" << MD3 << std::endl; + ASSERT_MATRIX_APPROX(MD3, M23, 1e-12); - M3 = mat_33.as<Matrix3d>(); + M3 = mat_33.as<Matrix3s>(); std::cout << "3-3 [1, 2, 3, 4, 5, 6, 7, 8, 9] = \n" << M3 << std::endl; + ASSERT_MATRIX_APPROX(M3, M33, 1e-12); +} - return 0; +int main(int argc, char **argv) +{ + testing::InitGoogleTest(&argc, argv); + return RUN_ALL_TESTS(); }