123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596 |
- #include "ceres/minimizer.h"
- #include "ceres/iteration_callback.h"
- #include "ceres/solver.h"
- #include "gtest/gtest.h"
- namespace ceres::internal {
- class FakeIterationCallback : public IterationCallback {
- public:
- CallbackReturnType operator()(const IterationSummary& summary) final {
- return SOLVER_CONTINUE;
- }
- };
- TEST(Minimizer, InitializationCopiesCallbacks) {
- FakeIterationCallback callback0;
- FakeIterationCallback callback1;
- Solver::Options solver_options;
- solver_options.callbacks.push_back(&callback0);
- solver_options.callbacks.push_back(&callback1);
- Minimizer::Options minimizer_options(solver_options);
- ASSERT_EQ(2, minimizer_options.callbacks.size());
- EXPECT_EQ(minimizer_options.callbacks[0], &callback0);
- EXPECT_EQ(minimizer_options.callbacks[1], &callback1);
- }
- class AbortingIterationCallback : public IterationCallback {
- public:
- CallbackReturnType operator()(const IterationSummary& summary) final {
- return SOLVER_ABORT;
- }
- };
- TEST(Minimizer, UserAbortUpdatesSummaryMessage) {
- AbortingIterationCallback callback;
- Solver::Options solver_options;
- solver_options.callbacks.push_back(&callback);
- Minimizer::Options minimizer_options(solver_options);
- Solver::Summary summary;
- Minimizer::RunCallbacks(minimizer_options, IterationSummary(), &summary);
- EXPECT_EQ(summary.message, "User callback returned SOLVER_ABORT.");
- }
- class SucceedingIterationCallback : public IterationCallback {
- public:
- CallbackReturnType operator()(const IterationSummary& summary) final {
- return SOLVER_TERMINATE_SUCCESSFULLY;
- }
- };
- TEST(Minimizer, UserSuccessUpdatesSummaryMessage) {
- SucceedingIterationCallback callback;
- Solver::Options solver_options;
- solver_options.callbacks.push_back(&callback);
- Minimizer::Options minimizer_options(solver_options);
- Solver::Summary summary;
- Minimizer::RunCallbacks(minimizer_options, IterationSummary(), &summary);
- EXPECT_EQ(summary.message,
- "User callback returned SOLVER_TERMINATE_SUCCESSFULLY.");
- }
- }
|