26 #include <mln/core/image/image1d.hh>
27 #include <mln/core/image/image2d.hh>
28 #include <mln/debug/iota.hh>
29 #include <mln/border/duplicate.hh>
30 #include <mln/value/int_u8.hh>
31 #include <mln/value/int_s8.hh>
32 #include <mln/opt/element.hh>
38 void chck1d(
int cols,
int border,
T ref[])
40 int c = cols + 2 * border;
46 for (
int i = 0; i < c; ++i)
51 void chck2d(
int rows,
int cols,
int border,
T ref[])
53 int r = rows + 2 * border;
54 int c = cols + 2 * border;
60 for (
int i = 0; i < c * r; ++i)
72 std::cerr <<
"Tests border::duplicate:" << std::endl;
75 std::cerr <<
" in 1d :" << std::endl;
78 (std::cerr <<
" on int_u8 with border = 3 ... ").flush ();
83 T ref[8] = {1, 1, 1, 1, 2, 2, 2, 2};
86 std::cerr <<
"OK" << std::endl;
90 (std::cerr <<
" on int with border = 2 ... ").flush ();
95 T ref[7] = {1, 1, 1, 2, 3, 3, 3};
98 std::cerr <<
"OK" << std::endl;
102 (std::cerr <<
" on int_s8 with border = 1 ... ").flush ();
107 T ref[4] = {1, 1, 2, 2};
109 chck1d(cols, border, ref);
110 std::cerr <<
"OK" << std::endl;
114 (std::cerr <<
" on int with border = 0 ... ").flush ();
118 T ref[4] = {1, 2, 3, 4};
120 chck1d(cols, border, ref);
121 std::cerr <<
"OK" << std::endl;
127 std::cerr <<
" in 2d :" << std::endl;
130 (std::cerr <<
" on int with border = 3 ... ").flush ();
137 1, 1, 1, 1, 2, 3, 4, 5, 5, 5, 5,
138 1, 1, 1, 1, 2, 3, 4, 5, 5, 5, 5,
139 1, 1, 1, 1, 2, 3, 4, 5, 5, 5, 5,
140 1, 1, 1, 1, 2, 3, 4, 5, 5, 5, 5,
141 6, 6, 6, 6, 7, 8, 9, 10, 10, 10, 10,
142 11, 11, 11, 11, 12, 13, 14, 15, 15, 15, 15,
143 16, 16, 16, 16, 17, 18, 19, 20, 20, 20, 20,
144 16, 16, 16, 16, 17, 18, 19, 20, 20, 20, 20,
145 16, 16, 16, 16, 17, 18, 19, 20, 20, 20, 20,
146 16, 16, 16, 16, 17, 18, 19, 20, 20, 20, 20
149 chck2d(rows, cols, border, ref);
150 std::cerr <<
"OK" << std::endl;
154 (std::cerr <<
" on int_u8 with border = 3 ... ").flush ();
161 1, 1, 1, 2, 3, 4, 5, 5, 5,
162 1, 1, 1, 2, 3, 4, 5, 5, 5,
163 1, 1, 1, 2, 3, 4, 5, 5, 5,
164 6, 6, 6, 7, 8, 9, 10, 10, 10,
165 11, 11, 11, 12, 13, 14, 15, 15, 15,
166 16, 16, 16, 17, 18, 19, 20, 20, 20,
167 16, 16, 16, 17, 18, 19, 20, 20, 20,
168 16, 16, 16, 17, 18, 19, 20, 20, 20
171 chck2d(rows, cols, border, ref);
172 std::cerr <<
"OK" << std::endl;
176 (std::cerr <<
" on int_s8 with border = 1 ... ").flush ();
185 6, 6, 7, 8, 9, 10, 10,
186 11, 11, 12, 13, 14, 15, 15,
187 16, 16, 17, 18, 19, 20, 20,
188 16, 16, 17, 18, 19, 20, 20
191 chck2d(rows, cols, border, ref);
192 std::cerr <<
"OK" << std::endl;
196 (std::cerr <<
" on int with border = 0 ... ").flush ();
209 chck2d(rows, cols, border, ref);
210 std::cerr <<
"OK" << std::endl;