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/core/var.hh>
34 #include <mln/accu/shape/bbox.hh>
35 #include <mln/fun/i2v/array.hh>
36 #include <mln/util/graph.hh>
37 #include <mln/debug/draw_graph.hh>
38 #include <mln/debug/println.hh>
55 static const unsigned X = mln_max(
unsigned);
60 static unsigned expected_fwd_nb[5][3] = { { 1, X, X },
66 static unsigned expected_bkd_nb[5][3] = { { 1, X, X },
82 typedef fun::i2v::array<point2d> fsite_t;
117 typedef fun::i2v::array<unsigned> viota_t;
118 viota_t
iota(pv.nsites());
119 for (
unsigned i = 0; i <
iota.size(); ++i)
123 mln_const_VAR(ima, (iota | pv));
130 mln_piter_(ima_t) p(ima.domain());
133 box2d bbox = a.to_result();
134 mln_assertion(bbox == make::
box2d(5, 5));
152 debug::draw_graph(ima_rep, pv, 1, 9);
153 debug::println(ima_rep);
161 mln_piter_(ima_t) p(ima.domain());
164 mln_assertion(ima(p) == i++);
171 mln_qiter_(win_t) q(win, p);
177 mln_assertion(expected_fwd_nb[p.id()][i] == q.id());
185 mln_bkd_qiter_(win_t) q(win, p);
191 mln_assertion(expected_bkd_nb[p.id()][i] == q.id());
201 mln_niter_(neighb_t) n(neigh, p);
208 mln_assertion(expected_fwd_nb[p.id()][i] == n.id());
216 mln_bkd_niter_(neighb_t) n(neigh, p);
222 mln_assertion(expected_bkd_nb[p.id()][i] == n.id());