diff options
author | Murray Cumming <murrayc@murrayc.com> | 2016-03-11 11:08:49 +0100 |
---|---|---|
committer | Murray Cumming <murrayc@murrayc.com> | 2016-03-11 11:26:08 +0100 |
commit | 2b8916b93c3d661b6b03c11557bcc1949067b8e5 (patch) | |
tree | 01bac6c15e3434d5bf3969fb6391f8a084656ac0 | |
parent | 931d2265e85d808cc8a454184443b78726b1c83c (diff) | |
download | sigc++-2b8916b93c3d661b6b03c11557bcc1949067b8e5.tar.gz |
test_accumulated(): Restructure this.
To make it clearer and to keep the small tests more self-contained and
separate.
-rw-r--r-- | tests/test_accumulated.cc | 48 |
1 files changed, 34 insertions, 14 deletions
diff --git a/tests/test_accumulated.cc b/tests/test_accumulated.cc index 6fad26c..f5090ca 100644 --- a/tests/test_accumulated.cc +++ b/tests/test_accumulated.cc @@ -15,6 +15,8 @@ namespace { + +TestUtilities* util = nullptr; std::ostringstream result_stream; struct arithmetic_mean_accumulator @@ -69,33 +71,27 @@ struct A : public sigc::trackable } }; -} // end anonymous namespace - -int main(int argc, char* argv[]) +void test_empty_signal() { - auto util = TestUtilities::get_instance(); - - if (!util->check_command_args(argc, argv)) - return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE; - - sigc::signal<int,int>::accumulated<arithmetic_mean_accumulator> sig; - sigc::signal<int,int>::accumulated<vector_accumulator<int> > sig_vec; + sigc::signal<int,int>::accumulated<arithmetic_mean_accumulator> sig; + sigc::signal<int,int>::accumulated<vector_accumulator<int> > sig_vec; result_stream << "Result (empty slot list): " << sig(0); util->check_result(result_stream, "Result (empty slot list): -1"); result_stream << "Vector result (empty slot list): " << (sig_vec(0).empty() ? "empty" : "not empty"); util->check_result(result_stream, "Vector result (empty slot list): empty"); +} + +void test_mean() +{ + sigc::signal<int,int>::accumulated<arithmetic_mean_accumulator> sig; A a; sig.connect(sigc::ptr_fun1(&foo)); sig.connect(sigc::mem_fun1(a, &A::foo)); sig.connect(sigc::ptr_fun1(&bar)); - sig_vec.connect(sigc::ptr_fun1(&foo)); - sig_vec.connect(sigc::mem_fun1(a, &A::foo)); - sig_vec.connect(sigc::ptr_fun1(&bar)); - double dres = sig(1); result_stream << "Mean accumulator: Result (i=1): " << std::fixed << std::setprecision(3) << dres; @@ -107,7 +103,17 @@ int main(int argc, char* argv[]) << std::fixed << std::setprecision(3) << dres; util->check_result(result_stream, "foo: 34, A::foo: 206, bar: 52, Mean accumulator: Plain Result (i=11): 97.333"); +} +void test_vector_accumulator() +{ + sigc::signal<int,int>::accumulated<vector_accumulator<int> > sig_vec; + + A a; + sig_vec.connect(sigc::ptr_fun(&foo)); + sig_vec.connect(sigc::mem_fun(a, &A::foo)); + sig_vec.connect(sigc::ptr_fun(&bar)); + auto res1 = sig_vec(1); result_stream << "Vector accumulator: Result (i=1): "; for (auto num : res1) @@ -121,6 +127,20 @@ int main(int argc, char* argv[]) result_stream << num << " "; util->check_result(result_stream, "foo: 10, A::foo: 46, bar: 12, Vector accumulator: Result (i=3): 10 46 12 "); +} + +} // end anonymous namespace + +int main(int argc, char* argv[]) +{ + util = TestUtilities::get_instance(); + + if (!util->check_command_args(argc, argv)) + return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE; + + test_empty_signal(); + test_mean(); + test_vector_accumulator(); return util->get_result_and_delete_instance() ? EXIT_SUCCESS : EXIT_FAILURE; } |