28 #include <mln/core/site_set/p_vertices.hh>
29 #include <mln/core/image/graph_elt_window.hh>
30 #include <mln/core/image/graph_elt_neighborhood.hh>
31 #include <mln/core/concept/function.hh>
32 #include <mln/core/neighb.hh>
33 #include <mln/accu/shape/bbox.hh>
34 #include <mln/fun/i2v/array.hh>
35 #include <mln/util/graph.hh>
36 #include <mln/debug/draw_graph.hh>
37 #include <mln/debug/println.hh>
54 static const unsigned X = mln_max(
unsigned);
59 static unsigned expected_fwd_nb[5][3] = { { 1, X, X },
65 static unsigned expected_bkd_nb[5][3] = { { 1, X, X },
117 viota_t
iota(pv.nsites());
118 for (
unsigned i = 0; i <
iota.size(); ++i)
125 ima_t ima =
iota | pv;
132 mln_piter_(ima_t)
p(ima.domain());
136 mln_assertion(
bbox == make::
box2d(5, 5));
163 mln_piter_(ima_t) p(ima.domain());
166 mln_assertion(ima(p) == i++);
173 mln_qiter_(win_t) q(win, p);
179 mln_assertion(expected_fwd_nb[p.id()][i] == q.id());
187 mln_bkd_qiter_(win_t) q(win, p);
193 mln_assertion(expected_bkd_nb[p.id()][i] == q.id());
203 mln_niter_(neighb_t) n(neigh, p);
210 mln_assertion(expected_fwd_nb[p.id()][i] == n.id());
218 mln_bkd_niter_(neighb_t) n(neigh, p);
224 mln_assertion(expected_bkd_nb[p.id()][i] == n.id());