123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- #include "ceres/evaluator_test_utils.h"
- #include "ceres/internal/eigen.h"
- #include "gtest/gtest.h"
- namespace ceres::internal {
- void CompareEvaluations(int expected_num_rows,
- int expected_num_cols,
- double expected_cost,
- const double* expected_residuals,
- const double* expected_gradient,
- const double* expected_jacobian,
- const double actual_cost,
- const double* actual_residuals,
- const double* actual_gradient,
- const double* actual_jacobian) {
- EXPECT_EQ(expected_cost, actual_cost);
- if (expected_residuals != nullptr) {
- ConstVectorRef expected_residuals_vector(expected_residuals,
- expected_num_rows);
- ConstVectorRef actual_residuals_vector(actual_residuals, expected_num_rows);
- EXPECT_TRUE(
- (actual_residuals_vector.array() == expected_residuals_vector.array())
- .all())
- << "Actual:\n"
- << actual_residuals_vector << "\nExpected:\n"
- << expected_residuals_vector;
- }
- if (expected_gradient != nullptr) {
- ConstVectorRef expected_gradient_vector(expected_gradient,
- expected_num_cols);
- ConstVectorRef actual_gradient_vector(actual_gradient, expected_num_cols);
- EXPECT_TRUE(
- (actual_gradient_vector.array() == expected_gradient_vector.array())
- .all())
- << "Actual:\n"
- << actual_gradient_vector.transpose() << "\nExpected:\n"
- << expected_gradient_vector.transpose();
- }
- if (expected_jacobian != nullptr) {
- ConstMatrixRef expected_jacobian_matrix(
- expected_jacobian, expected_num_rows, expected_num_cols);
- ConstMatrixRef actual_jacobian_matrix(
- actual_jacobian, expected_num_rows, expected_num_cols);
- EXPECT_TRUE(
- (actual_jacobian_matrix.array() == expected_jacobian_matrix.array())
- .all())
- << "Actual:\n"
- << actual_jacobian_matrix << "\nExpected:\n"
- << expected_jacobian_matrix;
- }
- }
- }
|