26 #include <mln/core/image/edge_image.hh>
27 #include <mln/core/image/vertex_image.hh>
29 #include <mln/core/image/graph_elt_window_if.hh>
31 #include <mln/make/dummy_p_vertices.hh>
32 #include <mln/make/p_vertices_with_mass_centers.hh>
33 #include <mln/make/dummy_p_edges.hh>
34 #include <mln/make/p_edges_with_mass_centers.hh>
36 #include <mln/data/fill.hh>
38 #include <mln/util/graph.hh>
39 #include <mln/util/site_pair.hh>
73 static const unsigned result[] = { 3, 3, 5, 1, 5, 1, 5, 3 };
83 typedef mln_ch_value_(v_ima_t,
bool) v_mask_t;
85 mln_piter_(v_mask_t) vm(v_mask.domain());
87 v_mask(vm) = vm.
id()%2;
89 mln_piter_(v_ima_t) v(v_ima.domain());
92 mln_qiter_(win_t) q(win, v);
97 mln_assertion(result[i++] == q.id());
98 mln_assertion(q.id()%2);
112 typedef mln_ch_value_(e_ima_t,
bool) e_mask_t;
114 mln_piter_(e_mask_t) em(e_mask.domain());
116 e_mask(em) = em.
id()%2;
119 mln_piter_(e_ima_t) e(e_ima.domain());
122 mln_qiter_(win_t) q(win, e);
125 mln_assertion(q.
id()%2);
144 typedef mln_ch_value_(v_ima_t,
bool) v_mask_t;
146 mln_piter_(v_mask_t) vm(v_mask.domain());
148 v_mask(vm) = vm.
id()%2;
150 mln_piter_(e_ima_t) e(e_ima.domain());
153 mln_qiter_(win_t) q(win, e);
156 mln_assertion(v_mask(q.v1()) || v_mask(q.v2()));
162 static const unsigned result[] = { 4, 4, 5, 1, 2, 3 };
176 mln_piter_(e_mask_t) em(e_mask.domain());
178 e_mask(em) = em.
id()%2;
180 mln_piter_(v_ima_t) v(v_ima.domain());
183 mln_qiter_(win_t) q(win, v);
188 mln_assertion(result[i++] == q.id());
189 mln_assertion(e_mask(v.edge_with(q).id()));