26 #include <mln/core/image/image1d.hh>
27 #include <mln/core/image/image2d.hh>
28 #include <mln/debug/iota.hh>
29 #include <mln/border/mirror.hh>
30 #include <mln/value/int_u8.hh>
31 #include <mln/value/int_s8.hh>
32 #include <mln/opt/element.hh>
39 void chck1d (
int cols,
int border,
T ref[])
41 int c = cols + 2 * border;
43 image1d<T> ima(cols, border);
47 for (
int i = 0; i < c; ++i)
52 void chck2d (
int rows,
int cols,
int border,
T ref[])
54 int r = rows + 2 * border;
55 int c = cols + 2 * border;
57 image2d<T> ima(rows, cols, border);
61 for (
int i = 0; i < c * r; ++i)
74 std::cerr <<
"Tests border::mirror:" << std::endl;
77 std::cerr <<
" in 1d :" << std::endl;
80 (std::cerr <<
" on int_u8 with border = 3 ... ").flush ();
85 T ref[8] = {2, 2, 1, 1, 2, 2, 1, 1};
88 std::cerr <<
"OK" << std::endl;
92 (std::cerr <<
" on int with border = 2 ... ").flush ();
97 T ref[7] = {2, 1, 1, 2, 3, 3, 2};
100 std::cerr <<
"OK" << std::endl;
104 (std::cerr <<
" on int_s8 with border = 1 ... ").flush ();
109 T ref[4] = {1, 1, 2, 2};
111 chck1d(cols, border, ref);
112 std::cerr <<
"OK" << std::endl;
116 (std::cerr <<
" on int with border = 0 ... ").flush ();
120 T ref[4] = {1, 2, 3, 4};
122 chck1d(cols, border, ref);
123 std::cerr <<
"OK" << std::endl;
129 std::cerr <<
" in 2d :" << std::endl;
132 (std::cerr <<
" on int with border = 3 ... ").flush ();
139 1, 1, 1, 11, 12, 13, 14, 15, 5, 5, 5,
140 1, 1, 1, 6, 7, 8, 9, 10, 5, 5, 5,
141 1, 1, 1, 1, 2, 3, 4, 5, 5, 5, 5,
142 3, 2, 1, 1, 2, 3, 4, 5, 5, 4, 3,
143 8, 7, 6, 6, 7, 8, 9, 10, 10, 9, 8,
144 13, 12, 11, 11, 12, 13, 14, 15, 15, 14, 13,
145 18, 17, 16, 16, 17, 18, 19, 20, 20, 19, 18,
146 16, 16, 16, 16, 17, 18, 19, 20, 20, 20, 20,
147 16, 16, 16, 11, 12, 13, 14, 15, 20, 20, 20,
148 16, 16, 16, 6, 7, 8, 9, 10, 20, 20, 20
151 chck2d(rows, cols, border, ref);
152 std::cerr <<
"OK" << std::endl;
156 (std::cerr <<
" on int_u8 with border = 3 ... ").flush ();
163 1, 1, 6, 7, 8, 9, 10, 5, 5,
164 1, 1, 1, 2, 3, 4, 5, 5, 5,
165 2, 1, 1, 2, 3, 4, 5, 5, 4,
166 7, 6, 6, 7, 8, 9, 10, 10, 9,
167 12, 11, 11, 12, 13, 14, 15, 15, 14,
168 17, 16, 16, 17, 18, 19, 20, 20, 19,
169 16, 16, 16, 17, 18, 19, 20, 20, 20,
170 16, 16, 11, 12, 13, 14, 15, 20, 20
173 chck2d(rows, cols, border, ref);
174 std::cerr <<
"OK" << std::endl;
178 (std::cerr <<
" on int_s8 with border = 1 ... ").flush ();
187 6, 6, 7, 8, 9, 10, 10,
188 11, 11, 12, 13, 14, 15, 15,
189 16, 16, 17, 18, 19, 20, 20,
190 16, 16, 17, 18, 19, 20, 20
193 chck2d(rows, cols, border, ref);
194 std::cerr <<
"OK" << std::endl;
198 (std::cerr <<
" on int with border = 0 ... ").flush ();
211 chck2d(rows, cols, border, ref);
212 std::cerr <<
"OK" << std::endl;