aboutsummaryrefslogtreecommitdiff
path: root/internal/ceres/minimizer_test.cc
diff options
context:
space:
mode:
Diffstat (limited to 'internal/ceres/minimizer_test.cc')
-rw-r--r--internal/ceres/minimizer_test.cc39
1 files changed, 38 insertions, 1 deletions
diff --git a/internal/ceres/minimizer_test.cc b/internal/ceres/minimizer_test.cc
index 1058036..0d8b617 100644
--- a/internal/ceres/minimizer_test.cc
+++ b/internal/ceres/minimizer_test.cc
@@ -44,7 +44,7 @@ class FakeIterationCallback : public IterationCallback {
}
};
-TEST(MinimizerTest, InitializationCopiesCallbacks) {
+TEST(Minimizer, InitializationCopiesCallbacks) {
FakeIterationCallback callback0;
FakeIterationCallback callback1;
@@ -59,5 +59,42 @@ TEST(MinimizerTest, InitializationCopiesCallbacks) {
EXPECT_EQ(minimizer_options.callbacks[1], &callback1);
}
+class AbortingIterationCallback : public IterationCallback {
+ public:
+ virtual ~AbortingIterationCallback() {}
+ virtual CallbackReturnType operator()(const IterationSummary& summary) {
+ 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:
+ virtual ~SucceedingIterationCallback() {}
+ virtual CallbackReturnType operator()(const IterationSummary& summary) {
+ 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.");
+}
+
} // namespace internal
} // namespace ceres