15
15
16
16
namespace
17
17
{
18
+
19
+ TestUtilities* util = nullptr ;
18
20
std::ostringstream result_stream;
19
21
20
22
struct arithmetic_mean_accumulator
@@ -69,33 +71,27 @@ struct A : public sigc::trackable
69
71
}
70
72
};
71
73
72
- } // end anonymous namespace
73
-
74
- int main (int argc, char * argv[])
74
+ void test_empty_signal ()
75
75
{
76
- auto util = TestUtilities::get_instance ();
77
-
78
- if (!util->check_command_args (argc, argv))
79
- return util->get_result_and_delete_instance () ? EXIT_SUCCESS : EXIT_FAILURE;
80
-
81
- sigc::signal<int ,int >::accumulated<arithmetic_mean_accumulator> sig;
82
- sigc::signal<int ,int >::accumulated<vector_accumulator<int > > sig_vec;
76
+ sigc::signal<int ,int >::accumulated<arithmetic_mean_accumulator> sig;
77
+ sigc::signal<int ,int >::accumulated<vector_accumulator<int > > sig_vec;
83
78
84
79
result_stream << " Result (empty slot list): " << sig (0 );
85
80
util->check_result (result_stream, " Result (empty slot list): -1" );
86
81
result_stream << " Vector result (empty slot list): "
87
82
<< (sig_vec (0 ).empty () ? " empty" : " not empty" );
88
83
util->check_result (result_stream, " Vector result (empty slot list): empty" );
84
+ }
85
+
86
+ void test_mean ()
87
+ {
88
+ sigc::signal<int ,int >::accumulated<arithmetic_mean_accumulator> sig;
89
89
90
90
A a;
91
91
sig.connect (sigc::ptr_fun1 (&foo));
92
92
sig.connect (sigc::mem_fun1 (a, &A::foo));
93
93
sig.connect (sigc::ptr_fun1 (&bar));
94
94
95
- sig_vec.connect (sigc::ptr_fun1 (&foo));
96
- sig_vec.connect (sigc::mem_fun1 (a, &A::foo));
97
- sig_vec.connect (sigc::ptr_fun1 (&bar));
98
-
99
95
double dres = sig (1 );
100
96
result_stream << " Mean accumulator: Result (i=1): "
101
97
<< std::fixed << std::setprecision (3 ) << dres;
@@ -107,7 +103,17 @@ int main(int argc, char* argv[])
107
103
<< std::fixed << std::setprecision (3 ) << dres;
108
104
util->check_result (result_stream,
109
105
" foo: 34, A::foo: 206, bar: 52, Mean accumulator: Plain Result (i=11): 97.333" );
106
+ }
110
107
108
+ void test_vector_accumulator ()
109
+ {
110
+ sigc::signal<int ,int >::accumulated<vector_accumulator<int > > sig_vec;
111
+
112
+ A a;
113
+ sig_vec.connect (sigc::ptr_fun (&foo));
114
+ sig_vec.connect (sigc::mem_fun (a, &A::foo));
115
+ sig_vec.connect (sigc::ptr_fun (&bar));
116
+
111
117
auto res1 = sig_vec (1 );
112
118
result_stream << " Vector accumulator: Result (i=1): " ;
113
119
for (auto num : res1)
@@ -121,6 +127,20 @@ int main(int argc, char* argv[])
121
127
result_stream << num << " " ;
122
128
util->check_result (result_stream,
123
129
" foo: 10, A::foo: 46, bar: 12, Vector accumulator: Result (i=3): 10 46 12 " );
130
+ }
131
+
132
+ } // end anonymous namespace
133
+
134
+ int main (int argc, char * argv[])
135
+ {
136
+ util = TestUtilities::get_instance ();
137
+
138
+ if (!util->check_command_args (argc, argv))
139
+ return util->get_result_and_delete_instance () ? EXIT_SUCCESS : EXIT_FAILURE;
140
+
141
+ test_empty_signal ();
142
+ test_mean ();
143
+ test_vector_accumulator ();
124
144
125
145
return util->get_result_and_delete_instance () ? EXIT_SUCCESS : EXIT_FAILURE;
126
146
}
0 commit comments