URL: https://svn.lrde.epita.fr/svn/oln/trunk/milena/sandbox
ChangeLog:
2008-12-12 Matthieu Garrigues <garrigues(a)lrde.epita.fr>
Add reconstruction on function.
* canvas/reconstruction_on_function.hh: New, this canvas is able to
compute a reconstruction by dilation or by erosion on a function.
* reconstructions_on_function.hh: Using this canvas to implement
reconstructions on function.
* reconstructions_on_function.cc: New, a test.
* canvas/reconstruction.hh: Rename as...
* canvas/reconstruction_on_set.hh: ...this.
* reconstructions.cc: Rename as...
* reconstructions_on_set.cc: ...this.
* reconstructions.hh: Rename...
* reconstructions_on_set.hh: ...this.
---
canvas/reconstruction_on_function.hh | 174 +++++++++++++++++++++++++++
canvas/reconstruction_on_set.hh | 147 +++++++++++++++++++++++
reconstructions_on_function.cc | 63 ++++++++++
reconstructions_on_function.hh | 184 +++++++++++++++++++++++++++++
reconstructions_on_set.cc | 57 +++++++++
reconstructions_on_set.hh | 220 +++++++++++++++++++++++++++++++++++
6 files changed, 845 insertions(+)
Index: trunk/milena/sandbox/garrigues/union_find/reconstructions.hh (deleted)
===================================================================
Index: trunk/milena/sandbox/garrigues/union_find/reconstructions.cc (deleted)
===================================================================
Index: trunk/milena/sandbox/garrigues/union_find/reconstructions_on_set.cc
===================================================================
--- trunk/milena/sandbox/garrigues/union_find/reconstructions_on_set.cc (revision 0)
+++ trunk/milena/sandbox/garrigues/union_find/reconstructions_on_set.cc (revision 3034)
@@ -0,0 +1,57 @@
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
+// (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+# include "reconstructions_on_set.hh"
+# include <mln/core/alias/neighb2d.hh>
+# include <mln/core/image/image2d.hh>
+# include <mln/io/pbm/load.hh>
+# include <mln/io/pbm/save.hh>
+
+int main(int argc, char** argv)
+{
+ using namespace mln;
+ typedef image2d<bool> I;
+
+ image2d<bool> marker;
+ image2d<bool> mask;
+ image2d<bool> output;
+
+ if (argc < 2)
+ {
+ std::cerr << "Usage: " << argv[0] << " marker.pbm mask.pbm" << std::endl;
+ return 1;
+ }
+
+ io::pbm::load(marker, argv[1]);
+ io::pbm::load(mask, argv[2]);
+
+ io::pbm::save(reconstruction_on_set_by_dilation (marker, mask, c4()), "r1.pbm");
+ io::pbm::save(reconstruction_on_set_by_dilation_alt(marker, mask, c4()), "r2.pbm");
+ io::pbm::save(reconstruction_on_set_by_erosion (marker, mask, c4()), "r3.pbm");
+ io::pbm::save(reconstruction_on_set_by_erosion_alt (marker, mask, c4()), "r4.pbm");
+}
Index: trunk/milena/sandbox/garrigues/union_find/reconstructions_on_function.hh
===================================================================
--- trunk/milena/sandbox/garrigues/union_find/reconstructions_on_function.hh (revision 0)
+++ trunk/milena/sandbox/garrigues/union_find/reconstructions_on_function.hh (revision 3034)
@@ -0,0 +1,184 @@
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
+// (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#ifndef MLN_RECONSTRUCTIONS_ON_FUNCTION_HH
+# define MLN_RECONSTRUCTIONS_ON_FUNCTION_HH
+
+# include <mln/core/image/image2d.hh>
+# include <mln/core/alias/neighb2d.hh>
+# include <mln/level/fill.hh>
+# include <mln/level/compare.hh>
+# include <mln/level/paste.hh>
+# include <mln/level/sort_psites.hh>
+# include <mln/literal/zero.hh>
+# include <mln/math/max.hh>
+# include <mln/math/min.hh>
+
+# include "canvas/reconstruction_on_function.hh"
+
+namespace mln
+{
+
+ namespace impl
+ {
+
+ template <typename I_, typename J_>
+ struct reconstruction_on_function_by_dilation_t
+ {
+ typedef I_ I;
+ typedef J_ J;
+ typedef mln_site(I) P;
+ typedef p_array<mln_psite(I)> S;
+
+ reconstruction_on_function_by_dilation_t (const I& marker, const J& mask, mln_concrete(I)& output)
+ : marker(marker),
+ mask(mask),
+ output(output),
+ s(level::sort_psites_decreasing(marker))
+ {
+ }
+
+ bool is_active(const P& p) { return mask(p) >= output(p); }
+ void set_default_output() { level::fill(output, literal::zero); }
+ void init(const P& p) { output(p) = marker(p); }
+ void merge(const P& r, const P& p) { output(p) = math::max(output(p), output(r)); }
+ void visit_ext_border(const P& n, const P& p) { (void) n; (void) p; }
+
+ void set_output_value(const P& p)
+ {
+ if (!is_active(p))
+ output(p) = mask(p);
+ }
+
+ const I& marker; // F
+ const J& mask; // G
+ mln_concrete(I)& output; // O
+ S s;
+ };
+
+
+ template <typename I_, typename J_>
+ struct reconstruction_on_function_by_erosion_t
+ {
+ typedef I_ I;
+ typedef J_ J;
+ typedef mln_site(I) P;
+ typedef p_array<mln_psite(I)> S;
+
+ reconstruction_on_function_by_erosion_t (const I& marker, const J& mask, mln_concrete(I)& output)
+ : marker(marker),
+ mask(mask),
+ output(output),
+ s(level::sort_psites_increasing(marker))
+ {
+ }
+
+ bool is_active(const P& p) { return mask(p) <= output(p); }
+ void set_default_output() { level::fill(output, literal::zero); }
+ void init(const P& p) { output(p) = marker(p); }
+ void merge(const P& r, const P& p) { output(p) = math::min(output(p), output(r)); }
+ void visit_ext_border(const P& n, const P& p) { (void) n; (void) p; }
+
+ void set_output_value(const P& p)
+ {
+ if (!is_active(p))
+ output(p) = mask(p);
+ }
+
+ const I& marker; // F
+ const J& mask; // G
+ mln_concrete(I)& output; // O
+ S s;
+ };
+
+
+ } // end of namespace mln::impl.
+
+ template <typename I, typename J, typename N>
+ mln_concrete(I)
+ reconstruction_on_function_by_dilation(const Image<I>& marker_,
+ const Image<J>& mask_,
+ const Neighborhood<N>& nbh_)
+ {
+ trace::entering("morpho::reconstruction_on_function_by_dilation");
+
+ const I& marker = exact(marker_);
+ const J& mask = exact(mask_);
+ const N& nbh = exact(nbh_);
+
+ mln_precondition(marker.has_data());
+ mln_precondition(mask.has_data());
+ mln_precondition(mask.domain() == marker.domain());
+
+ mln_concrete(I) output;
+ initialize(output, marker);
+
+ typedef impl::reconstruction_on_function_by_dilation_t<I, J> F;
+ F f(marker, mask, output);
+ canvas::morpho::reconstruction_on_function(nbh, f);
+
+ mln_precondition(marker <= output && output <= mask);
+
+ trace::exiting("morpho::reconstruction_on_function_by_dilation");
+ return output;
+ }
+
+
+ template <typename I, typename J, typename N>
+ mln_concrete(I)
+ reconstruction_on_function_by_erosion(const Image<I>& marker_,
+ const Image<J>& mask_,
+ const Neighborhood<N>& nbh_)
+ {
+ trace::entering("morpho::reconstruction_on_function_by_dilation");
+
+ const I& marker = exact(marker_);
+ const J& mask = exact(mask_);
+ const N& nbh = exact(nbh_);
+
+ mln_precondition(marker.has_data());
+ mln_precondition(mask.has_data());
+ mln_precondition(mask.domain() == marker.domain());
+
+ mln_concrete(I) output;
+ initialize(output, marker);
+
+ typedef impl::reconstruction_on_function_by_erosion_t<I, J> F;
+ F f(marker, mask, output);
+ canvas::morpho::reconstruction_on_function(nbh, f);
+
+ mln_precondition(marker >= output && output >= mask);
+
+ trace::exiting("morpho::reconstruction_on_function_by_dilation");
+ return output;
+ }
+
+} // end of namespace mln.
+
+
+#endif // ! MLN_RECONSTRUCTIONS_ON_FUNCTION_HH
Index: trunk/milena/sandbox/garrigues/union_find/reconstructions_on_function.cc
===================================================================
--- trunk/milena/sandbox/garrigues/union_find/reconstructions_on_function.cc (revision 0)
+++ trunk/milena/sandbox/garrigues/union_find/reconstructions_on_function.cc (revision 3034)
@@ -0,0 +1,63 @@
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
+// (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+# include "reconstructions_on_function.hh"
+# include <mln/core/alias/neighb2d.hh>
+# include <mln/core/image/image2d.hh>
+# include <mln/value/int_u8.hh>
+# include <mln/io/pgm/load.hh>
+# include <mln/io/pgm/save.hh>
+
+void usage(char** argv)
+{
+ std::cerr << "Usage: " << argv[0] << " (-dilation|-erosion) marker.pgm mask.pgm" << std::endl;
+ exit(1);
+}
+
+int main(int argc, char** argv)
+{
+ using namespace mln;
+
+ if (argc < 2)
+ usage(argv);
+
+ typedef image2d<value::int_u8> I;
+ I marker;
+ I mask;
+ I output;
+
+ io::pgm::load(marker, argv[2]);
+ io::pgm::load(mask, argv[3]);
+
+ if (std::string(argv[1]) == "-dilation")
+ io::pgm::save(reconstruction_on_function_by_dilation(marker, mask, c4()), "r_dilation.pgm");
+ else if (std::string(argv[1]) == "-erosion")
+ io::pgm::save(reconstruction_on_function_by_erosion (marker, mask, c4()), "r_erosion.pgm");
+ else
+ usage(argv);
+}
Index: trunk/milena/sandbox/garrigues/union_find/reconstructions_on_set.hh
===================================================================
--- trunk/milena/sandbox/garrigues/union_find/reconstructions_on_set.hh (revision 0)
+++ trunk/milena/sandbox/garrigues/union_find/reconstructions_on_set.hh (revision 3034)
@@ -0,0 +1,220 @@
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
+// (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#ifndef MLN_RECONSTRUCTIONS_ON_SET_HH
+# define MLN_RECONSTRUCTIONS_ON_SET_HH
+
+# include <mln/core/image/image2d.hh>
+# include <mln/core/alias/neighb2d.hh>
+# include <mln/level/fill.hh>
+# include <mln/level/paste.hh>
+
+# include "canvas/reconstruction_on_set.hh"
+
+namespace mln
+{
+
+ namespace impl
+ {
+
+ struct reconstruction_on_set_by_dilation_t
+ {
+ typedef image2d<bool> I;
+ typedef mln_site_(I) P;
+
+ reconstruction_on_set_by_dilation_t (const I& marker, const I& mask, I& output)
+ : marker(marker), mask(mask), output(output)
+ {}
+
+ bool is_in_D(P p) { return mask(p); }
+ void set_default_output() { level::fill(output, false); }
+ void init(P p) { output(p) = marker(p); }
+ void merge(P r, P p) { output(p) = output(p) || output(r); }
+ void visit_ext_border(P n, P p) { (void) n; (void) p; }
+
+ const I& marker; // F
+ const I& mask; // G
+ I& output; // O
+ };
+
+
+ struct reconstruction_on_set_by_dilation_alt_t
+ {
+ typedef image2d<bool> I;
+ typedef mln_site_(I) P;
+
+ reconstruction_on_set_by_dilation_alt_t (const I& marker, const I& mask, I& output)
+ : marker(marker), mask(mask), output(output)
+ {}
+
+ bool is_in_D(P p) { return mask(p) && !marker(p); }
+ void set_default_output() { level::paste(marker, output); }
+ void init(P p) { output(p) = false; }
+ void merge(P r, P p) { output(p) = output(p) || output(r); }
+ void visit_ext_border(P n, P p) { if (marker(n)) output(p) = true; }
+
+ const I& marker; // F
+ const I& mask; // G
+ I& output; // O
+ };
+
+
+ struct reconstruction_on_set_by_erosion_t
+ {
+ typedef image2d<bool> I;
+ typedef mln_site_(I) P;
+
+ reconstruction_on_set_by_erosion_t (const I& marker, const I& mask, I& output)
+ : marker(marker), mask(mask), output(output)
+ {}
+
+ bool is_in_D(P p) { return !mask(p); }
+ void set_default_output() { level::fill(output, true); }
+ void init(P p) { output(p) = marker(p); }
+ void merge(P r, P p) { output(p) = output(p) && output(r); }
+ void visit_ext_border(P n, P p) { (void) n; (void) p; }
+
+ const I& marker; // F
+ const I& mask; // G
+ I& output; // O
+ };
+
+ struct reconstruction_on_set_by_erosion_alt_t
+ {
+ typedef image2d<bool> I;
+ typedef mln_site_(I) P;
+
+ reconstruction_on_set_by_erosion_alt_t (const I& marker, const I& mask, I& output)
+ : marker(marker), mask(mask), output(output)
+ {}
+
+ bool is_in_D(P p) { return !mask(p) && marker(p); }
+ void set_default_output() { level::paste(mask, output); }
+ void init(P p) { output(p) = true; }
+ void merge(P r, P p) { output(p) = output(p) && output(r); }
+ void visit_ext_border(P n, P p) { if (!marker(n)) output(p) = false; }
+
+ const I& marker; // F
+ const I& mask; // G
+ I& output; // O
+ };
+
+ } // end of namespace mln::impl
+
+
+ image2d<bool>
+ reconstruction_on_set_by_dilation(const image2d<bool>& marker,
+ const image2d<bool>& mask,
+ const neighb2d& nbh)
+ {
+ trace::entering("morpho::reconstruction_on_set_by_dilation");
+
+ mln_precondition(exact(marker).has_data());
+ mln_precondition(exact(mask).has_data());
+
+ image2d<bool> output;
+ initialize(output, marker);
+
+ typedef impl::reconstruction_on_set_by_dilation_t F;
+ F f(marker, mask, output);
+ canvas::morpho::reconstruction_on_set(nbh, f);
+
+ trace::exiting("morpho::reconstruction_on_set_by_dilation");
+ return output;
+ }
+
+
+ image2d<bool>
+ reconstruction_on_set_by_dilation_alt(const image2d<bool>& marker,
+ const image2d<bool>& mask,
+ const neighb2d& nbh)
+ {
+ trace::entering("morpho::reconstruction_on_set_by_dilation_alt");
+
+ mln_precondition(exact(marker).has_data());
+ mln_precondition(exact(mask).has_data());
+
+ image2d<bool> output;
+ initialize(output, marker);
+
+ typedef impl::reconstruction_on_set_by_dilation_alt_t F;
+ F f(marker, mask, output);
+ canvas::morpho::reconstruction_on_set(nbh, f);
+
+ trace::exiting("morpho::reconstruction_on_set_by_dilation_alt");
+ return output;
+ }
+
+
+ image2d<bool>
+ reconstruction_on_set_by_erosion(const image2d<bool>& marker,
+ const image2d<bool>& mask,
+ const neighb2d& nbh)
+ {
+ trace::entering("morpho::reconstruction_on_set_by_erosion");
+
+ mln_precondition(exact(marker).has_data());
+ mln_precondition(exact(mask).has_data());
+
+ image2d<bool> output;
+ initialize(output, marker);
+
+ typedef impl::reconstruction_on_set_by_erosion_t F;
+ F f(marker, mask, output);
+ canvas::morpho::reconstruction_on_set(nbh, f);
+
+ trace::exiting("morpho::reconstruction_on_set_by_erosion");
+ return output;
+ }
+
+
+ image2d<bool>
+ reconstruction_on_set_by_erosion_alt(const image2d<bool>& marker,
+ const image2d<bool>& mask,
+ const neighb2d& nbh)
+ {
+ trace::entering("morpho::reconstruction_on_set_by_erosion_alt");
+
+ mln_precondition(exact(marker).has_data());
+ mln_precondition(exact(mask).has_data());
+
+ image2d<bool> output;
+ initialize(output, marker);
+
+ typedef impl::reconstruction_on_set_by_erosion_alt_t F;
+ F f(marker, mask, output);
+ canvas::morpho::reconstruction_on_set(nbh, f);
+
+ trace::exiting("morpho::reconstruction_on_set_by_erosion_alt");
+ return output;
+ }
+
+} // end of namespace mln.
+
+
+#endif // ! MLN_RECONSTRUCTIONS_ON_SET_HH
Index: trunk/milena/sandbox/garrigues/union_find/canvas/reconstruction.hh (deleted)
===================================================================
Index: trunk/milena/sandbox/garrigues/union_find/canvas/reconstruction_on_function.hh
===================================================================
--- trunk/milena/sandbox/garrigues/union_find/canvas/reconstruction_on_function.hh (revision 0)
+++ trunk/milena/sandbox/garrigues/union_find/canvas/reconstruction_on_function.hh (revision 3034)
@@ -0,0 +1,174 @@
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
+// (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#ifndef MLN_RECONSTRUCTION_ON_FUNCTION_HH
+# define MLN_RECONSTRUCTION_ON_FUNCTION_HH
+
+# include <mln/core/image/image2d.hh>
+# include <mln/level/fill.hh>
+# include <mln/literal/zero.hh>
+# include <mln/convert/to_upper_window.hh>
+# include <mln/accu/count.hh>
+# include <mln/util/pix.hh>
+
+# include <mln/core/alias/neighb2d.hh>
+
+# include <mln/io/pbm/save.hh>
+# include <mln/io/pbm/load.hh>
+
+namespace mln
+{
+
+
+ namespace canvas
+ {
+
+ namespace morpho
+ {
+
+ template <typename I>
+ static inline
+ mln_psite(I)
+ find_root(I& parent,
+ const mln_psite(I)& x)
+ {
+ if (parent(x) == x)
+ return x;
+ else
+ return parent(x) = find_root(parent, parent(x));
+ }
+
+ template <typename N, typename F>
+ inline
+ void
+ reconstruction_on_function_tests(const Neighborhood<N>& nbh_,
+ F& f)
+ {
+ // Static tests.
+
+ // Types of f required.
+ typedef typename F::I I;
+ typedef Image<I> I_;
+ typedef typename F::S S;
+
+ // Attributs of f required.
+ (void) f.s;
+ (void) f.mask;
+ (void) f.marker;
+ (void) f.output;
+
+
+ // Method of F required
+ typedef mln_site(I) P;
+
+ void (F::*m1)() = & F::set_default_output;
+ m1 = 0;
+ bool (F::*m2)(const P&) = & F::is_active;
+ m2 = 0;
+ void (F::*m3)(const P&) = & F::init;
+ m3 = 0;
+ void (F::*m4)(const P&, const P&) = & F::merge;
+ m4 = 0;
+
+ // Dynamic tests.
+ mln_precondition(f.mask.domain() == f.output.domain());
+ mln_precondition(f.mask.domain() == f.marker.domain());
+ }
+
+ template <typename N, typename F>
+ void
+ reconstruction_on_function(const Neighborhood<N>& nbh_,
+ F& f)
+ {
+ trace::entering("canvas::morpho::reconstruction_on_function");
+
+ // Tests.
+ reconstruction_on_function_tests(nbh_, f);
+
+ const N& nbh = exact(nbh_);
+
+ // Local type.
+ typedef typename F::I I;
+ typedef typename F::S S;
+ typedef mln_site(I) P;
+
+ // Auxiliary data.
+ mln_ch_value(I, bool) deja_vu;
+ mln_ch_value(I, P) parent;
+
+ // init
+ {
+ initialize(deja_vu, f.mask);
+ initialize(parent, f.mask);
+
+ mln::level::fill(deja_vu, false);
+ f.set_default_output();
+ }
+
+ // first pass
+ {
+ mln_fwd_piter(S) p(f.s);
+ mln_niter(N) n(nbh, p);
+ for_all(p)
+ {
+ // Make set.
+ parent(p) = p;
+ f.init(p);
+
+ for_all(n) if (f.mask.domain().has(n) && deja_vu(n))
+ {
+ //do_union(n, p);
+ P r = find_root(parent, n);
+ if (r != p && f.is_active(r))
+ {
+ f.merge(r, p);
+ parent(r) = p;
+ }
+ }
+ deja_vu(p) = true;
+ }
+ }
+
+ // second pass
+ {
+ mln_bkd_piter(S) p(f.s);
+ for_all(p)
+ f.set_output_value(p);
+ }
+
+ trace::exiting("canvas::morpho::reconstruction_on_function");
+ }
+
+
+ } // end of namespace mln::canvas::morpho
+
+ } // end of namespace mln::canvas
+
+} // end of namespace mln.
+
+#endif // ! MLN_RECONSTRUCTION_ON_FUNCTION_HH
Index: trunk/milena/sandbox/garrigues/union_find/canvas/reconstruction_on_set.hh
===================================================================
--- trunk/milena/sandbox/garrigues/union_find/canvas/reconstruction_on_set.hh (revision 0)
+++ trunk/milena/sandbox/garrigues/union_find/canvas/reconstruction_on_set.hh (revision 3034)
@@ -0,0 +1,147 @@
+// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
+// (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#ifndef MLN_RECONSTRUCTION_ON_SET_HH
+# define MLN_RECONSTRUCTION_ON_SET_HH
+
+# include <mln/core/image/image2d.hh>
+# include <mln/level/fill.hh>
+# include <mln/literal/zero.hh>
+# include <mln/convert/to_upper_window.hh>
+# include <mln/accu/count.hh>
+# include <mln/util/pix.hh>
+
+# include <mln/core/alias/neighb2d.hh>
+
+# include <mln/io/pbm/save.hh>
+# include <mln/io/pbm/load.hh>
+
+namespace mln
+{
+
+
+ namespace canvas
+ {
+
+ namespace morpho
+ {
+
+ template <typename I>
+ static inline
+ mln_psite(I)
+ find_root(I& parent,
+ const mln_psite(I)& x)
+ {
+ if (parent(x) == x)
+ return x;
+ else
+ return parent(x) = find_root(parent, parent(x));
+ }
+
+ template <typename N, typename F>
+ void
+ reconstruction_on_set(const Neighborhood<N>& nbh_,
+ F& f)
+ {
+ trace::entering("canvas::morpho::reconstruction_on_set");
+
+ const N& nbh = exact(nbh_);
+
+ mln_precondition(f.mask.domain() == f.output.domain());
+
+ // Local type.
+ typedef typename F::P P;
+ typedef typename F::I I;
+
+ // Auxiliary data.
+ mln_ch_value(I, bool) deja_vu;
+ mln_ch_value(I, P) parent;
+
+ // init
+ {
+ initialize(deja_vu, f.mask);
+ initialize(parent, f.mask);
+
+ mln::level::fill(deja_vu, false);
+ f.set_default_output(); // Client initialization.
+ }
+
+ // first pass
+ {
+ mln_fwd_piter(I) p(f.mask.domain());
+ mln_niter(N) n(nbh, p);
+ for_all(p)
+ {
+ if (f.is_in_D(p))
+ {
+ // Make set.
+ parent(p) = p;
+ f.init(p);
+
+ for_all(n) if (f.mask.domain().has(n))
+ {
+ if (deja_vu(n) && f.is_in_D(n))
+ {
+ //do_union(n, p);
+ P r = find_root(parent, n);
+ if (r != p)
+ {
+ f.merge(r, p);
+ parent(r) = p;
+ }
+ }
+ else
+ // Visit boundaries of D.
+ f.visit_ext_border(n, p);
+ }
+ deja_vu(p) = true;
+ }
+
+ }
+ }
+
+ // second pass
+ {
+ mln_bkd_piter(I) p(f.mask.domain());
+ for_all(p)
+ if (f.is_in_D(p))
+ if (parent(p) != p) // if p is not a root.
+ f.output(p) = f.output(parent(p));
+ }
+
+ trace::exiting("canvas::morpho::reconstruction_on_set");
+ }
+
+
+ } // end of namespace mln::canvas::morpho
+
+ } // end of namespace mln::canvas
+
+} // end of namespace mln.
+
+#endif // ! MLN_RECONSTRUCTION_ON_SET_HH
https://svn.lrde.epita.fr/svn/oln/trunk/milena
Index: ChangeLog
from Ugo Jardonnet <jardonnet(a)lrde.epita.fr>
Strengthen unit_test. Beautify file generation.
* tests/unit_test/build_unit_test.sh: Check for no header guard.
Beautify file writing.
* tests/unit_test/Makefile.am: Regenerate.
* tests/unit_test/mln_core_contract.cc,
* tests/unit_test/mln_win_all.cc,
* tests/unit_test/mln_canvas_distance_geodesic.cc,
* tests/unit_test/mln_accu_transform_snake.cc,
* tests/unit_test/mln_win_backdiag2d.cc,
* tests/unit_test/mln_geom_complex_geometry.cc,
* tests/unit_test/mln_core_alias_w_window2d_float.cc,
* tests/unit_test/mln_set_get.cc,
* tests/unit_test/mln_value_builtin_all.cc,
* tests/unit_test/mln_core_internal_coord_impl.cc,
* tests/unit_test/mln_registration_multiscale.cc,
* tests/unit_test/mln_display_all.cc,
* tests/unit_test/mln_metal_is_a.cc,
* tests/unit_test/mln_topo_adj_lower_higher_face_iter.cc,
* tests/unit_test/mln_util_graph.cc,
* tests/unit_test/mln_accu_v.cc,
* tests/unit_test/mln_canvas_chamfer.cc,
* tests/unit_test/mln_algebra_h_vec.cc,
* tests/unit_test/mln_trait_op_predec.cc,
* tests/unit_test/mln_win_segment1d.cc,
* tests/unit_test/mln_core_clock_neighb2d.cc,
* tests/unit_test/mln_core_concept_value_iterator.cc,
* tests/unit_test/mln_core_concept_meta_accumulator.cc,
* tests/unit_test/mln_trait_solve_unary.cc,
* tests/unit_test/mln_morpho_opening_area_on_vertices.cc,
* tests/unit_test/mln_core_routine_clone.cc,
* tests/unit_test/mln_core_site_set_p_key.cc,
* tests/unit_test/mln_fun_vv2v_lxor.cc,
* tests/unit_test/mln_trait_op_uminus.cc,
* tests/unit_test/mln_core_site_set_p_if.cc,
* tests/unit_test/mln_core_dpsites_piter.cc,
* tests/unit_test/mln_pw_image.cc,
* tests/unit_test/mln_trait_promote.cc,
* tests/unit_test/mln_util_greater_psite.cc,
* tests/unit_test/mln_make_w_window3d_int.cc,
* tests/unit_test/mln_border_resize.cc,
* tests/unit_test/mln_accu_sum.cc,
* tests/unit_test/mln_arith_all.cc,
* tests/unit_test/mln_fun_x2x_essential.cc,
* tests/unit_test/mln_level_naive_essential.cc,
* tests/unit_test/mln_topo_internal_complex_relative_iterator_sequence.cc,
* tests/unit_test/mln_geom_min_sli.cc,
* tests/unit_test/mln_accu_volume.cc,
* tests/unit_test/mln_value_float01.cc,
* tests/unit_test/mln_value_gl16.cc,
* tests/unit_test/mln_labeling_foreground.cc,
* tests/unit_test/mln_metal_ands.cc,
* tests/unit_test/mln_fun_v2v_abs.cc,
* tests/unit_test/mln_core_concept_weighted_window.cc,
* tests/unit_test/mln_set_sym_diff.cc,
* tests/unit_test/mln_core_alias_w_window1d_int.cc,
* tests/unit_test/mln_trait_image_from_grid.cc,
* tests/unit_test/mln_debug_all.cc,
* tests/unit_test/mln_arith_essential.cc,
* tests/unit_test/mln_topo_adj_higher_dim_connected_n_face_iter.cc,
* tests/unit_test/mln_registration_essential.cc,
* tests/unit_test/mln_convert_to.cc,
* tests/unit_test/mln_fun_v2v_rgb_to_hsi.cc,
* tests/unit_test/mln_border_essential.cc,
* tests/unit_test/mln_trait_op_neq.cc,
* tests/unit_test/mln_labeling_regional_minima.cc,
* tests/unit_test/mln_estim_essential.cc,
* tests/unit_test/mln_trace_entering.cc,
* tests/unit_test/mln_metal_equal.cc,
* tests/unit_test/mln_algebra_vec.cc,
* tests/unit_test/mln_fun_p2v_iota.cc,
* tests/unit_test/mln_level_fast_median.cc,
* tests/unit_test/mln_core_concept_doc_iterator.cc,
* tests/unit_test/mln_win_multiple_size.cc,
* tests/unit_test/mln_topo_internal_complex_relative_iterator_base.cc,
* tests/unit_test/mln_metal_bexpr.cc,
* tests/unit_test/mln_fun_p2p_mirror.cc,
* tests/unit_test/mln_fun_vv2v_all.cc,
* tests/unit_test/mln_geom_seeds2tiling.cc,
* tests/unit_test/mln_core_internal_site_set_impl.cc,
* tests/unit_test/mln_core_routine_essential.cc,
* tests/unit_test/mln_labeling_all.cc,
* tests/unit_test/mln_level_approx_essential.cc,
* tests/unit_test/mln_io_pnm_save_header.cc,
* tests/unit_test/mln_value_internal_convert.cc,
* tests/unit_test/mln_canvas_labeling.cc,
* tests/unit_test/mln_value_builtin_essential.cc,
* tests/unit_test/mln_morpho_closing_height.cc,
* tests/unit_test/mln_util_array.cc,
* tests/unit_test/mln_value_aliases.cc,
* tests/unit_test/mln_essential_3d.cc,
* tests/unit_test/mln_value_hsi.cc,
* tests/unit_test/mln_accu_take.cc,
* tests/unit_test/mln_metal_goes_to.cc,
* tests/unit_test/mln_subsampling_gaussian_subsampling.cc,
* tests/unit_test/mln_core_site_set_attic_p_complex_faces_piter.cc,
* tests/unit_test/mln_draw_all.cc,
* tests/unit_test/mln_trait_window_print.cc,
* tests/unit_test/mln_core_internal_force_exact.cc,
* tests/unit_test/mln_value_set.cc,
* tests/unit_test/mln_util_lazy_set.cc,
* tests/unit_test/mln_morpho_elementary_erosion.cc,
* tests/unit_test/mln_core_site_set_p_if_piter.cc,
* tests/unit_test/mln_core_internal_image_primary.cc,
* tests/unit_test/mln_core_alias_complex_image.cc,
* tests/unit_test/mln_core_site_set_p_run.cc,
* tests/unit_test/mln_trait_op_lor.cc,
* tests/unit_test/mln_registration_get_rot.cc,
* tests/unit_test/mln_core_concept_doc_value_iterator.cc,
* tests/unit_test/mln_core_def_low_quant_nbits.cc,
* tests/unit_test/mln_make_graph.cc,
* tests/unit_test/mln_core_internal_piter_adaptor.cc,
* tests/unit_test/mln_util_line_graph.cc,
* tests/unit_test/mln_topo_algebraic_n_face.cc,
* tests/unit_test/mln_core_w_window.cc,
* tests/unit_test/mln_win_diag2d.cc,
* tests/unit_test/mln_core_image_complex_neighborhood_piter.cc,
* tests/unit_test/mln_value_concept_built_in.cc,
* tests/unit_test/mln_core_concept_point.cc,
* tests/unit_test/mln_core_internal_fixme.cc,
* tests/unit_test/mln_metal_bool.cc,
* tests/unit_test/mln_level_compare.cc,
* tests/unit_test/mln_core_window.cc,
* tests/unit_test/mln_value_concept_data.cc,
* tests/unit_test/mln_metal_math_max.cc,
* tests/unit_test/mln_core_internal_pseudo_site_base.cc,
* tests/unit_test/mln_pw_value.cc,
* tests/unit_test/mln_value_internal_integer.cc,
* tests/unit_test/mln_trait_value_quant.cc,
* tests/unit_test/mln_topo_face_data.cc,
* tests/unit_test/mln_fun_vv2v_land_not.cc,
* tests/unit_test/mln_trait_op_greater.cc,
* tests/unit_test/mln_util_yes.cc,
* tests/unit_test/mln_io_pbm_all.cc,
* tests/unit_test/mln_win_disk2d.cc,
* tests/unit_test/mln_core_routine_primary.cc,
* tests/unit_test/mln_math_round.cc,
* tests/unit_test/mln_metal_array.cc,
* tests/unit_test/mln_io_pfm_all.cc,
* tests/unit_test/mln_core_image_essential.cc,
* tests/unit_test/mln_literal_origin.cc,
* tests/unit_test/mln_win_essential.cc,
* tests/unit_test/mln_core_site_set_p_set_of.cc,
* tests/unit_test/mln_fun_v2b_essential.cc,
* tests/unit_test/mln_registration_get_rtransf.cc,
* tests/unit_test/mln_io_pnm_all.cc,
* tests/unit_test/mln_core_concept_doc_point_iterator.cc,
* tests/unit_test/mln_value_concept_structured.cc,
* tests/unit_test/mln_core_concept_pixel_iterator.cc,
* tests/unit_test/mln_util_tree_fast_to_image.cc,
* tests/unit_test/mln_level_saturate.cc,
* tests/unit_test/mln_fun_p2b_chess.cc,
* tests/unit_test/mln_core_grids.cc,
* tests/unit_test/mln_win_vline2d.cc,
* tests/unit_test/mln_fun_x2v_linear.cc,
* tests/unit_test/mln_geom_ninds.cc,
* tests/unit_test/mln_core_image_complex_image.cc,
* tests/unit_test/mln_core_image_sub_image_if.cc,
* tests/unit_test/mln_accu_bbox.cc,
* tests/unit_test/mln_accu_median_alt.cc,
* tests/unit_test/mln_morpho_line_gradient.cc,
* tests/unit_test/mln_topo_essential.cc,
* tests/unit_test/mln_core_image_complex_neighborhoods.cc,
* tests/unit_test/mln_transform_distance_front.cc,
* tests/unit_test/mln_transform_internal_all.cc,
* tests/unit_test/mln_test_positive.cc,
* tests/unit_test/mln_binarization_binarization.cc,
* tests/unit_test/mln_morpho_elementary_gradient_internal.cc,
* tests/unit_test/mln_core_site_set_p_array.cc,
* tests/unit_test/mln_fun_i2v_array.cc,
* tests/unit_test/mln_trait_op_less.cc,
* tests/unit_test/mln_win_rectangle2d.cc,
* tests/unit_test/mln_fun_x2x_rotation.cc,
* tests/unit_test/mln_core_site_set_p_image.cc,
* tests/unit_test/mln_metal_const.cc,
* tests/unit_test/mln_estim_all.cc,
* tests/unit_test/mln_core_internal_image_domain_morpher.cc,
* tests/unit_test/mln_core_concept_value_set.cc,
* tests/unit_test/mln_fun_internal_array_base.cc,
* tests/unit_test/mln_histo_data.cc,
* tests/unit_test/mln_fun_i2v_essential.cc,
* tests/unit_test/mln_core_site_set_p_centered.cc,
* tests/unit_test/mln_make_image.cc,
* tests/unit_test/mln_value_internal_essential.cc,
* tests/unit_test/mln_morpho_contrast.cc,
* tests/unit_test/mln_core_site_set_p_edges_psite.cc,
* tests/unit_test/mln_morpho_opening.cc,
* tests/unit_test/mln_set_all.cc,
* tests/unit_test/mln_fun_internal_selector.cc,
* tests/unit_test/mln_geom_ncols.cc,
* tests/unit_test/mln_canvas_browsing_fwd.cc,
* tests/unit_test/mln_extension_adjust.cc,
* tests/unit_test/mln_geom_min_col.cc,
* tests/unit_test/mln_labeling_regional_maxima.cc,
* tests/unit_test/mln_metal_unptr.cc,
* tests/unit_test/mln_trait_window_props.cc,
* tests/unit_test/mln_trait_site_set_print.cc,
* tests/unit_test/mln_geom_delta.cc,
* tests/unit_test/mln_core_site_set_p_complex_piter.cc,
* tests/unit_test/mln_io_ppm_save.cc,
* tests/unit_test/mln_fun_i2v_all_to.cc,
* tests/unit_test/mln_morpho_meyer_wst.cc,
* tests/unit_test/mln_win_hline2d.cc,
* tests/unit_test/mln_value_label_8.cc,
* tests/unit_test/mln_core_site_set_p_line2d.cc,
* tests/unit_test/mln_core_image_graph_elt_window.cc,
* tests/unit_test/mln_math_round_sat.cc,
* tests/unit_test/mln_io_pnm_max_component.cc,
* tests/unit_test/mln_convert_all.cc,
* tests/unit_test/mln_trait_op_uplus.cc,
* tests/unit_test/mln_accu_land_basic.cc,
* tests/unit_test/mln_trait_all.cc,
* tests/unit_test/mln_fun_x2v_all.cc,
* tests/unit_test/mln_core_concept_mesh.cc,
* tests/unit_test/mln_fun_vv2v_macros.cc,
* tests/unit_test/mln_fun_all.cc,
* tests/unit_test/mln_linear_essential.cc,
* tests/unit_test/mln_morpho_elementary_all.cc,
* tests/unit_test/mln_value_label_16.cc,
* tests/unit_test/mln_accu_line.cc,
* tests/unit_test/mln_core_image_fi_adaptor.cc,
* tests/unit_test/mln_norm_essential.cc,
* tests/unit_test/mln_util_max.cc,
* tests/unit_test/mln_labeling_essential.cc,
* tests/unit_test/mln_metal_math_sqrt.cc,
* tests/unit_test/mln_metal_array1d.cc,
* tests/unit_test/mln_morpho_tree_max.cc,
* tests/unit_test/mln_core_image_image2d_h.cc,
* tests/unit_test/mln_literal_zero.cc,
* tests/unit_test/mln_fun_x2v_essential.cc,
* tests/unit_test/mln_math_max.cc,
* tests/unit_test/mln_math_jacobi.cc,
* tests/unit_test/mln_geom_bbox.cc,
* tests/unit_test/mln_core_concept_doc_pixel_iterator.cc,
* tests/unit_test/mln_level_transform.cc,
* tests/unit_test/mln_geom_max_sli.cc,
* tests/unit_test/mln_draw_essential.cc,
* tests/unit_test/mln_trait_undef.cc,
* tests/unit_test/mln_estim_sum.cc,
* tests/unit_test/mln_canvas_morpho_essential.cc,
* tests/unit_test/mln_extension_duplicate.cc,
* tests/unit_test/mln_math_diff_abs.cc,
* tests/unit_test/mln_morpho_elementary_closing.cc,
* tests/unit_test/mln_morpho_min.cc,
* tests/unit_test/mln_value_float01_f.cc,
* tests/unit_test/mln_win_multiple.cc,
* tests/unit_test/mln_all.cc,
* tests/unit_test/mln_make_vec.cc,
* tests/unit_test/mln_morpho_closing_area_on_vertices.cc,
* tests/unit_test/mln_morpho_opening_volume.cc,
* tests/unit_test/mln_core_internal_complex_window_p_base.cc,
* tests/unit_test/mln_core_internal_check_image_fastest.cc,
* tests/unit_test/mln_core_image_value_enc_image.cc,
* tests/unit_test/mln_util_nil.cc,
* tests/unit_test/mln_core_all.cc,
* tests/unit_test/mln_fun_x2v_nneighbor.cc,
* tests/unit_test/mln_morpho_complementation.cc,
* tests/unit_test/mln_make_point2d_h.cc,
* tests/unit_test/mln_io_pbm_save.cc,
* tests/unit_test/mln_geom_min_ind.cc,
* tests/unit_test/mln_trait_ch_value.cc,
* tests/unit_test/mln_fun_v2b_all.cc,
* tests/unit_test/mln_core_pixel.cc,
* tests/unit_test/mln_util_tracked_ptr.cc,
* tests/unit_test/mln_test_predicate.cc,
* tests/unit_test/mln_core_alias_point1d.cc,
* tests/unit_test/mln_metal_math_pow.cc,
* tests/unit_test/mln_core_concept_site_set.cc,
* tests/unit_test/mln_labeling_relabel.cc,
* tests/unit_test/mln_convert_from_to.cc,
* tests/unit_test/mln_core_internal_site_relative_iterator_base.cc,
* tests/unit_test/mln_geom_size1d.cc,
* tests/unit_test/mln_value_internal_value_like.cc,
* tests/unit_test/mln_core_internal_exact.cc,
* tests/unit_test/mln_topo_all.cc,
* tests/unit_test/mln_topo_n_faces_set.cc,
* tests/unit_test/mln_core_internal_run_image.cc,
* tests/unit_test/mln_linear_log.cc,
* tests/unit_test/mln_convert_to_rgb.cc,
* tests/unit_test/mln_metal_is_not.cc,
* tests/unit_test/mln_core_concept_browsing.cc,
* tests/unit_test/mln_fun_x2v_l1_norm.cc,
* tests/unit_test/mln_canvas_essential.cc,
* tests/unit_test/mln_trait_op_plus.cc,
* tests/unit_test/mln_accu_tuple.cc,
* tests/unit_test/mln_core_concept_doc_point_site.cc,
* tests/unit_test/mln_core_internal_graph_window_base.cc,
* tests/unit_test/mln_core_image_obased_rle_encode.cc,
* tests/unit_test/mln_accu_convolve.cc,
* tests/unit_test/mln_border_adjust.cc,
* tests/unit_test/mln_core_internal_p_complex_piter_base.cc,
* tests/unit_test/mln_util_set.cc,
* tests/unit_test/mln_core_image_extension_val.cc,
* tests/unit_test/mln_convert_to_fun.cc,
* tests/unit_test/mln_trait_solve.cc,
* tests/unit_test/mln_util_ord_pair.cc,
* tests/unit_test/mln_math_min.cc,
* tests/unit_test/mln_logical_and.cc,
* tests/unit_test/mln_fun_v2v_essential.cc,
* tests/unit_test/mln_core_site_set_p_run_piter.cc,
* tests/unit_test/mln_linear_local_convolve.cc,
* tests/unit_test/mln_accu_median_h.cc,
* tests/unit_test/mln_fun_v2v_cast.cc,
* tests/unit_test/mln_core_concept_doc_box.cc,
* tests/unit_test/mln_level_stretch.cc,
* tests/unit_test/mln_util_index.cc,
* tests/unit_test/mln_trait_site_set_props.cc,
* tests/unit_test/mln_set_uni.cc,
* tests/unit_test/mln_morpho_opening_attribute.cc,
* tests/unit_test/mln_test_all.cc,
* tests/unit_test/mln_metal_fix_return.cc,
* tests/unit_test/mln_topo_adj_lower_face_iter.cc,
* tests/unit_test/mln_core_pixter1d.cc,
* tests/unit_test/mln_metal_unconst.cc,
* tests/unit_test/mln_core_alias_w_window2d_int.cc,
* tests/unit_test/mln_core_routine_ops.cc,
* tests/unit_test/mln_fun_v2v_inc.cc,
* tests/unit_test/mln_io_off_save.cc,
* tests/unit_test/mln_level_memset_.cc,
* tests/unit_test/mln_metal_is_not_const.cc,
* tests/unit_test/mln_accu_pair.cc,
* tests/unit_test/mln_fun_l2l_relabel.cc,
* tests/unit_test/mln_trait_op_essential.cc,
* tests/unit_test/mln_make_voronoi.cc,
* tests/unit_test/mln_core_image_safe.cc,
* tests/unit_test/mln_metal_is_ref.cc,
* tests/unit_test/mln_metal_abort.cc,
* tests/unit_test/mln_io_off_all.cc,
* tests/unit_test/mln_win_shift.cc,
* tests/unit_test/mln_metal_all.cc,
* tests/unit_test/mln_core_alias_w_window3d_float.cc,
* tests/unit_test/mln_core_internal_complex_neighborhood_base.cc,
* tests/unit_test/mln_fun_x2v_bilinear.cc,
* tests/unit_test/mln_make_dual_neighb.cc,
* tests/unit_test/mln_io_txt_all.cc,
* tests/unit_test/mln_core_site_set_p_mutable_array_of.cc,
* tests/unit_test/mln_fun_p2b_essential.cc,
* tests/unit_test/mln_core_alias_dpoint1d.cc,
* tests/unit_test/mln_make_image2d.cc,
* tests/unit_test/mln_value_int_s.cc,
* tests/unit_test/mln_win_cuboid3d.cc,
* tests/unit_test/mln_core_image_rle_encode.cc,
* tests/unit_test/mln_morpho_closing_area.cc,
* tests/unit_test/mln_accu_transform_stop.cc,
* tests/unit_test/mln_border_equalize.cc,
* tests/unit_test/mln_geom_nsites.cc,
* tests/unit_test/mln_core_image_plain.cc,
* tests/unit_test/mln_core_internal_data.cc,
* tests/unit_test/mln_metal_math_root.cc,
* tests/unit_test/mln_transform_internal_distance_functor.cc,
* tests/unit_test/mln_topo_internal_complex_set_iterator_base.cc,
* tests/unit_test/mln_io_ppm_load.cc,
* tests/unit_test/mln_value_essential.cc,
* tests/unit_test/mln_core_internal_weighted_window_base.cc,
* tests/unit_test/mln_metal_array2d.cc,
* tests/unit_test/mln_transform_distance_geodesic.cc,
* tests/unit_test/mln_core_site_set_p_n_faces_piter.cc,
* tests/unit_test/mln_geom_nslis.cc,
* tests/unit_test/mln_logical_xor.cc,
* tests/unit_test/mln_accu_height.cc,
* tests/unit_test/mln_core_concept_proxy.cc,
* tests/unit_test/mln_linear_lap.cc,
* tests/unit_test/mln_morpho_thickening.cc,
* tests/unit_test/mln_core_image_ch_piter.cc,
* tests/unit_test/mln_trait_images.cc,
* tests/unit_test/mln_metal_not_equal.cc,
* tests/unit_test/mln_level_assign.cc,
* tests/unit_test/mln_topo_adj_m_face_iter.cc,
* tests/unit_test/mln_level_apply.cc,
* tests/unit_test/mln_literal_ops.cc,
* tests/unit_test/mln_trait_value_.cc,
* tests/unit_test/mln_trace_resume.cc,
* tests/unit_test/mln_value_interval.cc,
* tests/unit_test/mln_util_internal_boost_graph_structure.cc,
* tests/unit_test/mln_metal_if.cc,
* tests/unit_test/mln_logical_essential.cc,
* tests/unit_test/mln_estim_mean.cc,
* tests/unit_test/mln_tag_essential.cc,
* tests/unit_test/mln_morpho_top_hat.cc,
* tests/unit_test/mln_value_builtin_ops.cc,
* tests/unit_test/mln_core_internal_classical_window_base.cc,
* tests/unit_test/mln_convert_to_upper_window.cc,
* tests/unit_test/mln_win_diff.cc,
* tests/unit_test/mln_fun_v2v_convert.cc,
* tests/unit_test/mln_io_pfm_save.cc,
* tests/unit_test/mln_subsampling_subsampling.cc,
* tests/unit_test/mln_level_approx_all.cc,
* tests/unit_test/mln_core_internal_pixel_iterator_base.cc,
* tests/unit_test/mln_value_internal_gray_.cc,
* tests/unit_test/mln_geom_max_col.cc,
* tests/unit_test/mln_transform_internal_influence_zone_functor.cc,
* tests/unit_test/mln_value_graylevel_f.cc,
* tests/unit_test/mln_level_was_median.cc,
* tests/unit_test/mln_core_image_rle_image.cc,
* tests/unit_test/mln_core_alias_point2d.cc,
* tests/unit_test/mln_fun_v2v_dec.cc,
* tests/unit_test/mln_value_scalar.cc,
* tests/unit_test/mln_canvas_browsing_directional.cc,
* tests/unit_test/mln_debug_iota.cc,
* tests/unit_test/mln_io_pgm_all.cc,
* tests/unit_test/mln_value_all.cc,
* tests/unit_test/mln_io_pbm_load.cc,
* tests/unit_test/mln_trait_site_sets.cc,
* tests/unit_test/mln_core_image_graph_window_piter.cc,
* tests/unit_test/mln_topo_static_n_face_iter.cc,
* tests/unit_test/mln_transform_influence_zone_front.cc,
* tests/unit_test/mln_geom_size2d.cc,
* tests/unit_test/mln_metal_essential.cc,
* tests/unit_test/mln_util_vertex.cc,
* tests/unit_test/mln_util_branch_iter.cc,
* tests/unit_test/mln_fun_v2v_linear.cc,
* tests/unit_test/mln_geom_nrows.cc,
* tests/unit_test/mln_value_super_value.cc,
* tests/unit_test/mln_value_gl8.cc,
* tests/unit_test/mln_trace_all.cc,
* tests/unit_test/mln_core_concept_doc_site_set.cc,
* tests/unit_test/mln_core_concept_site_proxy.cc,
* tests/unit_test/mln_canvas_browsing_essential.cc,
* tests/unit_test/mln_trait_value_nature.cc,
* tests/unit_test/mln_morpho_elementary_laplacian.cc,
* tests/unit_test/mln_arith_includes.cc,
* tests/unit_test/mln_fun_essential.cc,
* tests/unit_test/mln_transform_influence_zone_geodesic.cc,
* tests/unit_test/mln_value_stack.cc,
* tests/unit_test/mln_level_paste.cc,
* tests/unit_test/mln_core_image_value_encode.cc,
* tests/unit_test/mln_core_routine_extend.cc,
* tests/unit_test/mln_accu_transform.cc,
* tests/unit_test/mln_border_duplicate.cc,
* tests/unit_test/mln_trait_op_all.cc,
* tests/unit_test/mln_level_update.cc,
* tests/unit_test/mln_core_concept_delta_point_site.cc,
* tests/unit_test/mln_canvas_browsing_diagonal2d.cc,
* tests/unit_test/mln_core_pixter2d.cc,
* tests/unit_test/mln_core_image_complex_window_piter.cc,
* tests/unit_test/mln_core_concept_box.cc,
* tests/unit_test/mln_value_int_s32.cc,
* tests/unit_test/mln_core_image_graph_image.cc,
* tests/unit_test/mln_make_win_chamfer.cc,
* tests/unit_test/mln_binarization_all.cc,
* tests/unit_test/mln_arith_minus.cc,
* tests/unit_test/mln_fun_x2x_composed.cc,
* tests/unit_test/mln_fun_p2v_ternary.cc,
* tests/unit_test/mln_trait_value_essential.cc,
* tests/unit_test/mln_geom_max_ind.cc,
* tests/unit_test/mln_value_concept_symbolic.cc,
* tests/unit_test/mln_morpho_Rd.cc,
* tests/unit_test/mln_morpho_includes.cc,
* tests/unit_test/mln_accu_p.cc,
* tests/unit_test/mln_canvas_browsing_backdiagonal2d.cc,
* tests/unit_test/mln_trait_op_minus.cc,
* tests/unit_test/mln_value_lut_vec.cc,
* tests/unit_test/mln_core_site_set_p_complex.cc,
* tests/unit_test/mln_fun_v2v_saturate.cc,
* tests/unit_test/mln_pw_var.cc,
* tests/unit_test/mln_core_essential.cc,
* tests/unit_test/mln_core_site_set_box.cc,
* tests/unit_test/mln_io_all.cc,
* tests/unit_test/mln_topo_adj_lower_dim_connected_n_face_iter.cc,
* tests/unit_test/mln_io_off_load.cc,
* tests/unit_test/mln_core_alias_neighb1d.cc,
* tests/unit_test/mln_trace_stop.cc,
* tests/unit_test/mln_norm_all.cc,
* tests/unit_test/mln_labeling_level.cc,
* tests/unit_test/mln_core_alias_dpoint2d.cc,
* tests/unit_test/mln_core_dpoint.cc,
* tests/unit_test/mln_topo_internal_complex_iterator_base.cc,
* tests/unit_test/mln_accu_compute.cc,
* tests/unit_test/mln_util_tree_fast.cc,
* tests/unit_test/mln_value_concept_floating.cc,
* tests/unit_test/mln_core_image_extended.cc,
* tests/unit_test/mln_core_image_tr_mesh.cc,
* tests/unit_test/mln_core_concept_generalized_pixel.cc,
* tests/unit_test/mln_io_essential.cc,
* tests/unit_test/mln_core_image_t_image.cc,
* tests/unit_test/mln_core_image_bgraph_psite.cc,
* tests/unit_test/mln_extension_fill.cc,
* tests/unit_test/mln_linear_convolve_2x1d.cc,
* tests/unit_test/mln_trait_op_div.cc,
* tests/unit_test/mln_core_concept_doc_image_fastest.cc,
* tests/unit_test/mln_metal_has_neighborhood.cc,
* tests/unit_test/mln_io_txt_save.cc,
* tests/unit_test/mln_fun_p2v_essential.cc,
* tests/unit_test/mln_metal_array3d.cc,
* tests/unit_test/mln_trait_essential.cc,
* tests/unit_test/mln_value_builtin_promotions.cc,
* tests/unit_test/mln_core_image_complex_windows.cc,
* tests/unit_test/mln_literal_white.cc,
* tests/unit_test/mln_win_octagon2d.cc,
* tests/unit_test/mln_core_image_extension_fun.cc,
* tests/unit_test/mln_value_concept_vectorial.cc,
* tests/unit_test/mln_norm_linfty.cc,
* tests/unit_test/mln_metal_unref.cc,
* tests/unit_test/mln_core_image_mono_rle_encode.cc,
* tests/unit_test/mln_value_builtin_integers.cc,
* tests/unit_test/mln_registration_all.cc,
* tests/unit_test/mln_core_trait_essential.cc,
* tests/unit_test/mln_metal_math_all.cc,
* tests/unit_test/mln_value_rgb.cc,
* tests/unit_test/mln_core_image_decorated_image.cc,
* tests/unit_test/mln_core_site_set_p_priority.cc,
* tests/unit_test/mln_util_dindex.cc,
* tests/unit_test/mln_morpho_elementary_opening.cc,
* tests/unit_test/mln_convert_to_window.cc,
* tests/unit_test/mln_logical_or.cc,
* tests/unit_test/mln_core_image_image_if.cc,
* tests/unit_test/mln_make_relabelfun.cc,
* tests/unit_test/mln_subsampling_all.cc,
* tests/unit_test/mln_morpho_elementary_like_ero_set.cc,
* tests/unit_test/mln_value_internal_encoding.cc,
* tests/unit_test/mln_core_concept_doc_neighborhood.cc,
* tests/unit_test/mln_core_concept_doc_window.cc,
* tests/unit_test/mln_win_cube3d.cc,
* tests/unit_test/mln_border_fill.cc,
* tests/unit_test/mln_set_diff.cc,
* tests/unit_test/mln_algebra_all.cc,
* tests/unit_test/mln_trace_exiting.cc,
* tests/unit_test/mln_core_site_set_operators.cc,
* tests/unit_test/mln_core_def_coord.cc,
* tests/unit_test/mln_fun_v2b_lnot.cc,
* tests/unit_test/mln_core_site_set_attic_p_faces_piter.cc,
* tests/unit_test/mln_trait_solve_binary.cc,
* tests/unit_test/mln_core_alias_point3d.cc,
* tests/unit_test/mln_core_concept_doc_generalized_pixel.cc,
* tests/unit_test/mln_canvas_all.cc,
* tests/unit_test/mln_level_compute.cc,
* tests/unit_test/mln_level_naive_median.cc,
* tests/unit_test/mln_level_convert.cc,
* tests/unit_test/mln_io_pfm_load.cc,
* tests/unit_test/mln_geom_size3d.cc,
* tests/unit_test/mln_fun_l2l_essential.cc,
* tests/unit_test/mln_value_int_u.cc,
* tests/unit_test/mln_core_internal_site_iterator_base.cc,
* tests/unit_test/mln_accu_center.cc,
* tests/unit_test/mln_core_routine_initialize.cc,
* tests/unit_test/mln_core_concept_literal.cc,
* tests/unit_test/mln_make_w_window1d.cc,
* tests/unit_test/mln_accu_count_adjacent_vertices.cc,
* tests/unit_test/mln_metal_converts_to.cc,
* tests/unit_test/mln_fun_vv2v_diff_abs.cc,
* tests/unit_test/mln_make_w_window1d_int.cc,
* tests/unit_test/mln_morpho_all.cc,
* tests/unit_test/mln_trait_windows.cc,
* tests/unit_test/mln_metal_ref.cc,
* tests/unit_test/mln_level_all.cc,
* tests/unit_test/mln_value_internal_gray_f.cc,
* tests/unit_test/mln_literal_grays.cc,
* tests/unit_test/mln_canvas_browsing_snake_vert.cc,
* tests/unit_test/mln_trait_op_eq.cc,
* tests/unit_test/mln_value_builtin_floatings.cc,
* tests/unit_test/mln_math_sign.cc,
* tests/unit_test/mln_core_pixter3d.cc,
* tests/unit_test/mln_morpho_opening_height.cc,
* tests/unit_test/mln_value_other.cc,
* tests/unit_test/mln_value_proxy.cc,
* tests/unit_test/mln_core_concept_doc_object.cc,
* tests/unit_test/mln_level_essential.cc,
* tests/unit_test/mln_core_alias_w_window3d_int.cc,
* tests/unit_test/mln_value_int_s16.cc,
* tests/unit_test/mln_metal_same_point.cc,
* tests/unit_test/mln_trait_op_postinc.cc,
* tests/unit_test/mln_core_routine_exact.cc,
* tests/unit_test/mln_core_image_all.cc,
* tests/unit_test/mln_fun_p2b_all.cc,
* tests/unit_test/mln_core_internal_set_of.cc,
* tests/unit_test/mln_core_concept_graph.cc,
* tests/unit_test/mln_win_sym.cc,
* tests/unit_test/mln_set_has.cc,
* tests/unit_test/mln_util_internal_vertex_impl.cc,
* tests/unit_test/mln_core_site_set_p_bgraph.cc,
* tests/unit_test/mln_convert_impl_all.cc,
* tests/unit_test/mln_topo_attic_faces_iter.cc,
* tests/unit_test/mln_core_site_set_p_bgraph_piter.cc,
* tests/unit_test/mln_accu_rank_high_quant.cc,
* tests/unit_test/mln_core_site_set_box_piter.cc,
* tests/unit_test/mln_core_alias_neighb2d.cc,
* tests/unit_test/mln_core_image_mono_obased_rle_image.cc,
* tests/unit_test/mln_metal_mat.cc,
* tests/unit_test/mln_core_alias_dpoint3d.cc,
* tests/unit_test/mln_util_all.cc,
* tests/unit_test/mln_core_tags.cc,
* tests/unit_test/mln_core_concept_pseudo_site.cc,
* tests/unit_test/mln_util_eat.cc,
* tests/unit_test/mln_norm_l1.cc,
* tests/unit_test/mln_util_lemmings.cc,
* tests/unit_test/mln_fun_ops.cc,
* tests/unit_test/mln_core_image_sparse_image.cc,
* tests/unit_test/mln_arith_plus.cc,
* tests/unit_test/mln_core_internal_check_image_all.cc,
* tests/unit_test/mln_morpho_tree_all.cc,
* tests/unit_test/mln_metal_int.cc,
* tests/unit_test/mln_core_internal_site_set_base.cc,
* tests/unit_test/mln_topo_centered_iter_adapter.cc,
* tests/unit_test/mln_value_rgb16.cc,
* tests/unit_test/mln_geom_min_row.cc,
* tests/unit_test/mln_math_all.cc,
* tests/unit_test/mln_metal_none.cc,
* tests/unit_test/mln_debug_println_with_border.cc,
* tests/unit_test/mln_core_trait_op_mult.cc,
* tests/unit_test/mln_trait_value_print.cc,
* tests/unit_test/mln_core_macros.cc,
* tests/unit_test/mln_metal_is.cc,
* tests/unit_test/mln_morpho_elementary_essential.cc,
* tests/unit_test/mln_value_int_s8.cc,
* tests/unit_test/mln_trait_op_not.cc,
* tests/unit_test/mln_core_concept_accumulator.cc,
* tests/unit_test/mln_morpho_thinning.cc,
* tests/unit_test/mln_geom_seeds2tiling_roundness.cc,
* tests/unit_test/mln_tag_all.cc,
* tests/unit_test/mln_topo_center_only_iter.cc,
* tests/unit_test/mln_value_float01_16.cc,
* tests/unit_test/mln_util_tree_to_fast.cc,
* tests/unit_test/mln_core_site_set_p_edges.cc,
* tests/unit_test/mln_core_alias_window1d.cc,
* tests/unit_test/mln_util_timer.cc,
* tests/unit_test/mln_core_internal_image_value_morpher.cc,
* tests/unit_test/mln_math_sqr.cc,
* tests/unit_test/mln_binarization_includes.cc,
* tests/unit_test/mln_accu_max.cc,
* tests/unit_test/mln_morpho_thick_miss.cc,
* tests/unit_test/mln_transform_essential.cc,
* tests/unit_test/mln_trait_op_ord.cc,
* tests/unit_test/mln_fun_x2p_closest_point.cc,
* tests/unit_test/mln_topo_algebraic_face.cc,
* tests/unit_test/mln_accu_lor_basic.cc,
* tests/unit_test/mln_core_concept_regular_grid.cc,
* tests/unit_test/mln_fun_l2l_all.cc,
* tests/unit_test/mln_fun_c.cc,
* tests/unit_test/mln_debug_colorize.cc,
* tests/unit_test/mln_metal_same_coord.cc,
* tests/unit_test/mln_core_alias_box1d.cc,
* tests/unit_test/mln_io_pnm_save.cc,
* tests/unit_test/mln_logical_includes.cc,
* tests/unit_test/mln_trait_image_print.cc,
* tests/unit_test/mln_linear_all.cc,
* tests/unit_test/mln_trait_op_postdec.cc,
* tests/unit_test/mln_metal_is_const.cc,
* tests/unit_test/mln_morpho_tree_utils.cc,
* tests/unit_test/mln_core_neighb.cc,
* tests/unit_test/mln_algebra_essential.cc,
* tests/unit_test/mln_core_concept_image.cc,
* tests/unit_test/mln_core_site_set_p_faces.cc,
* tests/unit_test/mln_core_alias_point2d_h.cc,
* tests/unit_test/mln_util_branch_iter_ind.cc,
* tests/unit_test/mln_fun_vv2v_vec.cc,
* tests/unit_test/mln_topo_is_simple_2d.cc,
* tests/unit_test/mln_io_ppm_all.cc,
* tests/unit_test/mln_util_multi_site.cc,
* tests/unit_test/mln_display_essential.cc,
* tests/unit_test/mln_morpho_elementary_dilation.cc,
* tests/unit_test/mln_fun_v2v_all.cc,
* tests/unit_test/mln_core_alias_p_runs2d.cc,
* tests/unit_test/mln_accu_nil.cc,
* tests/unit_test/mln_level_memcpy_.cc,
* tests/unit_test/mln_make_w_window2d.cc,
* tests/unit_test/mln_fun_x2x_all.cc,
* tests/unit_test/mln_level_naive_all.cc,
* tests/unit_test/mln_trace_warning.cc,
* tests/unit_test/mln_debug_draw_graph.cc,
* tests/unit_test/mln_accu_rank.cc,
* tests/unit_test/mln_set_compute.cc,
* tests/unit_test/mln_accu_lor.cc,
* tests/unit_test/mln_io_pgm_save.cc,
* tests/unit_test/mln_core_concept_window.cc,
* tests/unit_test/mln_draw_plot.cc,
* tests/unit_test/mln_core_image_lazy_image.cc,
* tests/unit_test/mln_extension_adjust_fill.cc,
* tests/unit_test/mln_util_tree.cc,
* tests/unit_test/mln_win_inter.cc,
* tests/unit_test/mln_core_internal_image_identity.cc,
* tests/unit_test/mln_linear_gaussian.cc,
* tests/unit_test/mln_core_internal_window_base.cc,
* tests/unit_test/mln_binarization_threshold.cc,
* tests/unit_test/mln_make_all.cc,
* tests/unit_test/mln_trace_quiet.cc,
* tests/unit_test/mln_core_image_cast_image.cc,
* tests/unit_test/mln_morpho_elementary_top_hat.cc,
* tests/unit_test/mln_norm_l2.cc,
* tests/unit_test/mln_debug_put_word.cc,
* tests/unit_test/mln_accu_maj_h.cc,
* tests/unit_test/mln_fun_v2v_enc.cc,
* tests/unit_test/mln_trait_neighborhood.cc,
* tests/unit_test/mln_geom_chamfer.cc,
* tests/unit_test/mln_morpho_tree_data.cc,
* tests/unit_test/mln_metal_is_not_a.cc,
* tests/unit_test/mln_accu_min.cc,
* tests/unit_test/mln_core_image_mono_obased_rle_encode.cc,
* tests/unit_test/mln_geom_all.cc,
* tests/unit_test/mln_tag_skeleton.cc,
* tests/unit_test/mln_morpho_internal_elementary.cc,
* tests/unit_test/mln_morpho_dilation.cc,
* tests/unit_test/mln_core_alias_w_window1d_float.cc,
* tests/unit_test/mln_metal_templated_by.cc,
* tests/unit_test/mln_util_pix.cc,
* tests/unit_test/mln_geom_essential.cc,
* tests/unit_test/mln_level_to_enc.cc,
* tests/unit_test/mln_util_internal_graph_nbh_iter_base.cc,
* tests/unit_test/mln_value_rgb8.cc,
* tests/unit_test/mln_canvas_morpho_algebraic_union_find.cc,
* tests/unit_test/mln_util_tree_to_image.cc,
* tests/unit_test/mln_accu_rank_bool.cc,
* tests/unit_test/mln_morpho_general.cc,
* tests/unit_test/mln_core_alias_complex_geometry.cc,
* tests/unit_test/mln_core_alias_neighb3d.cc,
* tests/unit_test/mln_algebra_h_mat.cc,
* tests/unit_test/mln_core_image_sub_image.cc,
* tests/unit_test/mln_canvas_browsing_snake_fwd.cc,
* tests/unit_test/mln_canvas_browsing_dir_struct_elt_incr_update.cc,
* tests/unit_test/mln_core_concept_function.cc,
* tests/unit_test/mln_labeling_background.cc,
* tests/unit_test/mln_core_image_extension_ima.cc,
* tests/unit_test/mln_core_def_essential.cc,
* tests/unit_test/mln_util_internal_graph_iter.cc,
* tests/unit_test/mln_fun_vv2v_max.cc,
* tests/unit_test/mln_core_image_image1d.cc,
* tests/unit_test/mln_core_trait_all.cc,
* tests/unit_test/mln_level_median.cc,
* tests/unit_test/mln_util_essential.cc,
* tests/unit_test/mln_value_equiv.cc,
* tests/unit_test/mln_canvas_morpho_all.cc,
* tests/unit_test/mln_core_concept_doc_accumulator.cc,
* tests/unit_test/mln_core_concept_object.cc,
* tests/unit_test/mln_core_site_set_p_graph_piter.cc,
* tests/unit_test/mln_core_alias_p_run2d.cc,
* tests/unit_test/mln_core_concept_neighborhood.cc,
* tests/unit_test/mln_set_inter.cc,
* tests/unit_test/mln_core_faces_psite.cc,
* tests/unit_test/mln_core_concept_value.cc,
* tests/unit_test/mln_topo_n_face_iter.cc,
* tests/unit_test/mln_core_var.cc,
* tests/unit_test/mln_morpho_closing_attribute.cc,
* tests/unit_test/mln_trace_essential.cc,
* tests/unit_test/mln_border_mirror.cc,
* tests/unit_test/mln_geom_resize.cc,
* tests/unit_test/mln_morpho_elementary_gradient_external.cc,
* tests/unit_test/mln_trait_image_props.cc,
* tests/unit_test/mln_arith_min.cc,
* tests/unit_test/mln_make_box1d.cc,
* tests/unit_test/mln_morpho_opening_area.cc,
* tests/unit_test/mln_border_get.cc,
* tests/unit_test/mln_core_image_line_graph_elt_window.cc,
* tests/unit_test/mln_core_alias_window2d.cc,
* tests/unit_test/mln_morpho_minus.cc,
* tests/unit_test/mln_value_int_u32.cc,
* tests/unit_test/mln_core_routine_init.cc,
* tests/unit_test/mln_accu_essential.cc,
* tests/unit_test/mln_trait_op_leq.cc,
* tests/unit_test/mln_core_concept_gpoint.cc,
* tests/unit_test/mln_core_category.cc,
* tests/unit_test/mln_value_cast.cc,
* tests/unit_test/mln_fun_vv2v_lor.cc,
* tests/unit_test/mln_core_trait_qlf_value.cc,
* tests/unit_test/mln_core_concept_all.cc,
* tests/unit_test/mln_essential_routine.cc,
* tests/unit_test/mln_debug_println.cc,
* tests/unit_test/mln_value_ops.cc,
* tests/unit_test/mln_level_transform_inplace.cc,
* tests/unit_test/mln_labeling_blobs.cc,
* tests/unit_test/mln_io_abort.cc,
* tests/unit_test/mln_algebra_mat.cc,
* tests/unit_test/mln_geom_pmin_pmax.cc,
* tests/unit_test/mln_core_alias_box2d.cc,
* tests/unit_test/mln_core_image_hexa.cc,
* tests/unit_test/mln_core_site_set_p_double.cc,
* tests/unit_test/mln_core_image_tr_image.cc,
* tests/unit_test/mln_morpho_skeleton_constrained.cc,
* tests/unit_test/mln_core_def_coordf.cc,
* tests/unit_test/mln_math_sqrt.cc,
* tests/unit_test/mln_value_glf.cc,
* tests/unit_test/mln_draw_box.cc,
* tests/unit_test/mln_level_sort_psites.cc,
* tests/unit_test/mln_morpho_elementary_gradient.cc,
* tests/unit_test/mln_morpho_closing_volume.cc,
* tests/unit_test/mln_canvas_browsing_all.cc,
* tests/unit_test/mln_fun_vv2v_min.cc,
* tests/unit_test/mln_core_site_set_all.cc,
* tests/unit_test/mln_io_pnm_load.cc,
* tests/unit_test/mln_fun_v2v_norm.cc,
* tests/unit_test/mln_make_w_window3d.cc,
* tests/unit_test/mln_util_ord.cc,
* tests/unit_test/mln_topo_face_iter.cc,
* tests/unit_test/mln_geom_max_row.cc,
* tests/unit_test/mln_linear_sobel_2d.cc,
* tests/unit_test/mln_linear_convolve.cc,
* tests/unit_test/mln_core_trait_pixter.cc,
* tests/unit_test/mln_core_image_mono_rle_image.cc,
* tests/unit_test/mln_fun_x2p_essential.cc,
* tests/unit_test/mln_literal_black.cc,
* tests/unit_test/mln_make_w_window2d_int.cc,
* tests/unit_test/mln_literal_one.cc,
* tests/unit_test/mln_make_pix.cc,
* tests/unit_test/mln_pw_essential.cc,
* tests/unit_test/mln_core_site_set_essential.cc,
* tests/unit_test/mln_core_concept_doc_weighted_window.cc,
* tests/unit_test/mln_logical_all.cc,
* tests/unit_test/mln_morpho_erosion.cc,
* tests/unit_test/mln_morpho_hit_or_miss.cc,
* tests/unit_test/mln_core_internal_graph_psite_base.cc,
* tests/unit_test/mln_win_line.cc,
* tests/unit_test/mln_trait_concrete.cc,
* tests/unit_test/mln_make_w_window_directional.cc,
* tests/unit_test/mln_arith_times.cc,
* tests/unit_test/mln_morpho_laplacian.cc,
* tests/unit_test/mln_labeling_compute.cc,
* tests/unit_test/mln_io_pgm_load.cc,
* tests/unit_test/mln_value_label.cc,
* tests/unit_test/mln_convert_impl_from_value_to_value.cc,
* tests/unit_test/mln_core_site_set_p_set.cc,
* tests/unit_test/mln_accu_histo.cc,
* tests/unit_test/mln_morpho_gradient.cc,
* tests/unit_test/mln_make_box2d_h.cc,
* tests/unit_test/mln_trait_op_times.cc,
* tests/unit_test/mln_make_essential.cc,
* tests/unit_test/mln_accu_min_h.cc,
* tests/unit_test/mln_test_essential.cc,
* tests/unit_test/mln_core_site_set_p_queue_fast.cc,
* tests/unit_test/mln_core_concept_site.cc,
* tests/unit_test/mln_morpho_tree_compute_parent.cc,
* tests/unit_test/mln_core_concept_doc_image.cc,
* tests/unit_test/mln_make_w_window.cc,
* tests/unit_test/mln_histo_essential.cc,
* tests/unit_test/mln_canvas_distance_front.cc,
* tests/unit_test/mln_convert_to_dpoint.cc,
* tests/unit_test/mln_binarization_essential.cc,
* tests/unit_test/mln_core_concept_point_site.cc,
* tests/unit_test/mln_value_float01_.cc,
* tests/unit_test/mln_util_internal_graph_nbh_iter.cc,
* tests/unit_test/mln_core_concept_doc_dpoint.cc,
* tests/unit_test/mln_canvas_browsing_depth_first_search.cc,
* tests/unit_test/mln_core_site_set_p_queue.cc,
* tests/unit_test/mln_essential_1d.cc,
* tests/unit_test/mln_logical_and_not.cc,
* tests/unit_test/mln_topo_n_face.cc,
* tests/unit_test/mln_core_site_set_p_vaccess.cc,
* tests/unit_test/mln_core_internal_image_base.cc,
* tests/unit_test/mln_util_internal_boost_graph_access.cc,
* tests/unit_test/mln_value_int_u_sat.cc,
* tests/unit_test/mln_histo_compute.cc,
* tests/unit_test/mln_fun_vv2v_essential.cc,
* tests/unit_test/mln_core_internal_image_morpher.cc,
* tests/unit_test/mln_core_image_image2d.cc,
* tests/unit_test/mln_io_pnm_macros.cc,
* tests/unit_test/mln_core_a_point_of.cc,
* tests/unit_test/mln_core_concept_gdpoint.cc,
* tests/unit_test/mln_io_fits_load.cc,
* tests/unit_test/mln_tag_init.cc,
* tests/unit_test/mln_core_concept_site_iterator.cc,
* tests/unit_test/mln_labeling_flat_zones.cc,
* tests/unit_test/mln_canvas_browsing_snake_generic.cc,
* tests/unit_test/mln_level_replace.cc,
* tests/unit_test/mln_value_int_u8.cc,
* tests/unit_test/mln_transform_all.cc,
* tests/unit_test/mln_morpho_tree_compute_attribute_image.cc,
* tests/unit_test/mln_accu_land.cc,
* tests/unit_test/mln_make_box2d.cc,
* tests/unit_test/mln_metal_ret.cc,
* tests/unit_test/mln_core_alias_window3d.cc,
* tests/unit_test/mln_core_clock_neighb.cc,
* tests/unit_test/mln_util_ignore.cc,
* tests/unit_test/mln_value_int_u16.cc,
* tests/unit_test/mln_extension_essential.cc,
* tests/unit_test/mln_accu_count.cc,
* tests/unit_test/mln_core_dpoints_pixter.cc,
* tests/unit_test/mln_io_fits_all.cc,
* tests/unit_test/mln_core_image_line_graph_image.cc,
* tests/unit_test/mln_core_image_sparse_encode.cc,
* tests/unit_test/mln_arith_diff_abs.cc,
* tests/unit_test/mln_accu_max_h.cc,
* tests/unit_test/mln_estim_min_max.cc,
* tests/unit_test/mln_value_float01_8.cc,
* tests/unit_test/mln_debug_essential.cc,
* tests/unit_test/mln_core_def_all.cc,
* tests/unit_test/mln_metal_vec.cc,
* tests/unit_test/mln_core_alias_box3d.cc,
* tests/unit_test/mln_accu_internal_base.cc,
* tests/unit_test/mln_util_edge.cc,
* tests/unit_test/mln_fun_p2b_big_chess.cc,
* tests/unit_test/mln_core_image_hexa_piter.cc,
* tests/unit_test/mln_linear_convolve_directional.cc,
* tests/unit_test/mln_draw_line.cc,
* tests/unit_test/mln_core_image_interpolated.cc,
* tests/unit_test/mln_fun_x2p_all.cc,
* tests/unit_test/mln_canvas_browsing_hyper_directional.cc,
* tests/unit_test/mln_level_fill_with_image.cc,
* tests/unit_test/mln_morpho_elementary_like_ero_fun.cc,
* tests/unit_test/mln_convert_to_p_set.cc,
* tests/unit_test/mln_level_approx_median.cc,
* tests/unit_test/mln_literal_colors.cc,
* tests/unit_test/mln_util_internal_edge_impl.cc,
* tests/unit_test/mln_core_image_bgraph_image.cc,
* tests/unit_test/mln_value_concept_all.cc,
* tests/unit_test/mln_trait_op_or.cc,
* tests/unit_test/mln_accu_transform_directional.cc,
* tests/unit_test/mln_morpho_rank_filter.cc,
* tests/unit_test/mln_value_viter.cc,
* tests/unit_test/mln_core_internal_site_set_iterator_base.cc,
* tests/unit_test/mln_topo_adj_higher_face_iter.cc,
* tests/unit_test/mln_convert_impl_from_image_to_site_set.cc,
* tests/unit_test/mln_convert_essential.cc,
* tests/unit_test/mln_algebra_quat.cc,
* tests/unit_test/mln_morpho_thin_fit.cc,
* tests/unit_test/mln_debug_format.cc,
* tests/unit_test/mln_value_concept_essential.cc,
* tests/unit_test/mln_pw_cst.cc,
* tests/unit_test/mln_topo_face.cc,
* tests/unit_test/mln_fun_v2v_id.cc,
* tests/unit_test/mln_core_point.cc,
* tests/unit_test/mln_metal_is_unqualif.cc,
* tests/unit_test/mln_trait_op_and.cc,
* tests/unit_test/mln_extension_all.cc,
* tests/unit_test/mln_registration_registration.cc,
* tests/unit_test/mln_value_concept_integer.cc,
* tests/unit_test/mln_core_internal_neighborhood_base.cc,
* tests/unit_test/mln_border_all.cc,
* tests/unit_test/mln_core_box_runstart_piter.cc,
* tests/unit_test/mln_metal_unqualif.cc,
* tests/unit_test/mln_core_alias_point3df.cc,
* tests/unit_test/mln_trait_value_all.cc,
* tests/unit_test/mln_make_double_neighb2d.cc,
* tests/unit_test/mln_core_image_obased_rle_image.cc,
* tests/unit_test/mln_core_concept_iterator.cc,
* tests/unit_test/mln_value_concept_scalar.cc,
* tests/unit_test/mln_level_fill.cc,
* tests/unit_test/mln_make_mat.cc,
* tests/unit_test/mln_trait_op_mod.cc,
* tests/unit_test/mln_trait_op_preinc.cc,
* tests/unit_test/mln_morpho_closing.cc,
* tests/unit_test/mln_accu_min_max.cc,
* tests/unit_test/mln_util_internal_graph_base.cc,
* tests/unit_test/mln_core_routine_all.cc,
* tests/unit_test/mln_fun_p2b_has.cc,
* tests/unit_test/mln_value_graylevel.cc,
* tests/unit_test/mln_make_dpoint2d_h.cc,
* tests/unit_test/mln_io_pnm_load_header.cc,
* tests/unit_test/mln_value_internal_iterable_set.cc,
* tests/unit_test/mln_subsampling_essential.cc,
* tests/unit_test/mln_level_abs.cc,
* tests/unit_test/mln_value_sign.cc,
* tests/unit_test/mln_arith_revert.cc,
* tests/unit_test/mln_convert_to_p_array.cc,
* tests/unit_test/mln_linear_ch_convolve.cc,
* tests/unit_test/mln_util_greater_point.cc,
* tests/unit_test/mln_fun_internal_x2x_linear_impl.cc,
* tests/unit_test/mln_fun_cast.cc,
* tests/unit_test/mln_core_image_flat_image.cc,
* tests/unit_test/mln_set_essential.cc,
* tests/unit_test/mln_literal_essential.cc,
* tests/unit_test/mln_topo_complex_iterators.cc,
* tests/unit_test/mln_accu_transform_diagonal.cc,
* tests/unit_test/mln_core_internal_geom_bbox.cc,
* tests/unit_test/mln_core_alias_box2d_h.cc,
* tests/unit_test/mln_fun_p2v_all.cc,
* tests/unit_test/mln_fun_vv2v_land.cc,
* tests/unit_test/mln_core_site_set_p_vertices.cc,
* tests/unit_test/mln_core_alias_dpoint2d_h.cc,
* tests/unit_test/mln_essential_2d.cc,
* tests/unit_test/mln_util_site_pair.cc,
* tests/unit_test/mln_trait_op_geq.cc,
* tests/unit_test/mln_pw_all.cc,
* tests/unit_test/mln_core_site_set_p_vertices_psite.cc,
* tests/unit_test/mln_core_image_image3d.cc,
* tests/unit_test/mln_value_builtin_symbolics.cc,
* tests/unit_test/mln_registration_internal_rms.cc,
* tests/unit_test/mln_core_internal_morpher_lvalue.cc,
* tests/unit_test/mln_border_thickness.cc,
* tests/unit_test/mln_logical_not.cc,
* tests/unit_test/mln_core_concept_doc_value_set.cc,
* tests/unit_test/mln_fun_i2v_all.cc,
* tests/unit_test/mln_math_essential.cc,
* tests/unit_test/mln_util_internal_boost_graph.cc,
* tests/unit_test/mln_value_internal_all.cc,
* tests/unit_test/mln_fun_p2v_elifs.cc,
* tests/unit_test/mln_accu_all.cc,
* tests/unit_test/mln_level_fill_with_value.cc,
* tests/unit_test/mln_util_internal_boost_graph_property.cc,
* tests/unit_test/mln_registration_icp.cc,
* tests/unit_test/mln_core_internal_pixel_impl.cc,
* tests/unit_test/mln_fun_x2x_translation.cc,
* tests/unit_test/mln_morpho_plus.cc,
* tests/unit_test/mln_util_internal_graph_iter_base.cc,
* tests/unit_test/mln_topo_complex.cc,
* tests/unit_test/mln_trait_op_decl.cc,
* tests/unit_test/mln_metal_is_not_ref.cc,
* tests/unit_test/mln_trait_op_xor.cc,
* tests/unit_test/mln_accu_mean.cc,
* tests/unit_test/mln_morpho_essential.cc,
* tests/unit_test/mln_make_box3d.cc,
* tests/unit_test/mln_fun_v2b_threshold.cc,
* tests/unit_test/mln_border_find.cc,
* tests/unit_test/mln_core_internal_box_impl.cc,
* tests/unit_test/mln_histo_all.cc,
* tests/unit_test/mln_make_pixel.cc,
* tests/unit_test/mln_math_abs.cc,
* tests/unit_test/mln_extension_adjust_duplicate.cc,
* tests/unit_test/mln_core_concept_dpoint.cc,
* tests/unit_test/mln_core_site_set_complex_psite.cc,
* tests/unit_test/mln_core_internal_neighb_niter_impl.cc,
* tests/unit_test/mln_convert_to_image.cc,
* tests/unit_test/mln_literal_all.cc,
* tests/unit_test/mln_trait_value_kind.cc,
Makefile.am | 3714 ++++++++--------
build_unit_test.sh | 22
mln_accu_all.cc | 5
mln_accu_bbox.cc | 5
mln_accu_center.cc | 5
mln_accu_compute.cc | 5
mln_accu_convolve.cc | 5
mln_accu_count.cc | 5
mln_accu_count_adjacent_vertices.cc | 5
mln_accu_essential.cc | 5
mln_accu_height.cc | 5
mln_accu_histo.cc | 5
mln_accu_internal_base.cc | 5
mln_accu_land.cc | 5
mln_accu_land_basic.cc | 5
mln_accu_line.cc | 5
mln_accu_lor.cc | 5
mln_accu_lor_basic.cc | 5
mln_accu_maj_h.cc | 5
mln_accu_max.cc | 5
mln_accu_max_h.cc | 5
mln_accu_mean.cc | 5
mln_accu_median_alt.cc | 5
mln_accu_median_h.cc | 5
mln_accu_min.cc | 5
mln_accu_min_h.cc | 5
mln_accu_min_max.cc | 5
mln_accu_nil.cc | 5
mln_accu_p.cc | 5
mln_accu_pair.cc | 5
mln_accu_rank.cc | 5
mln_accu_rank_bool.cc | 5
mln_accu_rank_high_quant.cc | 5
mln_accu_sum.cc | 5
mln_accu_take.cc | 5
mln_accu_transform.cc | 5
mln_accu_transform_diagonal.cc | 5
mln_accu_transform_directional.cc | 5
mln_accu_transform_snake.cc | 5
mln_accu_transform_stop.cc | 5
mln_accu_tuple.cc | 5
mln_accu_v.cc | 5
mln_accu_volume.cc | 5
mln_algebra_all.cc | 5
mln_algebra_essential.cc | 5
mln_algebra_h_mat.cc | 5
mln_algebra_h_vec.cc | 5
mln_algebra_mat.cc | 5
mln_algebra_quat.cc | 5
mln_algebra_vec.cc | 5
mln_all.cc | 5
mln_arith_all.cc | 5
mln_arith_diff_abs.cc | 5
mln_arith_essential.cc | 5
mln_arith_includes.cc | 5
mln_arith_min.cc | 5
mln_arith_minus.cc | 5
mln_arith_plus.cc | 5
mln_arith_revert.cc | 5
mln_arith_times.cc | 5
mln_binarization_all.cc | 5
mln_binarization_binarization.cc | 5
mln_binarization_essential.cc | 5
mln_binarization_includes.cc | 5
mln_binarization_threshold.cc | 5
mln_border_adjust.cc | 5
mln_border_all.cc | 5
mln_border_duplicate.cc | 5
mln_border_equalize.cc | 5
mln_border_essential.cc | 5
mln_border_fill.cc | 5
mln_border_find.cc | 5
mln_border_get.cc | 5
mln_border_mirror.cc | 5
mln_border_resize.cc | 5
mln_border_thickness.cc | 5
mln_canvas_all.cc | 5
mln_canvas_browsing_all.cc | 5
mln_canvas_browsing_backdiagonal2d.cc | 5
mln_canvas_browsing_depth_first_search.cc | 5
mln_canvas_browsing_diagonal2d.cc | 5
mln_canvas_browsing_dir_struct_elt_incr_update.cc | 5
mln_canvas_browsing_directional.cc | 5
mln_canvas_browsing_essential.cc | 5
mln_canvas_browsing_fwd.cc | 5
mln_canvas_browsing_hyper_directional.cc | 5
mln_canvas_browsing_snake_fwd.cc | 5
mln_canvas_browsing_snake_generic.cc | 5
mln_canvas_browsing_snake_vert.cc | 5
mln_canvas_chamfer.cc | 5
mln_canvas_distance_front.cc | 5
mln_canvas_distance_geodesic.cc | 5
mln_canvas_essential.cc | 5
mln_canvas_labeling.cc | 5
mln_canvas_morpho_algebraic_union_find.cc | 5
mln_canvas_morpho_all.cc | 5
mln_canvas_morpho_essential.cc | 5
mln_convert_all.cc | 5
mln_convert_essential.cc | 5
mln_convert_from_to.cc | 5
mln_convert_impl_all.cc | 5
mln_convert_impl_from_image_to_site_set.cc | 5
mln_convert_impl_from_value_to_value.cc | 5
mln_convert_to.cc | 5
mln_convert_to_dpoint.cc | 5
mln_convert_to_fun.cc | 5
mln_convert_to_image.cc | 5
mln_convert_to_p_array.cc | 5
mln_convert_to_p_set.cc | 5
mln_convert_to_rgb.cc | 5
mln_convert_to_upper_window.cc | 5
mln_convert_to_window.cc | 5
mln_core_a_point_of.cc | 5
mln_core_alias_box1d.cc | 5
mln_core_alias_box2d.cc | 5
mln_core_alias_box2d_h.cc | 5
mln_core_alias_box3d.cc | 5
mln_core_alias_complex_geometry.cc | 5
mln_core_alias_complex_image.cc | 5
mln_core_alias_dpoint1d.cc | 5
mln_core_alias_dpoint2d.cc | 5
mln_core_alias_dpoint2d_h.cc | 5
mln_core_alias_dpoint3d.cc | 5
mln_core_alias_neighb1d.cc | 5
mln_core_alias_neighb2d.cc | 5
mln_core_alias_neighb3d.cc | 5
mln_core_alias_p_run2d.cc | 5
mln_core_alias_p_runs2d.cc | 5
mln_core_alias_point1d.cc | 5
mln_core_alias_point2d.cc | 5
mln_core_alias_point2d_h.cc | 5
mln_core_alias_point3d.cc | 5
mln_core_alias_point3df.cc | 5
mln_core_alias_w_window1d_float.cc | 5
mln_core_alias_w_window1d_int.cc | 5
mln_core_alias_w_window2d_float.cc | 5
mln_core_alias_w_window2d_int.cc | 5
mln_core_alias_w_window3d_float.cc | 5
mln_core_alias_w_window3d_int.cc | 5
mln_core_alias_window1d.cc | 5
mln_core_alias_window2d.cc | 5
mln_core_alias_window3d.cc | 5
mln_core_all.cc | 5
mln_core_box_runstart_piter.cc | 5
mln_core_category.cc | 5
mln_core_clock_neighb.cc | 5
mln_core_clock_neighb2d.cc | 5
mln_core_concept_accumulator.cc | 5
mln_core_concept_all.cc | 5
mln_core_concept_box.cc | 5
mln_core_concept_browsing.cc | 5
mln_core_concept_delta_point_site.cc | 5
mln_core_concept_doc_accumulator.cc | 5
mln_core_concept_doc_box.cc | 5
mln_core_concept_doc_dpoint.cc | 5
mln_core_concept_doc_generalized_pixel.cc | 5
mln_core_concept_doc_image.cc | 5
mln_core_concept_doc_image_fastest.cc | 5
mln_core_concept_doc_iterator.cc | 5
mln_core_concept_doc_neighborhood.cc | 5
mln_core_concept_doc_object.cc | 5
mln_core_concept_doc_pixel_iterator.cc | 5
mln_core_concept_doc_point_iterator.cc | 5
mln_core_concept_doc_point_site.cc | 5
mln_core_concept_doc_site_set.cc | 5
mln_core_concept_doc_value_iterator.cc | 5
mln_core_concept_doc_value_set.cc | 5
mln_core_concept_doc_weighted_window.cc | 5
mln_core_concept_doc_window.cc | 5
mln_core_concept_dpoint.cc | 5
mln_core_concept_function.cc | 5
mln_core_concept_gdpoint.cc | 5
mln_core_concept_generalized_pixel.cc | 5
mln_core_concept_gpoint.cc | 5
mln_core_concept_graph.cc | 5
mln_core_concept_image.cc | 5
mln_core_concept_iterator.cc | 5
mln_core_concept_literal.cc | 5
mln_core_concept_mesh.cc | 5
mln_core_concept_meta_accumulator.cc | 5
mln_core_concept_neighborhood.cc | 5
mln_core_concept_object.cc | 5
mln_core_concept_pixel_iterator.cc | 5
mln_core_concept_point.cc | 5
mln_core_concept_point_site.cc | 5
mln_core_concept_proxy.cc | 5
mln_core_concept_pseudo_site.cc | 5
mln_core_concept_regular_grid.cc | 5
mln_core_concept_site.cc | 5
mln_core_concept_site_iterator.cc | 5
mln_core_concept_site_proxy.cc | 5
mln_core_concept_site_set.cc | 5
mln_core_concept_value.cc | 5
mln_core_concept_value_iterator.cc | 5
mln_core_concept_value_set.cc | 5
mln_core_concept_weighted_window.cc | 5
mln_core_concept_window.cc | 5
mln_core_contract.cc | 5
mln_core_def_all.cc | 5
mln_core_def_coord.cc | 5
mln_core_def_coordf.cc | 5
mln_core_def_essential.cc | 5
mln_core_def_low_quant_nbits.cc | 5
mln_core_dpoint.cc | 5
mln_core_dpoints_pixter.cc | 5
mln_core_dpsites_piter.cc | 5
mln_core_essential.cc | 5
mln_core_faces_psite.cc | 5
mln_core_grids.cc | 5
mln_core_image_all.cc | 5
mln_core_image_bgraph_image.cc | 5
mln_core_image_bgraph_psite.cc | 5
mln_core_image_cast_image.cc | 5
mln_core_image_ch_piter.cc | 5
mln_core_image_complex_image.cc | 5
mln_core_image_complex_neighborhood_piter.cc | 5
mln_core_image_complex_neighborhoods.cc | 5
mln_core_image_complex_window_piter.cc | 5
mln_core_image_complex_windows.cc | 5
mln_core_image_decorated_image.cc | 5
mln_core_image_essential.cc | 5
mln_core_image_extended.cc | 5
mln_core_image_extension_fun.cc | 5
mln_core_image_extension_ima.cc | 5
mln_core_image_extension_val.cc | 5
mln_core_image_fi_adaptor.cc | 5
mln_core_image_flat_image.cc | 5
mln_core_image_graph_elt_window.cc | 5
mln_core_image_graph_image.cc | 5
mln_core_image_graph_window_piter.cc | 5
mln_core_image_hexa.cc | 5
mln_core_image_hexa_piter.cc | 5
mln_core_image_image1d.cc | 5
mln_core_image_image2d.cc | 5
mln_core_image_image2d_h.cc | 5
mln_core_image_image3d.cc | 5
mln_core_image_image_if.cc | 5
mln_core_image_interpolated.cc | 5
mln_core_image_lazy_image.cc | 5
mln_core_image_line_graph_elt_window.cc | 5
mln_core_image_line_graph_image.cc | 5
mln_core_image_mono_obased_rle_encode.cc | 5
mln_core_image_mono_obased_rle_image.cc | 5
mln_core_image_mono_rle_encode.cc | 5
mln_core_image_mono_rle_image.cc | 5
mln_core_image_obased_rle_encode.cc | 5
mln_core_image_obased_rle_image.cc | 5
mln_core_image_plain.cc | 5
mln_core_image_rle_encode.cc | 5
mln_core_image_rle_image.cc | 5
mln_core_image_safe.cc | 5
mln_core_image_sparse_encode.cc | 5
mln_core_image_sparse_image.cc | 5
mln_core_image_sub_image.cc | 5
mln_core_image_sub_image_if.cc | 5
mln_core_image_t_image.cc | 5
mln_core_image_tr_image.cc | 5
mln_core_image_tr_mesh.cc | 5
mln_core_image_value_enc_image.cc | 5
mln_core_image_value_encode.cc | 5
mln_core_internal_box_impl.cc | 5
mln_core_internal_check_image_all.cc | 5
mln_core_internal_check_image_fastest.cc | 5
mln_core_internal_classical_window_base.cc | 5
mln_core_internal_complex_neighborhood_base.cc | 5
mln_core_internal_complex_window_p_base.cc | 5
mln_core_internal_coord_impl.cc | 5
mln_core_internal_data.cc | 5
mln_core_internal_exact.cc | 5
mln_core_internal_fixme.cc | 5
mln_core_internal_force_exact.cc | 5
mln_core_internal_geom_bbox.cc | 5
mln_core_internal_graph_psite_base.cc | 5
mln_core_internal_graph_window_base.cc | 5
mln_core_internal_image_base.cc | 5
mln_core_internal_image_domain_morpher.cc | 5
mln_core_internal_image_identity.cc | 5
mln_core_internal_image_morpher.cc | 5
mln_core_internal_image_primary.cc | 5
mln_core_internal_image_value_morpher.cc | 5
mln_core_internal_morpher_lvalue.cc | 5
mln_core_internal_neighb_niter_impl.cc | 5
mln_core_internal_neighborhood_base.cc | 5
mln_core_internal_p_complex_piter_base.cc | 5
mln_core_internal_piter_adaptor.cc | 5
mln_core_internal_pixel_impl.cc | 5
mln_core_internal_pixel_iterator_base.cc | 5
mln_core_internal_pseudo_site_base.cc | 5
mln_core_internal_run_image.cc | 5
mln_core_internal_set_of.cc | 5
mln_core_internal_site_iterator_base.cc | 5
mln_core_internal_site_relative_iterator_base.cc | 5
mln_core_internal_site_set_base.cc | 5
mln_core_internal_site_set_impl.cc | 5
mln_core_internal_site_set_iterator_base.cc | 5
mln_core_internal_weighted_window_base.cc | 5
mln_core_internal_window_base.cc | 5
mln_core_macros.cc | 5
mln_core_neighb.cc | 5
mln_core_pixel.cc | 5
mln_core_pixter1d.cc | 5
mln_core_pixter2d.cc | 5
mln_core_pixter3d.cc | 5
mln_core_point.cc | 5
mln_core_routine_all.cc | 5
mln_core_routine_clone.cc | 5
mln_core_routine_essential.cc | 5
mln_core_routine_exact.cc | 5
mln_core_routine_extend.cc | 5
mln_core_routine_init.cc | 5
mln_core_routine_initialize.cc | 5
mln_core_routine_ops.cc | 5
mln_core_routine_primary.cc | 5
mln_core_site_set_all.cc | 5
mln_core_site_set_attic_p_complex_faces_piter.cc | 5
mln_core_site_set_attic_p_faces_piter.cc | 5
mln_core_site_set_box.cc | 5
mln_core_site_set_box_piter.cc | 5
mln_core_site_set_complex_psite.cc | 5
mln_core_site_set_essential.cc | 5
mln_core_site_set_operators.cc | 5
mln_core_site_set_p_array.cc | 5
mln_core_site_set_p_bgraph.cc | 5
mln_core_site_set_p_bgraph_piter.cc | 5
mln_core_site_set_p_centered.cc | 5
mln_core_site_set_p_complex.cc | 5
mln_core_site_set_p_complex_piter.cc | 5
mln_core_site_set_p_double.cc | 5
mln_core_site_set_p_edges.cc | 5
mln_core_site_set_p_edges_psite.cc | 5
mln_core_site_set_p_faces.cc | 5
mln_core_site_set_p_graph_piter.cc | 5
mln_core_site_set_p_if.cc | 5
mln_core_site_set_p_if_piter.cc | 5
mln_core_site_set_p_image.cc | 5
mln_core_site_set_p_key.cc | 5
mln_core_site_set_p_line2d.cc | 5
mln_core_site_set_p_mutable_array_of.cc | 5
mln_core_site_set_p_n_faces_piter.cc | 5
mln_core_site_set_p_priority.cc | 5
mln_core_site_set_p_queue.cc | 5
mln_core_site_set_p_queue_fast.cc | 5
mln_core_site_set_p_run.cc | 5
mln_core_site_set_p_run_piter.cc | 5
mln_core_site_set_p_set.cc | 5
mln_core_site_set_p_set_of.cc | 5
mln_core_site_set_p_vaccess.cc | 5
mln_core_site_set_p_vertices.cc | 5
mln_core_site_set_p_vertices_psite.cc | 5
mln_core_tags.cc | 5
mln_core_trait_all.cc | 5
mln_core_trait_essential.cc | 5
mln_core_trait_op_mult.cc | 5
mln_core_trait_pixter.cc | 5
mln_core_trait_qlf_value.cc | 5
mln_core_var.cc | 5
mln_core_w_window.cc | 5
mln_core_window.cc | 5
mln_debug_all.cc | 5
mln_debug_colorize.cc | 5
mln_debug_draw_graph.cc | 5
mln_debug_essential.cc | 5
mln_debug_format.cc | 5
mln_debug_iota.cc | 5
mln_debug_println.cc | 5
mln_debug_println_with_border.cc | 5
mln_debug_put_word.cc | 5
mln_display_all.cc | 5
mln_display_essential.cc | 5
mln_draw_all.cc | 5
mln_draw_box.cc | 5
mln_draw_essential.cc | 5
mln_draw_line.cc | 5
mln_draw_plot.cc | 5
mln_essential_1d.cc | 5
mln_essential_2d.cc | 5
mln_essential_3d.cc | 5
mln_essential_routine.cc | 5
mln_estim_all.cc | 5
mln_estim_essential.cc | 5
mln_estim_mean.cc | 5
mln_estim_min_max.cc | 5
mln_estim_sum.cc | 5
mln_extension_adjust.cc | 5
mln_extension_adjust_duplicate.cc | 5
mln_extension_adjust_fill.cc | 5
mln_extension_all.cc | 5
mln_extension_duplicate.cc | 5
mln_extension_essential.cc | 5
mln_extension_fill.cc | 5
mln_fun_all.cc | 5
mln_fun_c.cc | 5
mln_fun_cast.cc | 5
mln_fun_essential.cc | 5
mln_fun_i2v_all.cc | 5
mln_fun_i2v_all_to.cc | 5
mln_fun_i2v_array.cc | 5
mln_fun_i2v_essential.cc | 5
mln_fun_internal_array_base.cc | 5
mln_fun_internal_selector.cc | 5
mln_fun_internal_x2x_linear_impl.cc | 5
mln_fun_l2l_all.cc | 5
mln_fun_l2l_essential.cc | 5
mln_fun_l2l_relabel.cc | 5
mln_fun_ops.cc | 5
mln_fun_p2b_all.cc | 5
mln_fun_p2b_big_chess.cc | 5
mln_fun_p2b_chess.cc | 5
mln_fun_p2b_essential.cc | 5
mln_fun_p2b_has.cc | 5
mln_fun_p2p_mirror.cc | 5
mln_fun_p2v_all.cc | 5
mln_fun_p2v_elifs.cc | 5
mln_fun_p2v_essential.cc | 5
mln_fun_p2v_iota.cc | 5
mln_fun_p2v_ternary.cc | 5
mln_fun_v2b_all.cc | 5
mln_fun_v2b_essential.cc | 5
mln_fun_v2b_lnot.cc | 5
mln_fun_v2b_threshold.cc | 5
mln_fun_v2v_abs.cc | 5
mln_fun_v2v_all.cc | 5
mln_fun_v2v_cast.cc | 5
mln_fun_v2v_convert.cc | 5
mln_fun_v2v_dec.cc | 5
mln_fun_v2v_enc.cc | 5
mln_fun_v2v_essential.cc | 5
mln_fun_v2v_id.cc | 5
mln_fun_v2v_inc.cc | 5
mln_fun_v2v_linear.cc | 5
mln_fun_v2v_norm.cc | 5
mln_fun_v2v_rgb_to_hsi.cc | 5
mln_fun_v2v_saturate.cc | 5
mln_fun_vv2v_all.cc | 5
mln_fun_vv2v_diff_abs.cc | 5
mln_fun_vv2v_essential.cc | 5
mln_fun_vv2v_land.cc | 5
mln_fun_vv2v_land_not.cc | 5
mln_fun_vv2v_lor.cc | 5
mln_fun_vv2v_lxor.cc | 5
mln_fun_vv2v_macros.cc | 5
mln_fun_vv2v_max.cc | 5
mln_fun_vv2v_min.cc | 5
mln_fun_vv2v_vec.cc | 5
mln_fun_x2p_all.cc | 5
mln_fun_x2p_closest_point.cc | 5
mln_fun_x2p_essential.cc | 5
mln_fun_x2v_all.cc | 5
mln_fun_x2v_bilinear.cc | 5
mln_fun_x2v_essential.cc | 5
mln_fun_x2v_l1_norm.cc | 5
mln_fun_x2v_linear.cc | 5
mln_fun_x2v_nneighbor.cc | 5
mln_fun_x2x_all.cc | 5
mln_fun_x2x_composed.cc | 5
mln_fun_x2x_essential.cc | 5
mln_fun_x2x_rotation.cc | 5
mln_fun_x2x_translation.cc | 5
mln_geom_all.cc | 5
mln_geom_bbox.cc | 5
mln_geom_chamfer.cc | 5
mln_geom_complex_geometry.cc | 5
mln_geom_delta.cc | 5
mln_geom_essential.cc | 5
mln_geom_max_col.cc | 5
mln_geom_max_ind.cc | 5
mln_geom_max_row.cc | 5
mln_geom_max_sli.cc | 5
mln_geom_min_col.cc | 5
mln_geom_min_ind.cc | 5
mln_geom_min_row.cc | 5
mln_geom_min_sli.cc | 5
mln_geom_ncols.cc | 5
mln_geom_ninds.cc | 5
mln_geom_nrows.cc | 5
mln_geom_nsites.cc | 5
mln_geom_nslis.cc | 5
mln_geom_pmin_pmax.cc | 5
mln_geom_resize.cc | 5
mln_geom_seeds2tiling.cc | 5
mln_geom_seeds2tiling_roundness.cc | 5
mln_geom_size1d.cc | 5
mln_geom_size2d.cc | 5
mln_geom_size3d.cc | 5
mln_histo_all.cc | 5
mln_histo_compute.cc | 5
mln_histo_data.cc | 5
mln_histo_essential.cc | 5
mln_io_abort.cc | 5
mln_io_all.cc | 5
mln_io_essential.cc | 5
mln_io_fits_all.cc | 5
mln_io_fits_load.cc | 5
mln_io_off_all.cc | 5
mln_io_off_load.cc | 5
mln_io_off_save.cc | 5
mln_io_pbm_all.cc | 5
mln_io_pbm_load.cc | 5
mln_io_pbm_save.cc | 5
mln_io_pfm_all.cc | 5
mln_io_pfm_load.cc | 5
mln_io_pfm_save.cc | 5
mln_io_pgm_all.cc | 5
mln_io_pgm_load.cc | 5
mln_io_pgm_save.cc | 5
mln_io_pnm_all.cc | 5
mln_io_pnm_load.cc | 5
mln_io_pnm_load_header.cc | 5
mln_io_pnm_macros.cc | 5
mln_io_pnm_max_component.cc | 5
mln_io_pnm_save.cc | 5
mln_io_pnm_save_header.cc | 5
mln_io_ppm_all.cc | 5
mln_io_ppm_load.cc | 5
mln_io_ppm_save.cc | 5
mln_io_txt_all.cc | 5
mln_io_txt_save.cc | 5
mln_labeling_all.cc | 5
mln_labeling_background.cc | 5
mln_labeling_blobs.cc | 5
mln_labeling_compute.cc | 5
mln_labeling_essential.cc | 5
mln_labeling_flat_zones.cc | 5
mln_labeling_foreground.cc | 5
mln_labeling_level.cc | 5
mln_labeling_regional_maxima.cc | 5
mln_labeling_regional_minima.cc | 5
mln_labeling_relabel.cc | 5
mln_level_abs.cc | 5
mln_level_all.cc | 5
mln_level_apply.cc | 5
mln_level_approx_all.cc | 5
mln_level_approx_essential.cc | 5
mln_level_approx_median.cc | 5
mln_level_assign.cc | 5
mln_level_compare.cc | 5
mln_level_compute.cc | 5
mln_level_convert.cc | 5
mln_level_essential.cc | 5
mln_level_fast_median.cc | 5
mln_level_fill.cc | 5
mln_level_fill_with_image.cc | 5
mln_level_fill_with_value.cc | 5
mln_level_median.cc | 5
mln_level_memcpy_.cc | 5
mln_level_memset_.cc | 5
mln_level_naive_all.cc | 5
mln_level_naive_essential.cc | 5
mln_level_naive_median.cc | 5
mln_level_paste.cc | 5
mln_level_replace.cc | 5
mln_level_saturate.cc | 5
mln_level_sort_psites.cc | 5
mln_level_stretch.cc | 5
mln_level_to_enc.cc | 5
mln_level_transform.cc | 5
mln_level_transform_inplace.cc | 5
mln_level_update.cc | 5
mln_level_was_median.cc | 5
mln_linear_all.cc | 5
mln_linear_ch_convolve.cc | 5
mln_linear_convolve.cc | 5
mln_linear_convolve_2x1d.cc | 5
mln_linear_convolve_directional.cc | 5
mln_linear_essential.cc | 5
mln_linear_gaussian.cc | 5
mln_linear_lap.cc | 5
mln_linear_local_convolve.cc | 5
mln_linear_log.cc | 5
mln_linear_sobel_2d.cc | 5
mln_literal_all.cc | 5
mln_literal_black.cc | 5
mln_literal_colors.cc | 5
mln_literal_essential.cc | 5
mln_literal_grays.cc | 5
mln_literal_one.cc | 5
mln_literal_ops.cc | 5
mln_literal_origin.cc | 5
mln_literal_white.cc | 5
mln_literal_zero.cc | 5
mln_logical_all.cc | 5
mln_logical_and.cc | 5
mln_logical_and_not.cc | 5
mln_logical_essential.cc | 5
mln_logical_includes.cc | 5
mln_logical_not.cc | 5
mln_logical_or.cc | 5
mln_logical_xor.cc | 5
mln_make_all.cc | 5
mln_make_box1d.cc | 5
mln_make_box2d.cc | 5
mln_make_box2d_h.cc | 5
mln_make_box3d.cc | 5
mln_make_double_neighb2d.cc | 5
mln_make_dpoint2d_h.cc | 5
mln_make_dual_neighb.cc | 5
mln_make_essential.cc | 5
mln_make_graph.cc | 5
mln_make_image.cc | 5
mln_make_image2d.cc | 5
mln_make_mat.cc | 5
mln_make_pix.cc | 5
mln_make_pixel.cc | 5
mln_make_point2d_h.cc | 5
mln_make_relabelfun.cc | 5
mln_make_vec.cc | 5
mln_make_voronoi.cc | 5
mln_make_w_window.cc | 5
mln_make_w_window1d.cc | 5
mln_make_w_window1d_int.cc | 5
mln_make_w_window2d.cc | 5
mln_make_w_window2d_int.cc | 5
mln_make_w_window3d.cc | 5
mln_make_w_window3d_int.cc | 5
mln_make_w_window_directional.cc | 5
mln_make_win_chamfer.cc | 5
mln_math_abs.cc | 5
mln_math_all.cc | 5
mln_math_diff_abs.cc | 5
mln_math_essential.cc | 5
mln_math_jacobi.cc | 5
mln_math_max.cc | 5
mln_math_min.cc | 5
mln_math_round.cc | 5
mln_math_round_sat.cc | 5
mln_math_sign.cc | 5
mln_math_sqr.cc | 5
mln_math_sqrt.cc | 5
mln_metal_abort.cc | 5
mln_metal_all.cc | 5
mln_metal_ands.cc | 5
mln_metal_array.cc | 5
mln_metal_array1d.cc | 5
mln_metal_array2d.cc | 5
mln_metal_array3d.cc | 5
mln_metal_bexpr.cc | 5
mln_metal_bool.cc | 5
mln_metal_const.cc | 5
mln_metal_converts_to.cc | 5
mln_metal_equal.cc | 5
mln_metal_essential.cc | 5
mln_metal_fix_return.cc | 5
mln_metal_goes_to.cc | 5
mln_metal_has_neighborhood.cc | 5
mln_metal_if.cc | 5
mln_metal_int.cc | 5
mln_metal_is.cc | 5
mln_metal_is_a.cc | 5
mln_metal_is_const.cc | 5
mln_metal_is_not.cc | 5
mln_metal_is_not_a.cc | 5
mln_metal_is_not_const.cc | 5
mln_metal_is_not_ref.cc | 5
mln_metal_is_ref.cc | 5
mln_metal_is_unqualif.cc | 5
mln_metal_mat.cc | 5
mln_metal_math_all.cc | 5
mln_metal_math_max.cc | 5
mln_metal_math_pow.cc | 5
mln_metal_math_root.cc | 5
mln_metal_math_sqrt.cc | 5
mln_metal_none.cc | 5
mln_metal_not_equal.cc | 5
mln_metal_ref.cc | 5
mln_metal_ret.cc | 5
mln_metal_same_coord.cc | 5
mln_metal_same_point.cc | 5
mln_metal_templated_by.cc | 5
mln_metal_unconst.cc | 5
mln_metal_unptr.cc | 5
mln_metal_unqualif.cc | 5
mln_metal_unref.cc | 5
mln_metal_vec.cc | 5
mln_morpho_Rd.cc | 5
mln_morpho_all.cc | 5
mln_morpho_closing.cc | 5
mln_morpho_closing_area.cc | 5
mln_morpho_closing_area_on_vertices.cc | 5
mln_morpho_closing_attribute.cc | 5
mln_morpho_closing_height.cc | 5
mln_morpho_closing_volume.cc | 5
mln_morpho_complementation.cc | 5
mln_morpho_contrast.cc | 5
mln_morpho_dilation.cc | 5
mln_morpho_elementary_all.cc | 5
mln_morpho_elementary_closing.cc | 5
mln_morpho_elementary_dilation.cc | 5
mln_morpho_elementary_erosion.cc | 5
mln_morpho_elementary_essential.cc | 5
mln_morpho_elementary_gradient.cc | 5
mln_morpho_elementary_gradient_external.cc | 5
mln_morpho_elementary_gradient_internal.cc | 5
mln_morpho_elementary_laplacian.cc | 5
mln_morpho_elementary_like_ero_fun.cc | 5
mln_morpho_elementary_like_ero_set.cc | 5
mln_morpho_elementary_opening.cc | 5
mln_morpho_elementary_top_hat.cc | 5
mln_morpho_erosion.cc | 5
mln_morpho_essential.cc | 5
mln_morpho_general.cc | 5
mln_morpho_gradient.cc | 5
mln_morpho_hit_or_miss.cc | 5
mln_morpho_includes.cc | 5
mln_morpho_internal_elementary.cc | 5
mln_morpho_laplacian.cc | 5
mln_morpho_line_gradient.cc | 5
mln_morpho_meyer_wst.cc | 5
mln_morpho_min.cc | 5
mln_morpho_minus.cc | 5
mln_morpho_opening.cc | 5
mln_morpho_opening_area.cc | 5
mln_morpho_opening_area_on_vertices.cc | 5
mln_morpho_opening_attribute.cc | 5
mln_morpho_opening_height.cc | 5
mln_morpho_opening_volume.cc | 5
mln_morpho_plus.cc | 5
mln_morpho_rank_filter.cc | 5
mln_morpho_skeleton_constrained.cc | 5
mln_morpho_thick_miss.cc | 5
mln_morpho_thickening.cc | 5
mln_morpho_thin_fit.cc | 5
mln_morpho_thinning.cc | 5
mln_morpho_top_hat.cc | 5
mln_morpho_tree_all.cc | 5
mln_morpho_tree_compute_attribute_image.cc | 5
mln_morpho_tree_compute_parent.cc | 5
mln_morpho_tree_data.cc | 5
mln_morpho_tree_max.cc | 5
mln_morpho_tree_utils.cc | 5
mln_norm_all.cc | 5
mln_norm_essential.cc | 5
mln_norm_l1.cc | 5
mln_norm_l2.cc | 5
mln_norm_linfty.cc | 5
mln_pw_all.cc | 5
mln_pw_cst.cc | 5
mln_pw_essential.cc | 5
mln_pw_image.cc | 5
mln_pw_value.cc | 5
mln_pw_var.cc | 5
mln_registration_all.cc | 5
mln_registration_essential.cc | 5
mln_registration_get_rot.cc | 5
mln_registration_get_rtransf.cc | 5
mln_registration_icp.cc | 5
mln_registration_internal_rms.cc | 5
mln_registration_multiscale.cc | 5
mln_registration_registration.cc | 5
mln_set_all.cc | 5
mln_set_compute.cc | 5
mln_set_diff.cc | 5
mln_set_essential.cc | 5
mln_set_get.cc | 5
mln_set_has.cc | 5
mln_set_inter.cc | 5
mln_set_sym_diff.cc | 5
mln_set_uni.cc | 5
mln_subsampling_all.cc | 5
mln_subsampling_essential.cc | 5
mln_subsampling_gaussian_subsampling.cc | 5
mln_subsampling_subsampling.cc | 5
mln_tag_all.cc | 5
mln_tag_essential.cc | 5
mln_tag_init.cc | 5
mln_tag_skeleton.cc | 5
mln_test_all.cc | 5
mln_test_essential.cc | 5
mln_test_positive.cc | 5
mln_test_predicate.cc | 5
mln_topo_adj_higher_dim_connected_n_face_iter.cc | 5
mln_topo_adj_higher_face_iter.cc | 5
mln_topo_adj_lower_dim_connected_n_face_iter.cc | 5
mln_topo_adj_lower_face_iter.cc | 5
mln_topo_adj_lower_higher_face_iter.cc | 5
mln_topo_adj_m_face_iter.cc | 5
mln_topo_algebraic_face.cc | 5
mln_topo_algebraic_n_face.cc | 5
mln_topo_all.cc | 5
mln_topo_attic_faces_iter.cc | 5
mln_topo_center_only_iter.cc | 5
mln_topo_centered_iter_adapter.cc | 5
mln_topo_complex.cc | 5
mln_topo_complex_iterators.cc | 5
mln_topo_essential.cc | 5
mln_topo_face.cc | 5
mln_topo_face_data.cc | 5
mln_topo_face_iter.cc | 5
mln_topo_internal_complex_iterator_base.cc | 5
mln_topo_internal_complex_relative_iterator_base.cc | 5
mln_topo_internal_complex_relative_iterator_sequence.cc | 5
mln_topo_internal_complex_set_iterator_base.cc | 5
mln_topo_is_simple_2d.cc | 5
mln_topo_n_face.cc | 5
mln_topo_n_face_iter.cc | 5
mln_topo_n_faces_set.cc | 5
mln_topo_static_n_face_iter.cc | 5
mln_trace_all.cc | 5
mln_trace_entering.cc | 5
mln_trace_essential.cc | 5
mln_trace_exiting.cc | 5
mln_trace_quiet.cc | 5
mln_trace_resume.cc | 5
mln_trace_stop.cc | 5
mln_trace_warning.cc | 5
mln_trait_all.cc | 5
mln_trait_ch_value.cc | 5
mln_trait_concrete.cc | 5
mln_trait_essential.cc | 5
mln_trait_image_from_grid.cc | 5
mln_trait_image_print.cc | 5
mln_trait_image_props.cc | 5
mln_trait_images.cc | 5
mln_trait_neighborhood.cc | 5
mln_trait_op_all.cc | 5
mln_trait_op_and.cc | 5
mln_trait_op_decl.cc | 5
mln_trait_op_div.cc | 5
mln_trait_op_eq.cc | 5
mln_trait_op_essential.cc | 5
mln_trait_op_geq.cc | 5
mln_trait_op_greater.cc | 5
mln_trait_op_leq.cc | 5
mln_trait_op_less.cc | 5
mln_trait_op_lor.cc | 5
mln_trait_op_minus.cc | 5
mln_trait_op_mod.cc | 5
mln_trait_op_neq.cc | 5
mln_trait_op_not.cc | 5
mln_trait_op_or.cc | 5
mln_trait_op_ord.cc | 5
mln_trait_op_plus.cc | 5
mln_trait_op_postdec.cc | 5
mln_trait_op_postinc.cc | 5
mln_trait_op_predec.cc | 5
mln_trait_op_preinc.cc | 5
mln_trait_op_times.cc | 5
mln_trait_op_uminus.cc | 5
mln_trait_op_uplus.cc | 5
mln_trait_op_xor.cc | 5
mln_trait_promote.cc | 5
mln_trait_site_set_print.cc | 5
mln_trait_site_set_props.cc | 5
mln_trait_site_sets.cc | 5
mln_trait_solve.cc | 5
mln_trait_solve_binary.cc | 5
mln_trait_solve_unary.cc | 5
mln_trait_undef.cc | 5
mln_trait_value_.cc | 5
mln_trait_value_all.cc | 5
mln_trait_value_essential.cc | 5
mln_trait_value_kind.cc | 5
mln_trait_value_nature.cc | 5
mln_trait_value_print.cc | 5
mln_trait_value_quant.cc | 5
mln_trait_window_print.cc | 5
mln_trait_window_props.cc | 5
mln_trait_windows.cc | 5
mln_transform_all.cc | 5
mln_transform_distance_front.cc | 5
mln_transform_distance_geodesic.cc | 5
mln_transform_essential.cc | 5
mln_transform_influence_zone_front.cc | 5
mln_transform_influence_zone_geodesic.cc | 5
mln_transform_internal_all.cc | 5
mln_transform_internal_distance_functor.cc | 5
mln_transform_internal_influence_zone_functor.cc | 5
mln_util_all.cc | 5
mln_util_array.cc | 5
mln_util_branch_iter.cc | 5
mln_util_branch_iter_ind.cc | 5
mln_util_dindex.cc | 5
mln_util_eat.cc | 5
mln_util_edge.cc | 5
mln_util_essential.cc | 5
mln_util_graph.cc | 5
mln_util_greater_point.cc | 5
mln_util_greater_psite.cc | 5
mln_util_ignore.cc | 5
mln_util_index.cc | 5
mln_util_internal_boost_graph.cc | 5
mln_util_internal_boost_graph_access.cc | 5
mln_util_internal_boost_graph_property.cc | 5
mln_util_internal_boost_graph_structure.cc | 5
mln_util_internal_edge_impl.cc | 5
mln_util_internal_graph_base.cc | 5
mln_util_internal_graph_iter.cc | 5
mln_util_internal_graph_iter_base.cc | 5
mln_util_internal_graph_nbh_iter.cc | 5
mln_util_internal_graph_nbh_iter_base.cc | 5
mln_util_internal_vertex_impl.cc | 5
mln_util_lazy_set.cc | 5
mln_util_lemmings.cc | 5
mln_util_line_graph.cc | 5
mln_util_max.cc | 5
mln_util_multi_site.cc | 5
mln_util_nil.cc | 5
mln_util_ord.cc | 5
mln_util_ord_pair.cc | 5
mln_util_pix.cc | 5
mln_util_set.cc | 5
mln_util_site_pair.cc | 5
mln_util_timer.cc | 5
mln_util_tracked_ptr.cc | 5
mln_util_tree.cc | 5
mln_util_tree_fast.cc | 5
mln_util_tree_fast_to_image.cc | 5
mln_util_tree_to_fast.cc | 5
mln_util_tree_to_image.cc | 5
mln_util_vertex.cc | 5
mln_util_yes.cc | 5
mln_value_aliases.cc | 5
mln_value_all.cc | 5
mln_value_builtin_all.cc | 5
mln_value_builtin_essential.cc | 5
mln_value_builtin_floatings.cc | 5
mln_value_builtin_integers.cc | 5
mln_value_builtin_ops.cc | 5
mln_value_builtin_promotions.cc | 5
mln_value_builtin_symbolics.cc | 5
mln_value_cast.cc | 5
mln_value_concept_all.cc | 5
mln_value_concept_built_in.cc | 5
mln_value_concept_data.cc | 5
mln_value_concept_essential.cc | 5
mln_value_concept_floating.cc | 5
mln_value_concept_integer.cc | 5
mln_value_concept_scalar.cc | 5
mln_value_concept_structured.cc | 5
mln_value_concept_symbolic.cc | 5
mln_value_concept_vectorial.cc | 5
mln_value_equiv.cc | 5
mln_value_essential.cc | 5
mln_value_float01.cc | 5
mln_value_float01_.cc | 5
mln_value_float01_16.cc | 5
mln_value_float01_8.cc | 5
mln_value_float01_f.cc | 5
mln_value_gl16.cc | 5
mln_value_gl8.cc | 5
mln_value_glf.cc | 5
mln_value_graylevel.cc | 5
mln_value_graylevel_f.cc | 5
mln_value_hsi.cc | 5
mln_value_int_s.cc | 5
mln_value_int_s16.cc | 5
mln_value_int_s32.cc | 5
mln_value_int_s8.cc | 5
mln_value_int_u.cc | 5
mln_value_int_u16.cc | 5
mln_value_int_u32.cc | 5
mln_value_int_u8.cc | 5
mln_value_int_u_sat.cc | 5
mln_value_internal_all.cc | 5
mln_value_internal_convert.cc | 5
mln_value_internal_encoding.cc | 5
mln_value_internal_essential.cc | 5
mln_value_internal_gray_.cc | 5
mln_value_internal_gray_f.cc | 5
mln_value_internal_integer.cc | 5
mln_value_internal_iterable_set.cc | 5
mln_value_internal_value_like.cc | 5
mln_value_interval.cc | 5
mln_value_label.cc | 5
mln_value_label_16.cc | 5
mln_value_label_8.cc | 5
mln_value_lut_vec.cc | 5
mln_value_ops.cc | 5
mln_value_other.cc | 5
mln_value_proxy.cc | 5
mln_value_rgb.cc | 5
mln_value_rgb16.cc | 5
mln_value_rgb8.cc | 5
mln_value_scalar.cc | 5
mln_value_set.cc | 5
mln_value_sign.cc | 5
mln_value_stack.cc | 5
mln_value_super_value.cc | 5
mln_value_viter.cc | 5
mln_win_all.cc | 5
mln_win_backdiag2d.cc | 5
mln_win_cube3d.cc | 5
mln_win_cuboid3d.cc | 5
mln_win_diag2d.cc | 5
mln_win_diff.cc | 5
mln_win_disk2d.cc | 5
mln_win_essential.cc | 5
mln_win_hline2d.cc | 5
mln_win_inter.cc | 5
mln_win_line.cc | 5
mln_win_multiple.cc | 5
mln_win_multiple_size.cc | 5
mln_win_octagon2d.cc | 5
mln_win_rectangle2d.cc | 5
mln_win_segment1d.cc | 5
mln_win_shift.cc | 5
mln_win_sym.cc | 5
mln_win_vline2d.cc | 5
997 files changed, 5851 insertions(+), 2860 deletions(-)
Index: tests/unit_test/mln_core_contract.cc
--- tests/unit_test/mln_core_contract.cc (revision 3032)
+++ tests/unit_test/mln_core_contract.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/contract.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/contract.hh>
#include <mln/core/contract.hh>
int main()
Index: tests/unit_test/mln_win_all.cc
--- tests/unit_test/mln_win_all.cc (revision 3032)
+++ tests/unit_test/mln_win_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/all.hh>
#include <mln/win/all.hh>
int main()
Index: tests/unit_test/mln_canvas_distance_geodesic.cc
--- tests/unit_test/mln_canvas_distance_geodesic.cc (revision 3032)
+++ tests/unit_test/mln_canvas_distance_geodesic.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/distance_geodesic.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/distance_geodesic.hh>
#include <mln/canvas/distance_geodesic.hh>
int main()
Index: tests/unit_test/mln_accu_transform_snake.cc
--- tests/unit_test/mln_accu_transform_snake.cc (revision 3032)
+++ tests/unit_test/mln_accu_transform_snake.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/transform_snake.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/transform_snake.hh>
#include <mln/accu/transform_snake.hh>
int main()
Index: tests/unit_test/mln_win_backdiag2d.cc
--- tests/unit_test/mln_win_backdiag2d.cc (revision 3032)
+++ tests/unit_test/mln_win_backdiag2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/backdiag2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/backdiag2d.hh>
#include <mln/win/backdiag2d.hh>
int main()
Index: tests/unit_test/mln_geom_complex_geometry.cc
--- tests/unit_test/mln_geom_complex_geometry.cc (revision 3032)
+++ tests/unit_test/mln_geom_complex_geometry.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/complex_geometry.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/complex_geometry.hh>
#include <mln/geom/complex_geometry.hh>
int main()
Index: tests/unit_test/mln_core_alias_w_window2d_float.cc
--- tests/unit_test/mln_core_alias_w_window2d_float.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_w_window2d_float.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/w_window2d_float.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/w_window2d_float.hh>
#include <mln/core/alias/w_window2d_float.hh>
int main()
Index: tests/unit_test/mln_set_get.cc
--- tests/unit_test/mln_set_get.cc (revision 3032)
+++ tests/unit_test/mln_set_get.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/set/get.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/set/get.hh>
#include <mln/set/get.hh>
int main()
Index: tests/unit_test/mln_value_builtin_all.cc
--- tests/unit_test/mln_value_builtin_all.cc (revision 3032)
+++ tests/unit_test/mln_value_builtin_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/builtin/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/builtin/all.hh>
#include <mln/value/builtin/all.hh>
int main()
Index: tests/unit_test/mln_core_internal_coord_impl.cc
--- tests/unit_test/mln_core_internal_coord_impl.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_coord_impl.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/coord_impl.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/coord_impl.hh>
#include <mln/core/internal/coord_impl.hh>
int main()
Index: tests/unit_test/mln_registration_multiscale.cc
--- tests/unit_test/mln_registration_multiscale.cc (revision 3032)
+++ tests/unit_test/mln_registration_multiscale.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/registration/multiscale.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/registration/multiscale.hh>
#include <mln/registration/multiscale.hh>
int main()
Index: tests/unit_test/mln_display_all.cc
--- tests/unit_test/mln_display_all.cc (revision 3032)
+++ tests/unit_test/mln_display_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/display/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/display/all.hh>
#include <mln/display/all.hh>
int main()
Index: tests/unit_test/mln_metal_is_a.cc
--- tests/unit_test/mln_metal_is_a.cc (revision 3032)
+++ tests/unit_test/mln_metal_is_a.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/is_a.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/is_a.hh>
#include <mln/metal/is_a.hh>
int main()
Index: tests/unit_test/mln_topo_adj_lower_higher_face_iter.cc
--- tests/unit_test/mln_topo_adj_lower_higher_face_iter.cc (revision 3032)
+++ tests/unit_test/mln_topo_adj_lower_higher_face_iter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/adj_lower_higher_face_iter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/adj_lower_higher_face_iter.hh>
#include <mln/topo/adj_lower_higher_face_iter.hh>
int main()
Index: tests/unit_test/mln_util_graph.cc
--- tests/unit_test/mln_util_graph.cc (revision 3032)
+++ tests/unit_test/mln_util_graph.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/graph.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/graph.hh>
#include <mln/util/graph.hh>
int main()
Index: tests/unit_test/mln_accu_v.cc
--- tests/unit_test/mln_accu_v.cc (revision 3032)
+++ tests/unit_test/mln_accu_v.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/v.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/v.hh>
#include <mln/accu/v.hh>
int main()
Index: tests/unit_test/mln_canvas_chamfer.cc
--- tests/unit_test/mln_canvas_chamfer.cc (revision 3032)
+++ tests/unit_test/mln_canvas_chamfer.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/chamfer.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/chamfer.hh>
#include <mln/canvas/chamfer.hh>
int main()
Index: tests/unit_test/mln_algebra_h_vec.cc
--- tests/unit_test/mln_algebra_h_vec.cc (revision 3032)
+++ tests/unit_test/mln_algebra_h_vec.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/algebra/h_vec.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/algebra/h_vec.hh>
#include <mln/algebra/h_vec.hh>
int main()
Index: tests/unit_test/mln_trait_op_predec.cc
--- tests/unit_test/mln_trait_op_predec.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_predec.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/predec.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/predec.hh>
#include <mln/trait/op/predec.hh>
int main()
Index: tests/unit_test/mln_win_segment1d.cc
--- tests/unit_test/mln_win_segment1d.cc (revision 3032)
+++ tests/unit_test/mln_win_segment1d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/segment1d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/segment1d.hh>
#include <mln/win/segment1d.hh>
int main()
Index: tests/unit_test/mln_core_clock_neighb2d.cc
--- tests/unit_test/mln_core_clock_neighb2d.cc (revision 3032)
+++ tests/unit_test/mln_core_clock_neighb2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/clock_neighb2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/clock_neighb2d.hh>
#include <mln/core/clock_neighb2d.hh>
int main()
Index: tests/unit_test/mln_core_concept_value_iterator.cc
--- tests/unit_test/mln_core_concept_value_iterator.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_value_iterator.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/value_iterator.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/value_iterator.hh>
#include <mln/core/concept/value_iterator.hh>
int main()
Index: tests/unit_test/mln_core_concept_meta_accumulator.cc
--- tests/unit_test/mln_core_concept_meta_accumulator.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_meta_accumulator.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/meta_accumulator.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/meta_accumulator.hh>
#include <mln/core/concept/meta_accumulator.hh>
int main()
Index: tests/unit_test/mln_trait_solve_unary.cc
--- tests/unit_test/mln_trait_solve_unary.cc (revision 3032)
+++ tests/unit_test/mln_trait_solve_unary.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/solve_unary.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/solve_unary.hh>
#include <mln/trait/solve_unary.hh>
int main()
Index: tests/unit_test/mln_morpho_opening_area_on_vertices.cc
--- tests/unit_test/mln_morpho_opening_area_on_vertices.cc (revision 3032)
+++ tests/unit_test/mln_morpho_opening_area_on_vertices.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/opening_area_on_vertices.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/opening_area_on_vertices.hh>
#include <mln/morpho/opening_area_on_vertices.hh>
int main()
Index: tests/unit_test/mln_core_routine_clone.cc
--- tests/unit_test/mln_core_routine_clone.cc (revision 3032)
+++ tests/unit_test/mln_core_routine_clone.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/routine/clone.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/routine/clone.hh>
#include <mln/core/routine/clone.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_key.cc
--- tests/unit_test/mln_core_site_set_p_key.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_key.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_key.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_key.hh>
#include <mln/core/site_set/p_key.hh>
int main()
Index: tests/unit_test/mln_fun_vv2v_lxor.cc
--- tests/unit_test/mln_fun_vv2v_lxor.cc (revision 3032)
+++ tests/unit_test/mln_fun_vv2v_lxor.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/vv2v/lxor.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/vv2v/lxor.hh>
#include <mln/fun/vv2v/lxor.hh>
int main()
Index: tests/unit_test/mln_trait_op_uminus.cc
--- tests/unit_test/mln_trait_op_uminus.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_uminus.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/uminus.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/uminus.hh>
#include <mln/trait/op/uminus.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_if.cc
--- tests/unit_test/mln_core_site_set_p_if.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_if.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_if.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_if.hh>
#include <mln/core/site_set/p_if.hh>
int main()
Index: tests/unit_test/mln_core_dpsites_piter.cc
--- tests/unit_test/mln_core_dpsites_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_dpsites_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/dpsites_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/dpsites_piter.hh>
#include <mln/core/dpsites_piter.hh>
int main()
Index: tests/unit_test/mln_pw_image.cc
--- tests/unit_test/mln_pw_image.cc (revision 3032)
+++ tests/unit_test/mln_pw_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/pw/image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/pw/image.hh>
#include <mln/pw/image.hh>
int main()
Index: tests/unit_test/mln_trait_promote.cc
--- tests/unit_test/mln_trait_promote.cc (revision 3032)
+++ tests/unit_test/mln_trait_promote.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/promote.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/promote.hh>
#include <mln/trait/promote.hh>
int main()
Index: tests/unit_test/mln_util_greater_psite.cc
--- tests/unit_test/mln_util_greater_psite.cc (revision 3032)
+++ tests/unit_test/mln_util_greater_psite.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/greater_psite.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/greater_psite.hh>
#include <mln/util/greater_psite.hh>
int main()
Index: tests/unit_test/mln_make_w_window3d_int.cc
--- tests/unit_test/mln_make_w_window3d_int.cc (revision 3032)
+++ tests/unit_test/mln_make_w_window3d_int.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/w_window3d_int.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/w_window3d_int.hh>
#include <mln/make/w_window3d_int.hh>
int main()
Index: tests/unit_test/mln_border_resize.cc
--- tests/unit_test/mln_border_resize.cc (revision 3032)
+++ tests/unit_test/mln_border_resize.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/border/resize.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/border/resize.hh>
#include <mln/border/resize.hh>
int main()
Index: tests/unit_test/mln_accu_sum.cc
--- tests/unit_test/mln_accu_sum.cc (revision 3032)
+++ tests/unit_test/mln_accu_sum.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/sum.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/sum.hh>
#include <mln/accu/sum.hh>
int main()
Index: tests/unit_test/mln_arith_all.cc
--- tests/unit_test/mln_arith_all.cc (revision 3032)
+++ tests/unit_test/mln_arith_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/arith/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/arith/all.hh>
#include <mln/arith/all.hh>
int main()
Index: tests/unit_test/mln_fun_x2x_essential.cc
--- tests/unit_test/mln_fun_x2x_essential.cc (revision 3032)
+++ tests/unit_test/mln_fun_x2x_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/x2x/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/x2x/essential.hh>
#include <mln/fun/x2x/essential.hh>
int main()
Index: tests/unit_test/mln_level_naive_essential.cc
--- tests/unit_test/mln_level_naive_essential.cc (revision 3032)
+++ tests/unit_test/mln_level_naive_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/naive/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/naive/essential.hh>
#include <mln/level/naive/essential.hh>
int main()
Index: tests/unit_test/mln_topo_internal_complex_relative_iterator_sequence.cc
--- tests/unit_test/mln_topo_internal_complex_relative_iterator_sequence.cc (revision 3032)
+++ tests/unit_test/mln_topo_internal_complex_relative_iterator_sequence.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/internal/complex_relative_iterator_sequence.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/internal/complex_relative_iterator_sequence.hh>
#include <mln/topo/internal/complex_relative_iterator_sequence.hh>
int main()
Index: tests/unit_test/mln_geom_min_sli.cc
--- tests/unit_test/mln_geom_min_sli.cc (revision 3032)
+++ tests/unit_test/mln_geom_min_sli.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/min_sli.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/min_sli.hh>
#include <mln/geom/min_sli.hh>
int main()
Index: tests/unit_test/mln_accu_volume.cc
--- tests/unit_test/mln_accu_volume.cc (revision 3032)
+++ tests/unit_test/mln_accu_volume.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/volume.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/volume.hh>
#include <mln/accu/volume.hh>
int main()
Index: tests/unit_test/mln_value_float01.cc
--- tests/unit_test/mln_value_float01.cc (revision 3032)
+++ tests/unit_test/mln_value_float01.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/float01.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/float01.hh>
#include <mln/value/float01.hh>
int main()
Index: tests/unit_test/mln_value_gl16.cc
--- tests/unit_test/mln_value_gl16.cc (revision 3032)
+++ tests/unit_test/mln_value_gl16.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/gl16.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/gl16.hh>
#include <mln/value/gl16.hh>
int main()
Index: tests/unit_test/mln_labeling_foreground.cc
--- tests/unit_test/mln_labeling_foreground.cc (revision 3032)
+++ tests/unit_test/mln_labeling_foreground.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/labeling/foreground.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/labeling/foreground.hh>
#include <mln/labeling/foreground.hh>
int main()
Index: tests/unit_test/mln_metal_ands.cc
--- tests/unit_test/mln_metal_ands.cc (revision 3032)
+++ tests/unit_test/mln_metal_ands.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/ands.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/ands.hh>
#include <mln/metal/ands.hh>
int main()
Index: tests/unit_test/mln_fun_v2v_abs.cc
--- tests/unit_test/mln_fun_v2v_abs.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2v_abs.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2v/abs.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2v/abs.hh>
#include <mln/fun/v2v/abs.hh>
int main()
Index: tests/unit_test/mln_core_concept_weighted_window.cc
--- tests/unit_test/mln_core_concept_weighted_window.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_weighted_window.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/weighted_window.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/weighted_window.hh>
#include <mln/core/concept/weighted_window.hh>
int main()
Index: tests/unit_test/mln_set_sym_diff.cc
--- tests/unit_test/mln_set_sym_diff.cc (revision 3032)
+++ tests/unit_test/mln_set_sym_diff.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/set/sym_diff.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/set/sym_diff.hh>
#include <mln/set/sym_diff.hh>
int main()
Index: tests/unit_test/mln_core_alias_w_window1d_int.cc
--- tests/unit_test/mln_core_alias_w_window1d_int.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_w_window1d_int.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/w_window1d_int.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/w_window1d_int.hh>
#include <mln/core/alias/w_window1d_int.hh>
int main()
Index: tests/unit_test/mln_trait_image_from_grid.cc
--- tests/unit_test/mln_trait_image_from_grid.cc (revision 3032)
+++ tests/unit_test/mln_trait_image_from_grid.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/image_from_grid.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/image_from_grid.hh>
#include <mln/trait/image_from_grid.hh>
int main()
Index: tests/unit_test/mln_debug_all.cc
--- tests/unit_test/mln_debug_all.cc (revision 3032)
+++ tests/unit_test/mln_debug_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/debug/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/debug/all.hh>
#include <mln/debug/all.hh>
int main()
Index: tests/unit_test/mln_arith_essential.cc
--- tests/unit_test/mln_arith_essential.cc (revision 3032)
+++ tests/unit_test/mln_arith_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/arith/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/arith/essential.hh>
#include <mln/arith/essential.hh>
int main()
Index: tests/unit_test/mln_topo_adj_higher_dim_connected_n_face_iter.cc
--- tests/unit_test/mln_topo_adj_higher_dim_connected_n_face_iter.cc (revision 3032)
+++ tests/unit_test/mln_topo_adj_higher_dim_connected_n_face_iter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/adj_higher_dim_connected_n_face_iter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/adj_higher_dim_connected_n_face_iter.hh>
#include <mln/topo/adj_higher_dim_connected_n_face_iter.hh>
int main()
Index: tests/unit_test/mln_registration_essential.cc
--- tests/unit_test/mln_registration_essential.cc (revision 3032)
+++ tests/unit_test/mln_registration_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/registration/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/registration/essential.hh>
#include <mln/registration/essential.hh>
int main()
Index: tests/unit_test/mln_convert_to.cc
--- tests/unit_test/mln_convert_to.cc (revision 3032)
+++ tests/unit_test/mln_convert_to.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/convert/to.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/convert/to.hh>
#include <mln/convert/to.hh>
int main()
Index: tests/unit_test/mln_fun_v2v_rgb_to_hsi.cc
--- tests/unit_test/mln_fun_v2v_rgb_to_hsi.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2v_rgb_to_hsi.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2v/rgb_to_hsi.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2v/rgb_to_hsi.hh>
#include <mln/fun/v2v/rgb_to_hsi.hh>
int main()
Index: tests/unit_test/mln_border_essential.cc
--- tests/unit_test/mln_border_essential.cc (revision 3032)
+++ tests/unit_test/mln_border_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/border/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/border/essential.hh>
#include <mln/border/essential.hh>
int main()
Index: tests/unit_test/mln_trait_op_neq.cc
--- tests/unit_test/mln_trait_op_neq.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_neq.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/neq.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/neq.hh>
#include <mln/trait/op/neq.hh>
int main()
Index: tests/unit_test/mln_labeling_regional_minima.cc
--- tests/unit_test/mln_labeling_regional_minima.cc (revision 3032)
+++ tests/unit_test/mln_labeling_regional_minima.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/labeling/regional_minima.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/labeling/regional_minima.hh>
#include <mln/labeling/regional_minima.hh>
int main()
Index: tests/unit_test/mln_estim_essential.cc
--- tests/unit_test/mln_estim_essential.cc (revision 3032)
+++ tests/unit_test/mln_estim_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/estim/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/estim/essential.hh>
#include <mln/estim/essential.hh>
int main()
Index: tests/unit_test/mln_trace_entering.cc
--- tests/unit_test/mln_trace_entering.cc (revision 3032)
+++ tests/unit_test/mln_trace_entering.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trace/entering.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trace/entering.hh>
#include <mln/trace/entering.hh>
int main()
Index: tests/unit_test/mln_metal_equal.cc
--- tests/unit_test/mln_metal_equal.cc (revision 3032)
+++ tests/unit_test/mln_metal_equal.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/equal.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/equal.hh>
#include <mln/metal/equal.hh>
int main()
Index: tests/unit_test/mln_algebra_vec.cc
--- tests/unit_test/mln_algebra_vec.cc (revision 3032)
+++ tests/unit_test/mln_algebra_vec.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/algebra/vec.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/algebra/vec.hh>
#include <mln/algebra/vec.hh>
int main()
Index: tests/unit_test/mln_fun_p2v_iota.cc
--- tests/unit_test/mln_fun_p2v_iota.cc (revision 3032)
+++ tests/unit_test/mln_fun_p2v_iota.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/p2v/iota.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/p2v/iota.hh>
#include <mln/fun/p2v/iota.hh>
int main()
Index: tests/unit_test/mln_level_fast_median.cc
--- tests/unit_test/mln_level_fast_median.cc (revision 3032)
+++ tests/unit_test/mln_level_fast_median.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/fast_median.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/fast_median.hh>
#include <mln/level/fast_median.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_iterator.cc
--- tests/unit_test/mln_core_concept_doc_iterator.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_iterator.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/iterator.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/iterator.hh>
#include <mln/core/concept/doc/iterator.hh>
int main()
Index: tests/unit_test/mln_win_multiple_size.cc
--- tests/unit_test/mln_win_multiple_size.cc (revision 3032)
+++ tests/unit_test/mln_win_multiple_size.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/multiple_size.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/multiple_size.hh>
#include <mln/win/multiple_size.hh>
int main()
Index: tests/unit_test/mln_topo_internal_complex_relative_iterator_base.cc
--- tests/unit_test/mln_topo_internal_complex_relative_iterator_base.cc (revision 3032)
+++ tests/unit_test/mln_topo_internal_complex_relative_iterator_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/internal/complex_relative_iterator_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/internal/complex_relative_iterator_base.hh>
#include <mln/topo/internal/complex_relative_iterator_base.hh>
int main()
Index: tests/unit_test/mln_metal_bexpr.cc
--- tests/unit_test/mln_metal_bexpr.cc (revision 3032)
+++ tests/unit_test/mln_metal_bexpr.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/bexpr.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/bexpr.hh>
#include <mln/metal/bexpr.hh>
int main()
Index: tests/unit_test/mln_fun_p2p_mirror.cc
--- tests/unit_test/mln_fun_p2p_mirror.cc (revision 3032)
+++ tests/unit_test/mln_fun_p2p_mirror.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/p2p/mirror.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/p2p/mirror.hh>
#include <mln/fun/p2p/mirror.hh>
int main()
Index: tests/unit_test/mln_fun_vv2v_all.cc
--- tests/unit_test/mln_fun_vv2v_all.cc (revision 3032)
+++ tests/unit_test/mln_fun_vv2v_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/vv2v/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/vv2v/all.hh>
#include <mln/fun/vv2v/all.hh>
int main()
Index: tests/unit_test/mln_geom_seeds2tiling.cc
--- tests/unit_test/mln_geom_seeds2tiling.cc (revision 3032)
+++ tests/unit_test/mln_geom_seeds2tiling.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/seeds2tiling.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/seeds2tiling.hh>
#include <mln/geom/seeds2tiling.hh>
int main()
Index: tests/unit_test/mln_core_internal_site_set_impl.cc
--- tests/unit_test/mln_core_internal_site_set_impl.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_site_set_impl.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/site_set_impl.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/site_set_impl.hh>
#include <mln/core/internal/site_set_impl.hh>
int main()
Index: tests/unit_test/mln_core_routine_essential.cc
--- tests/unit_test/mln_core_routine_essential.cc (revision 3032)
+++ tests/unit_test/mln_core_routine_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/routine/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/routine/essential.hh>
#include <mln/core/routine/essential.hh>
int main()
Index: tests/unit_test/mln_labeling_all.cc
--- tests/unit_test/mln_labeling_all.cc (revision 3032)
+++ tests/unit_test/mln_labeling_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/labeling/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/labeling/all.hh>
#include <mln/labeling/all.hh>
int main()
Index: tests/unit_test/mln_level_approx_essential.cc
--- tests/unit_test/mln_level_approx_essential.cc (revision 3032)
+++ tests/unit_test/mln_level_approx_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/approx/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/approx/essential.hh>
#include <mln/level/approx/essential.hh>
int main()
Index: tests/unit_test/mln_io_pnm_save_header.cc
--- tests/unit_test/mln_io_pnm_save_header.cc (revision 3032)
+++ tests/unit_test/mln_io_pnm_save_header.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pnm/save_header.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pnm/save_header.hh>
#include <mln/io/pnm/save_header.hh>
int main()
Index: tests/unit_test/mln_value_internal_convert.cc
--- tests/unit_test/mln_value_internal_convert.cc (revision 3032)
+++ tests/unit_test/mln_value_internal_convert.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/internal/convert.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/internal/convert.hh>
#include <mln/value/internal/convert.hh>
int main()
Index: tests/unit_test/mln_canvas_labeling.cc
--- tests/unit_test/mln_canvas_labeling.cc (revision 3032)
+++ tests/unit_test/mln_canvas_labeling.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/labeling.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/labeling.hh>
#include <mln/canvas/labeling.hh>
int main()
Index: tests/unit_test/mln_value_builtin_essential.cc
--- tests/unit_test/mln_value_builtin_essential.cc (revision 3032)
+++ tests/unit_test/mln_value_builtin_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/builtin/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/builtin/essential.hh>
#include <mln/value/builtin/essential.hh>
int main()
Index: tests/unit_test/mln_morpho_closing_height.cc
--- tests/unit_test/mln_morpho_closing_height.cc (revision 3032)
+++ tests/unit_test/mln_morpho_closing_height.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/closing_height.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/closing_height.hh>
#include <mln/morpho/closing_height.hh>
int main()
Index: tests/unit_test/mln_util_array.cc
--- tests/unit_test/mln_util_array.cc (revision 3032)
+++ tests/unit_test/mln_util_array.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/array.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/array.hh>
#include <mln/util/array.hh>
int main()
Index: tests/unit_test/mln_value_aliases.cc
--- tests/unit_test/mln_value_aliases.cc (revision 3032)
+++ tests/unit_test/mln_value_aliases.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/aliases.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/aliases.hh>
#include <mln/value/aliases.hh>
int main()
Index: tests/unit_test/mln_essential_3d.cc
--- tests/unit_test/mln_essential_3d.cc (revision 3032)
+++ tests/unit_test/mln_essential_3d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/essential/3d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/essential/3d.hh>
#include <mln/essential/3d.hh>
int main()
Index: tests/unit_test/mln_value_hsi.cc
--- tests/unit_test/mln_value_hsi.cc (revision 3032)
+++ tests/unit_test/mln_value_hsi.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/hsi.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/hsi.hh>
#include <mln/value/hsi.hh>
int main()
Index: tests/unit_test/mln_accu_take.cc
--- tests/unit_test/mln_accu_take.cc (revision 3032)
+++ tests/unit_test/mln_accu_take.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/take.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/take.hh>
#include <mln/accu/take.hh>
int main()
Index: tests/unit_test/mln_metal_goes_to.cc
--- tests/unit_test/mln_metal_goes_to.cc (revision 3032)
+++ tests/unit_test/mln_metal_goes_to.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/goes_to.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/goes_to.hh>
#include <mln/metal/goes_to.hh>
int main()
Index: tests/unit_test/mln_subsampling_gaussian_subsampling.cc
--- tests/unit_test/mln_subsampling_gaussian_subsampling.cc (revision 3032)
+++ tests/unit_test/mln_subsampling_gaussian_subsampling.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/subsampling/gaussian_subsampling.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/subsampling/gaussian_subsampling.hh>
#include <mln/subsampling/gaussian_subsampling.hh>
int main()
Index: tests/unit_test/mln_core_site_set_attic_p_complex_faces_piter.cc
--- tests/unit_test/mln_core_site_set_attic_p_complex_faces_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_attic_p_complex_faces_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/attic/p_complex_faces_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/attic/p_complex_faces_piter.hh>
#include <mln/core/site_set/attic/p_complex_faces_piter.hh>
int main()
Index: tests/unit_test/mln_draw_all.cc
--- tests/unit_test/mln_draw_all.cc (revision 3032)
+++ tests/unit_test/mln_draw_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/draw/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/draw/all.hh>
#include <mln/draw/all.hh>
int main()
Index: tests/unit_test/mln_trait_window_print.cc
--- tests/unit_test/mln_trait_window_print.cc (revision 3032)
+++ tests/unit_test/mln_trait_window_print.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/window/print.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/window/print.hh>
#include <mln/trait/window/print.hh>
int main()
Index: tests/unit_test/mln_core_internal_force_exact.cc
--- tests/unit_test/mln_core_internal_force_exact.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_force_exact.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/force_exact.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/force_exact.hh>
#include <mln/core/internal/force_exact.hh>
int main()
Index: tests/unit_test/mln_value_set.cc
--- tests/unit_test/mln_value_set.cc (revision 3032)
+++ tests/unit_test/mln_value_set.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/set.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/set.hh>
#include <mln/value/set.hh>
int main()
Index: tests/unit_test/mln_util_lazy_set.cc
--- tests/unit_test/mln_util_lazy_set.cc (revision 3032)
+++ tests/unit_test/mln_util_lazy_set.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/lazy_set.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/lazy_set.hh>
#include <mln/util/lazy_set.hh>
int main()
Index: tests/unit_test/mln_morpho_elementary_erosion.cc
--- tests/unit_test/mln_morpho_elementary_erosion.cc (revision 3032)
+++ tests/unit_test/mln_morpho_elementary_erosion.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/elementary/erosion.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/elementary/erosion.hh>
#include <mln/morpho/elementary/erosion.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_if_piter.cc
--- tests/unit_test/mln_core_site_set_p_if_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_if_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_if_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_if_piter.hh>
#include <mln/core/site_set/p_if_piter.hh>
int main()
Index: tests/unit_test/mln_core_internal_image_primary.cc
--- tests/unit_test/mln_core_internal_image_primary.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_image_primary.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/image_primary.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/image_primary.hh>
#include <mln/core/internal/image_primary.hh>
int main()
Index: tests/unit_test/mln_core_alias_complex_image.cc
--- tests/unit_test/mln_core_alias_complex_image.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_complex_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/complex_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/complex_image.hh>
#include <mln/core/alias/complex_image.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_run.cc
--- tests/unit_test/mln_core_site_set_p_run.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_run.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_run.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_run.hh>
#include <mln/core/site_set/p_run.hh>
int main()
Index: tests/unit_test/mln_trait_op_lor.cc
--- tests/unit_test/mln_trait_op_lor.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_lor.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/lor.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/lor.hh>
#include <mln/trait/op/lor.hh>
int main()
Index: tests/unit_test/mln_registration_get_rot.cc
--- tests/unit_test/mln_registration_get_rot.cc (revision 3032)
+++ tests/unit_test/mln_registration_get_rot.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/registration/get_rot.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/registration/get_rot.hh>
#include <mln/registration/get_rot.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_value_iterator.cc
--- tests/unit_test/mln_core_concept_doc_value_iterator.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_value_iterator.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/value_iterator.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/value_iterator.hh>
#include <mln/core/concept/doc/value_iterator.hh>
int main()
Index: tests/unit_test/mln_core_def_low_quant_nbits.cc
--- tests/unit_test/mln_core_def_low_quant_nbits.cc (revision 3032)
+++ tests/unit_test/mln_core_def_low_quant_nbits.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/def/low_quant_nbits.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/def/low_quant_nbits.hh>
#include <mln/core/def/low_quant_nbits.hh>
int main()
Index: tests/unit_test/mln_make_graph.cc
--- tests/unit_test/mln_make_graph.cc (revision 3032)
+++ tests/unit_test/mln_make_graph.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/graph.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/graph.hh>
#include <mln/make/graph.hh>
int main()
Index: tests/unit_test/mln_core_internal_piter_adaptor.cc
--- tests/unit_test/mln_core_internal_piter_adaptor.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_piter_adaptor.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/piter_adaptor.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/piter_adaptor.hh>
#include <mln/core/internal/piter_adaptor.hh>
int main()
Index: tests/unit_test/mln_util_line_graph.cc
--- tests/unit_test/mln_util_line_graph.cc (revision 3032)
+++ tests/unit_test/mln_util_line_graph.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/line_graph.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/line_graph.hh>
#include <mln/util/line_graph.hh>
int main()
Index: tests/unit_test/mln_topo_algebraic_n_face.cc
--- tests/unit_test/mln_topo_algebraic_n_face.cc (revision 3032)
+++ tests/unit_test/mln_topo_algebraic_n_face.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/algebraic_n_face.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/algebraic_n_face.hh>
#include <mln/topo/algebraic_n_face.hh>
int main()
Index: tests/unit_test/mln_core_w_window.cc
--- tests/unit_test/mln_core_w_window.cc (revision 3032)
+++ tests/unit_test/mln_core_w_window.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/w_window.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/w_window.hh>
#include <mln/core/w_window.hh>
int main()
Index: tests/unit_test/mln_win_diag2d.cc
--- tests/unit_test/mln_win_diag2d.cc (revision 3032)
+++ tests/unit_test/mln_win_diag2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/diag2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/diag2d.hh>
#include <mln/win/diag2d.hh>
int main()
Index: tests/unit_test/mln_core_image_complex_neighborhood_piter.cc
--- tests/unit_test/mln_core_image_complex_neighborhood_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_image_complex_neighborhood_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/complex_neighborhood_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/complex_neighborhood_piter.hh>
#include <mln/core/image/complex_neighborhood_piter.hh>
int main()
Index: tests/unit_test/mln_value_concept_built_in.cc
--- tests/unit_test/mln_value_concept_built_in.cc (revision 3032)
+++ tests/unit_test/mln_value_concept_built_in.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/concept/built_in.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/concept/built_in.hh>
#include <mln/value/concept/built_in.hh>
int main()
Index: tests/unit_test/mln_core_concept_point.cc
--- tests/unit_test/mln_core_concept_point.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_point.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/point.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/point.hh>
#include <mln/core/concept/point.hh>
int main()
Index: tests/unit_test/mln_core_internal_fixme.cc
--- tests/unit_test/mln_core_internal_fixme.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_fixme.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/fixme.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/fixme.hh>
#include <mln/core/internal/fixme.hh>
int main()
Index: tests/unit_test/mln_metal_bool.cc
--- tests/unit_test/mln_metal_bool.cc (revision 3032)
+++ tests/unit_test/mln_metal_bool.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/bool.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/bool.hh>
#include <mln/metal/bool.hh>
int main()
Index: tests/unit_test/mln_level_compare.cc
--- tests/unit_test/mln_level_compare.cc (revision 3032)
+++ tests/unit_test/mln_level_compare.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/compare.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/compare.hh>
#include <mln/level/compare.hh>
int main()
Index: tests/unit_test/mln_core_window.cc
--- tests/unit_test/mln_core_window.cc (revision 3032)
+++ tests/unit_test/mln_core_window.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/window.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/window.hh>
#include <mln/core/window.hh>
int main()
Index: tests/unit_test/mln_value_concept_data.cc
--- tests/unit_test/mln_value_concept_data.cc (revision 3032)
+++ tests/unit_test/mln_value_concept_data.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/concept/data.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/concept/data.hh>
#include <mln/value/concept/data.hh>
int main()
Index: tests/unit_test/mln_metal_math_max.cc
--- tests/unit_test/mln_metal_math_max.cc (revision 3032)
+++ tests/unit_test/mln_metal_math_max.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/math/max.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/math/max.hh>
#include <mln/metal/math/max.hh>
int main()
Index: tests/unit_test/mln_core_internal_pseudo_site_base.cc
--- tests/unit_test/mln_core_internal_pseudo_site_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_pseudo_site_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/pseudo_site_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/pseudo_site_base.hh>
#include <mln/core/internal/pseudo_site_base.hh>
int main()
Index: tests/unit_test/mln_pw_value.cc
--- tests/unit_test/mln_pw_value.cc (revision 3032)
+++ tests/unit_test/mln_pw_value.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/pw/value.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/pw/value.hh>
#include <mln/pw/value.hh>
int main()
Index: tests/unit_test/mln_value_internal_integer.cc
--- tests/unit_test/mln_value_internal_integer.cc (revision 3032)
+++ tests/unit_test/mln_value_internal_integer.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/internal/integer.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/internal/integer.hh>
#include <mln/value/internal/integer.hh>
int main()
Index: tests/unit_test/mln_trait_value_quant.cc
--- tests/unit_test/mln_trait_value_quant.cc (revision 3032)
+++ tests/unit_test/mln_trait_value_quant.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/value/quant.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/value/quant.hh>
#include <mln/trait/value/quant.hh>
int main()
Index: tests/unit_test/mln_topo_face_data.cc
--- tests/unit_test/mln_topo_face_data.cc (revision 3032)
+++ tests/unit_test/mln_topo_face_data.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/face_data.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/face_data.hh>
#include <mln/topo/face_data.hh>
int main()
Index: tests/unit_test/mln_fun_vv2v_land_not.cc
--- tests/unit_test/mln_fun_vv2v_land_not.cc (revision 3032)
+++ tests/unit_test/mln_fun_vv2v_land_not.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/vv2v/land_not.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/vv2v/land_not.hh>
#include <mln/fun/vv2v/land_not.hh>
int main()
Index: tests/unit_test/mln_trait_op_greater.cc
--- tests/unit_test/mln_trait_op_greater.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_greater.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/greater.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/greater.hh>
#include <mln/trait/op/greater.hh>
int main()
Index: tests/unit_test/mln_util_yes.cc
--- tests/unit_test/mln_util_yes.cc (revision 3032)
+++ tests/unit_test/mln_util_yes.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/yes.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/yes.hh>
#include <mln/util/yes.hh>
int main()
Index: tests/unit_test/mln_io_pbm_all.cc
--- tests/unit_test/mln_io_pbm_all.cc (revision 3032)
+++ tests/unit_test/mln_io_pbm_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pbm/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pbm/all.hh>
#include <mln/io/pbm/all.hh>
int main()
Index: tests/unit_test/mln_win_disk2d.cc
--- tests/unit_test/mln_win_disk2d.cc (revision 3032)
+++ tests/unit_test/mln_win_disk2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/disk2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/disk2d.hh>
#include <mln/win/disk2d.hh>
int main()
Index: tests/unit_test/mln_core_routine_primary.cc
--- tests/unit_test/mln_core_routine_primary.cc (revision 3032)
+++ tests/unit_test/mln_core_routine_primary.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/routine/primary.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/routine/primary.hh>
#include <mln/core/routine/primary.hh>
int main()
Index: tests/unit_test/mln_math_round.cc
--- tests/unit_test/mln_math_round.cc (revision 3032)
+++ tests/unit_test/mln_math_round.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/math/round.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/math/round.hh>
#include <mln/math/round.hh>
int main()
Index: tests/unit_test/mln_metal_array.cc
--- tests/unit_test/mln_metal_array.cc (revision 3032)
+++ tests/unit_test/mln_metal_array.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/array.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/array.hh>
#include <mln/metal/array.hh>
int main()
Index: tests/unit_test/mln_io_pfm_all.cc
--- tests/unit_test/mln_io_pfm_all.cc (revision 3032)
+++ tests/unit_test/mln_io_pfm_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pfm/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pfm/all.hh>
#include <mln/io/pfm/all.hh>
int main()
Index: tests/unit_test/mln_core_image_essential.cc
--- tests/unit_test/mln_core_image_essential.cc (revision 3032)
+++ tests/unit_test/mln_core_image_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/essential.hh>
#include <mln/core/image/essential.hh>
int main()
Index: tests/unit_test/mln_literal_origin.cc
--- tests/unit_test/mln_literal_origin.cc (revision 3032)
+++ tests/unit_test/mln_literal_origin.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/literal/origin.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/literal/origin.hh>
#include <mln/literal/origin.hh>
int main()
Index: tests/unit_test/mln_win_essential.cc
--- tests/unit_test/mln_win_essential.cc (revision 3032)
+++ tests/unit_test/mln_win_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/essential.hh>
#include <mln/win/essential.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_set_of.cc
--- tests/unit_test/mln_core_site_set_p_set_of.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_set_of.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_set_of.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_set_of.hh>
#include <mln/core/site_set/p_set_of.hh>
int main()
Index: tests/unit_test/mln_fun_v2b_essential.cc
--- tests/unit_test/mln_fun_v2b_essential.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2b_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2b/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2b/essential.hh>
#include <mln/fun/v2b/essential.hh>
int main()
Index: tests/unit_test/mln_registration_get_rtransf.cc
--- tests/unit_test/mln_registration_get_rtransf.cc (revision 3032)
+++ tests/unit_test/mln_registration_get_rtransf.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/registration/get_rtransf.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/registration/get_rtransf.hh>
#include <mln/registration/get_rtransf.hh>
int main()
Index: tests/unit_test/mln_io_pnm_all.cc
--- tests/unit_test/mln_io_pnm_all.cc (revision 3032)
+++ tests/unit_test/mln_io_pnm_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pnm/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pnm/all.hh>
#include <mln/io/pnm/all.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_point_iterator.cc
--- tests/unit_test/mln_core_concept_doc_point_iterator.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_point_iterator.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/point_iterator.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/point_iterator.hh>
#include <mln/core/concept/doc/point_iterator.hh>
int main()
Index: tests/unit_test/mln_value_concept_structured.cc
--- tests/unit_test/mln_value_concept_structured.cc (revision 3032)
+++ tests/unit_test/mln_value_concept_structured.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/concept/structured.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/concept/structured.hh>
#include <mln/value/concept/structured.hh>
int main()
Index: tests/unit_test/mln_core_concept_pixel_iterator.cc
--- tests/unit_test/mln_core_concept_pixel_iterator.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_pixel_iterator.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/pixel_iterator.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/pixel_iterator.hh>
#include <mln/core/concept/pixel_iterator.hh>
int main()
Index: tests/unit_test/mln_util_tree_fast_to_image.cc
--- tests/unit_test/mln_util_tree_fast_to_image.cc (revision 3032)
+++ tests/unit_test/mln_util_tree_fast_to_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/tree_fast_to_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/tree_fast_to_image.hh>
#include <mln/util/tree_fast_to_image.hh>
int main()
Index: tests/unit_test/mln_level_saturate.cc
--- tests/unit_test/mln_level_saturate.cc (revision 3032)
+++ tests/unit_test/mln_level_saturate.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/saturate.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/saturate.hh>
#include <mln/level/saturate.hh>
int main()
Index: tests/unit_test/mln_fun_p2b_chess.cc
--- tests/unit_test/mln_fun_p2b_chess.cc (revision 3032)
+++ tests/unit_test/mln_fun_p2b_chess.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/p2b/chess.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/p2b/chess.hh>
#include <mln/fun/p2b/chess.hh>
int main()
Index: tests/unit_test/mln_core_grids.cc
--- tests/unit_test/mln_core_grids.cc (revision 3032)
+++ tests/unit_test/mln_core_grids.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/grids.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/grids.hh>
#include <mln/core/grids.hh>
int main()
Index: tests/unit_test/mln_win_vline2d.cc
--- tests/unit_test/mln_win_vline2d.cc (revision 3032)
+++ tests/unit_test/mln_win_vline2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/vline2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/vline2d.hh>
#include <mln/win/vline2d.hh>
int main()
Index: tests/unit_test/mln_fun_x2v_linear.cc
--- tests/unit_test/mln_fun_x2v_linear.cc (revision 3032)
+++ tests/unit_test/mln_fun_x2v_linear.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/x2v/linear.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/x2v/linear.hh>
#include <mln/fun/x2v/linear.hh>
int main()
Index: tests/unit_test/mln_geom_ninds.cc
--- tests/unit_test/mln_geom_ninds.cc (revision 3032)
+++ tests/unit_test/mln_geom_ninds.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/ninds.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/ninds.hh>
#include <mln/geom/ninds.hh>
int main()
Index: tests/unit_test/mln_core_image_complex_image.cc
--- tests/unit_test/mln_core_image_complex_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_complex_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/complex_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/complex_image.hh>
#include <mln/core/image/complex_image.hh>
int main()
Index: tests/unit_test/mln_core_image_sub_image_if.cc
--- tests/unit_test/mln_core_image_sub_image_if.cc (revision 3032)
+++ tests/unit_test/mln_core_image_sub_image_if.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/sub_image_if.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/sub_image_if.hh>
#include <mln/core/image/sub_image_if.hh>
int main()
Index: tests/unit_test/mln_accu_bbox.cc
--- tests/unit_test/mln_accu_bbox.cc (revision 3032)
+++ tests/unit_test/mln_accu_bbox.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/bbox.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/bbox.hh>
#include <mln/accu/bbox.hh>
int main()
Index: tests/unit_test/mln_accu_median_alt.cc
--- tests/unit_test/mln_accu_median_alt.cc (revision 3032)
+++ tests/unit_test/mln_accu_median_alt.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/median_alt.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/median_alt.hh>
#include <mln/accu/median_alt.hh>
int main()
Index: tests/unit_test/mln_morpho_line_gradient.cc
--- tests/unit_test/mln_morpho_line_gradient.cc (revision 3032)
+++ tests/unit_test/mln_morpho_line_gradient.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/line_gradient.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/line_gradient.hh>
#include <mln/morpho/line_gradient.hh>
int main()
Index: tests/unit_test/mln_topo_essential.cc
--- tests/unit_test/mln_topo_essential.cc (revision 3032)
+++ tests/unit_test/mln_topo_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/essential.hh>
#include <mln/topo/essential.hh>
int main()
Index: tests/unit_test/mln_core_image_complex_neighborhoods.cc
--- tests/unit_test/mln_core_image_complex_neighborhoods.cc (revision 3032)
+++ tests/unit_test/mln_core_image_complex_neighborhoods.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/complex_neighborhoods.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/complex_neighborhoods.hh>
#include <mln/core/image/complex_neighborhoods.hh>
int main()
Index: tests/unit_test/mln_transform_distance_front.cc
--- tests/unit_test/mln_transform_distance_front.cc (revision 3032)
+++ tests/unit_test/mln_transform_distance_front.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/transform/distance_front.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/transform/distance_front.hh>
#include <mln/transform/distance_front.hh>
int main()
Index: tests/unit_test/mln_transform_internal_all.cc
--- tests/unit_test/mln_transform_internal_all.cc (revision 3032)
+++ tests/unit_test/mln_transform_internal_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/transform/internal/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/transform/internal/all.hh>
#include <mln/transform/internal/all.hh>
int main()
Index: tests/unit_test/mln_test_positive.cc
--- tests/unit_test/mln_test_positive.cc (revision 3032)
+++ tests/unit_test/mln_test_positive.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/test/positive.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/test/positive.hh>
#include <mln/test/positive.hh>
int main()
Index: tests/unit_test/mln_binarization_binarization.cc
--- tests/unit_test/mln_binarization_binarization.cc (revision 3032)
+++ tests/unit_test/mln_binarization_binarization.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/binarization/binarization.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/binarization/binarization.hh>
#include <mln/binarization/binarization.hh>
int main()
Index: tests/unit_test/mln_morpho_elementary_gradient_internal.cc
--- tests/unit_test/mln_morpho_elementary_gradient_internal.cc (revision 3032)
+++ tests/unit_test/mln_morpho_elementary_gradient_internal.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/elementary/gradient_internal.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/elementary/gradient_internal.hh>
#include <mln/morpho/elementary/gradient_internal.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_array.cc
--- tests/unit_test/mln_core_site_set_p_array.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_array.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_array.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_array.hh>
#include <mln/core/site_set/p_array.hh>
int main()
Index: tests/unit_test/mln_fun_i2v_array.cc
--- tests/unit_test/mln_fun_i2v_array.cc (revision 3032)
+++ tests/unit_test/mln_fun_i2v_array.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/i2v/array.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/i2v/array.hh>
#include <mln/fun/i2v/array.hh>
int main()
Index: tests/unit_test/mln_trait_op_less.cc
--- tests/unit_test/mln_trait_op_less.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_less.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/less.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/less.hh>
#include <mln/trait/op/less.hh>
int main()
Index: tests/unit_test/mln_win_rectangle2d.cc
--- tests/unit_test/mln_win_rectangle2d.cc (revision 3032)
+++ tests/unit_test/mln_win_rectangle2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/rectangle2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/rectangle2d.hh>
#include <mln/win/rectangle2d.hh>
int main()
Index: tests/unit_test/mln_fun_x2x_rotation.cc
--- tests/unit_test/mln_fun_x2x_rotation.cc (revision 3032)
+++ tests/unit_test/mln_fun_x2x_rotation.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/x2x/rotation.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/x2x/rotation.hh>
#include <mln/fun/x2x/rotation.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_image.cc
--- tests/unit_test/mln_core_site_set_p_image.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_image.hh>
#include <mln/core/site_set/p_image.hh>
int main()
Index: tests/unit_test/mln_metal_const.cc
--- tests/unit_test/mln_metal_const.cc (revision 3032)
+++ tests/unit_test/mln_metal_const.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/const.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/const.hh>
#include <mln/metal/const.hh>
int main()
Index: tests/unit_test/mln_estim_all.cc
--- tests/unit_test/mln_estim_all.cc (revision 3032)
+++ tests/unit_test/mln_estim_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/estim/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/estim/all.hh>
#include <mln/estim/all.hh>
int main()
Index: tests/unit_test/mln_core_internal_image_domain_morpher.cc
--- tests/unit_test/mln_core_internal_image_domain_morpher.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_image_domain_morpher.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/image_domain_morpher.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/image_domain_morpher.hh>
#include <mln/core/internal/image_domain_morpher.hh>
int main()
Index: tests/unit_test/mln_core_concept_value_set.cc
--- tests/unit_test/mln_core_concept_value_set.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_value_set.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/value_set.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/value_set.hh>
#include <mln/core/concept/value_set.hh>
int main()
Index: tests/unit_test/mln_fun_internal_array_base.cc
--- tests/unit_test/mln_fun_internal_array_base.cc (revision 3032)
+++ tests/unit_test/mln_fun_internal_array_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/internal/array_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/internal/array_base.hh>
#include <mln/fun/internal/array_base.hh>
int main()
Index: tests/unit_test/mln_histo_data.cc
--- tests/unit_test/mln_histo_data.cc (revision 3032)
+++ tests/unit_test/mln_histo_data.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/histo/data.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/histo/data.hh>
#include <mln/histo/data.hh>
int main()
Index: tests/unit_test/mln_fun_i2v_essential.cc
--- tests/unit_test/mln_fun_i2v_essential.cc (revision 3032)
+++ tests/unit_test/mln_fun_i2v_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/i2v/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/i2v/essential.hh>
#include <mln/fun/i2v/essential.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_centered.cc
--- tests/unit_test/mln_core_site_set_p_centered.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_centered.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_centered.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_centered.hh>
#include <mln/core/site_set/p_centered.hh>
int main()
Index: tests/unit_test/mln_make_image.cc
--- tests/unit_test/mln_make_image.cc (revision 3032)
+++ tests/unit_test/mln_make_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/image.hh>
#include <mln/make/image.hh>
int main()
Index: tests/unit_test/mln_value_internal_essential.cc
--- tests/unit_test/mln_value_internal_essential.cc (revision 3032)
+++ tests/unit_test/mln_value_internal_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/internal/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/internal/essential.hh>
#include <mln/value/internal/essential.hh>
int main()
Index: tests/unit_test/mln_morpho_contrast.cc
--- tests/unit_test/mln_morpho_contrast.cc (revision 3032)
+++ tests/unit_test/mln_morpho_contrast.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/contrast.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/contrast.hh>
#include <mln/morpho/contrast.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_edges_psite.cc
--- tests/unit_test/mln_core_site_set_p_edges_psite.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_edges_psite.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_edges_psite.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_edges_psite.hh>
#include <mln/core/site_set/p_edges_psite.hh>
int main()
Index: tests/unit_test/mln_morpho_opening.cc
--- tests/unit_test/mln_morpho_opening.cc (revision 3032)
+++ tests/unit_test/mln_morpho_opening.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/opening.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/opening.hh>
#include <mln/morpho/opening.hh>
int main()
Index: tests/unit_test/mln_set_all.cc
--- tests/unit_test/mln_set_all.cc (revision 3032)
+++ tests/unit_test/mln_set_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/set/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/set/all.hh>
#include <mln/set/all.hh>
int main()
Index: tests/unit_test/mln_fun_internal_selector.cc
--- tests/unit_test/mln_fun_internal_selector.cc (revision 3032)
+++ tests/unit_test/mln_fun_internal_selector.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/internal/selector.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/internal/selector.hh>
#include <mln/fun/internal/selector.hh>
int main()
Index: tests/unit_test/mln_geom_ncols.cc
--- tests/unit_test/mln_geom_ncols.cc (revision 3032)
+++ tests/unit_test/mln_geom_ncols.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/ncols.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/ncols.hh>
#include <mln/geom/ncols.hh>
int main()
Index: tests/unit_test/mln_canvas_browsing_fwd.cc
--- tests/unit_test/mln_canvas_browsing_fwd.cc (revision 3032)
+++ tests/unit_test/mln_canvas_browsing_fwd.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/browsing/fwd.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/browsing/fwd.hh>
#include <mln/canvas/browsing/fwd.hh>
int main()
Index: tests/unit_test/mln_extension_adjust.cc
--- tests/unit_test/mln_extension_adjust.cc (revision 3032)
+++ tests/unit_test/mln_extension_adjust.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/extension/adjust.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/extension/adjust.hh>
#include <mln/extension/adjust.hh>
int main()
Index: tests/unit_test/mln_geom_min_col.cc
--- tests/unit_test/mln_geom_min_col.cc (revision 3032)
+++ tests/unit_test/mln_geom_min_col.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/min_col.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/min_col.hh>
#include <mln/geom/min_col.hh>
int main()
Index: tests/unit_test/mln_labeling_regional_maxima.cc
--- tests/unit_test/mln_labeling_regional_maxima.cc (revision 3032)
+++ tests/unit_test/mln_labeling_regional_maxima.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/labeling/regional_maxima.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/labeling/regional_maxima.hh>
#include <mln/labeling/regional_maxima.hh>
int main()
Index: tests/unit_test/mln_metal_unptr.cc
--- tests/unit_test/mln_metal_unptr.cc (revision 3032)
+++ tests/unit_test/mln_metal_unptr.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/unptr.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/unptr.hh>
#include <mln/metal/unptr.hh>
int main()
Index: tests/unit_test/mln_trait_window_props.cc
--- tests/unit_test/mln_trait_window_props.cc (revision 3032)
+++ tests/unit_test/mln_trait_window_props.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/window/props.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/window/props.hh>
#include <mln/trait/window/props.hh>
int main()
Index: tests/unit_test/mln_trait_site_set_print.cc
--- tests/unit_test/mln_trait_site_set_print.cc (revision 3032)
+++ tests/unit_test/mln_trait_site_set_print.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/site_set/print.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/site_set/print.hh>
#include <mln/trait/site_set/print.hh>
int main()
Index: tests/unit_test/mln_geom_delta.cc
--- tests/unit_test/mln_geom_delta.cc (revision 3032)
+++ tests/unit_test/mln_geom_delta.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/delta.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/delta.hh>
#include <mln/geom/delta.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_complex_piter.cc
--- tests/unit_test/mln_core_site_set_p_complex_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_complex_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_complex_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_complex_piter.hh>
#include <mln/core/site_set/p_complex_piter.hh>
int main()
Index: tests/unit_test/mln_io_ppm_save.cc
--- tests/unit_test/mln_io_ppm_save.cc (revision 3032)
+++ tests/unit_test/mln_io_ppm_save.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/ppm/save.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/ppm/save.hh>
#include <mln/io/ppm/save.hh>
int main()
Index: tests/unit_test/mln_fun_i2v_all_to.cc
--- tests/unit_test/mln_fun_i2v_all_to.cc (revision 3032)
+++ tests/unit_test/mln_fun_i2v_all_to.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/i2v/all_to.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/i2v/all_to.hh>
#include <mln/fun/i2v/all_to.hh>
int main()
Index: tests/unit_test/mln_morpho_meyer_wst.cc
--- tests/unit_test/mln_morpho_meyer_wst.cc (revision 3032)
+++ tests/unit_test/mln_morpho_meyer_wst.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/meyer_wst.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/meyer_wst.hh>
#include <mln/morpho/meyer_wst.hh>
int main()
Index: tests/unit_test/mln_win_hline2d.cc
--- tests/unit_test/mln_win_hline2d.cc (revision 3032)
+++ tests/unit_test/mln_win_hline2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/hline2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/hline2d.hh>
#include <mln/win/hline2d.hh>
int main()
Index: tests/unit_test/mln_value_label_8.cc
--- tests/unit_test/mln_value_label_8.cc (revision 3032)
+++ tests/unit_test/mln_value_label_8.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/label_8.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/label_8.hh>
#include <mln/value/label_8.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_line2d.cc
--- tests/unit_test/mln_core_site_set_p_line2d.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_line2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_line2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_line2d.hh>
#include <mln/core/site_set/p_line2d.hh>
int main()
Index: tests/unit_test/mln_core_image_graph_elt_window.cc
--- tests/unit_test/mln_core_image_graph_elt_window.cc (revision 3032)
+++ tests/unit_test/mln_core_image_graph_elt_window.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/graph_elt_window.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/graph_elt_window.hh>
#include <mln/core/image/graph_elt_window.hh>
int main()
Index: tests/unit_test/mln_math_round_sat.cc
--- tests/unit_test/mln_math_round_sat.cc (revision 3032)
+++ tests/unit_test/mln_math_round_sat.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/math/round_sat.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/math/round_sat.hh>
#include <mln/math/round_sat.hh>
int main()
Index: tests/unit_test/mln_io_pnm_max_component.cc
--- tests/unit_test/mln_io_pnm_max_component.cc (revision 3032)
+++ tests/unit_test/mln_io_pnm_max_component.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pnm/max_component.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pnm/max_component.hh>
#include <mln/io/pnm/max_component.hh>
int main()
Index: tests/unit_test/mln_convert_all.cc
--- tests/unit_test/mln_convert_all.cc (revision 3032)
+++ tests/unit_test/mln_convert_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/convert/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/convert/all.hh>
#include <mln/convert/all.hh>
int main()
Index: tests/unit_test/mln_trait_op_uplus.cc
--- tests/unit_test/mln_trait_op_uplus.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_uplus.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/uplus.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/uplus.hh>
#include <mln/trait/op/uplus.hh>
int main()
Index: tests/unit_test/mln_accu_land_basic.cc
--- tests/unit_test/mln_accu_land_basic.cc (revision 3032)
+++ tests/unit_test/mln_accu_land_basic.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/land_basic.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/land_basic.hh>
#include <mln/accu/land_basic.hh>
int main()
Index: tests/unit_test/mln_trait_all.cc
--- tests/unit_test/mln_trait_all.cc (revision 3032)
+++ tests/unit_test/mln_trait_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/all.hh>
#include <mln/trait/all.hh>
int main()
Index: tests/unit_test/mln_fun_x2v_all.cc
--- tests/unit_test/mln_fun_x2v_all.cc (revision 3032)
+++ tests/unit_test/mln_fun_x2v_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/x2v/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/x2v/all.hh>
#include <mln/fun/x2v/all.hh>
int main()
Index: tests/unit_test/mln_core_concept_mesh.cc
--- tests/unit_test/mln_core_concept_mesh.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_mesh.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/mesh.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/mesh.hh>
#include <mln/core/concept/mesh.hh>
int main()
Index: tests/unit_test/mln_fun_vv2v_macros.cc
--- tests/unit_test/mln_fun_vv2v_macros.cc (revision 3032)
+++ tests/unit_test/mln_fun_vv2v_macros.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/vv2v/macros.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/vv2v/macros.hh>
#include <mln/fun/vv2v/macros.hh>
int main()
Index: tests/unit_test/mln_fun_all.cc
--- tests/unit_test/mln_fun_all.cc (revision 3032)
+++ tests/unit_test/mln_fun_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/all.hh>
#include <mln/fun/all.hh>
int main()
Index: tests/unit_test/mln_linear_essential.cc
--- tests/unit_test/mln_linear_essential.cc (revision 3032)
+++ tests/unit_test/mln_linear_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/linear/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/linear/essential.hh>
#include <mln/linear/essential.hh>
int main()
Index: tests/unit_test/mln_morpho_elementary_all.cc
--- tests/unit_test/mln_morpho_elementary_all.cc (revision 3032)
+++ tests/unit_test/mln_morpho_elementary_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/elementary/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/elementary/all.hh>
#include <mln/morpho/elementary/all.hh>
int main()
Index: tests/unit_test/mln_value_label_16.cc
--- tests/unit_test/mln_value_label_16.cc (revision 3032)
+++ tests/unit_test/mln_value_label_16.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/label_16.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/label_16.hh>
#include <mln/value/label_16.hh>
int main()
Index: tests/unit_test/mln_accu_line.cc
--- tests/unit_test/mln_accu_line.cc (revision 3032)
+++ tests/unit_test/mln_accu_line.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/line.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/line.hh>
#include <mln/accu/line.hh>
int main()
Index: tests/unit_test/mln_core_image_fi_adaptor.cc
--- tests/unit_test/mln_core_image_fi_adaptor.cc (revision 3032)
+++ tests/unit_test/mln_core_image_fi_adaptor.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/fi_adaptor.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/fi_adaptor.hh>
#include <mln/core/image/fi_adaptor.hh>
int main()
Index: tests/unit_test/mln_norm_essential.cc
--- tests/unit_test/mln_norm_essential.cc (revision 3032)
+++ tests/unit_test/mln_norm_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/norm/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/norm/essential.hh>
#include <mln/norm/essential.hh>
int main()
Index: tests/unit_test/mln_util_max.cc
--- tests/unit_test/mln_util_max.cc (revision 3032)
+++ tests/unit_test/mln_util_max.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/max.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/max.hh>
#include <mln/util/max.hh>
int main()
Index: tests/unit_test/mln_labeling_essential.cc
--- tests/unit_test/mln_labeling_essential.cc (revision 3032)
+++ tests/unit_test/mln_labeling_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/labeling/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/labeling/essential.hh>
#include <mln/labeling/essential.hh>
int main()
Index: tests/unit_test/mln_metal_math_sqrt.cc
--- tests/unit_test/mln_metal_math_sqrt.cc (revision 3032)
+++ tests/unit_test/mln_metal_math_sqrt.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/math/sqrt.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/math/sqrt.hh>
#include <mln/metal/math/sqrt.hh>
int main()
Index: tests/unit_test/mln_metal_array1d.cc
--- tests/unit_test/mln_metal_array1d.cc (revision 3032)
+++ tests/unit_test/mln_metal_array1d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/array1d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/array1d.hh>
#include <mln/metal/array1d.hh>
int main()
Index: tests/unit_test/mln_morpho_tree_max.cc
--- tests/unit_test/mln_morpho_tree_max.cc (revision 3032)
+++ tests/unit_test/mln_morpho_tree_max.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/tree/max.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/tree/max.hh>
#include <mln/morpho/tree/max.hh>
int main()
Index: tests/unit_test/mln_core_image_image2d_h.cc
--- tests/unit_test/mln_core_image_image2d_h.cc (revision 3032)
+++ tests/unit_test/mln_core_image_image2d_h.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/image2d_h.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/image2d_h.hh>
#include <mln/core/image/image2d_h.hh>
int main()
Index: tests/unit_test/mln_literal_zero.cc
--- tests/unit_test/mln_literal_zero.cc (revision 3032)
+++ tests/unit_test/mln_literal_zero.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/literal/zero.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/literal/zero.hh>
#include <mln/literal/zero.hh>
int main()
Index: tests/unit_test/mln_fun_x2v_essential.cc
--- tests/unit_test/mln_fun_x2v_essential.cc (revision 3032)
+++ tests/unit_test/mln_fun_x2v_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/x2v/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/x2v/essential.hh>
#include <mln/fun/x2v/essential.hh>
int main()
Index: tests/unit_test/mln_math_max.cc
--- tests/unit_test/mln_math_max.cc (revision 3032)
+++ tests/unit_test/mln_math_max.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/math/max.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/math/max.hh>
#include <mln/math/max.hh>
int main()
Index: tests/unit_test/mln_math_jacobi.cc
--- tests/unit_test/mln_math_jacobi.cc (revision 3032)
+++ tests/unit_test/mln_math_jacobi.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/math/jacobi.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/math/jacobi.hh>
#include <mln/math/jacobi.hh>
int main()
Index: tests/unit_test/mln_geom_bbox.cc
--- tests/unit_test/mln_geom_bbox.cc (revision 3032)
+++ tests/unit_test/mln_geom_bbox.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/bbox.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/bbox.hh>
#include <mln/geom/bbox.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_pixel_iterator.cc
--- tests/unit_test/mln_core_concept_doc_pixel_iterator.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_pixel_iterator.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/pixel_iterator.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/pixel_iterator.hh>
#include <mln/core/concept/doc/pixel_iterator.hh>
int main()
Index: tests/unit_test/mln_level_transform.cc
--- tests/unit_test/mln_level_transform.cc (revision 3032)
+++ tests/unit_test/mln_level_transform.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/transform.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/transform.hh>
#include <mln/level/transform.hh>
int main()
Index: tests/unit_test/mln_geom_max_sli.cc
--- tests/unit_test/mln_geom_max_sli.cc (revision 3032)
+++ tests/unit_test/mln_geom_max_sli.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/max_sli.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/max_sli.hh>
#include <mln/geom/max_sli.hh>
int main()
Index: tests/unit_test/mln_draw_essential.cc
--- tests/unit_test/mln_draw_essential.cc (revision 3032)
+++ tests/unit_test/mln_draw_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/draw/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/draw/essential.hh>
#include <mln/draw/essential.hh>
int main()
Index: tests/unit_test/mln_trait_undef.cc
--- tests/unit_test/mln_trait_undef.cc (revision 3032)
+++ tests/unit_test/mln_trait_undef.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/undef.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/undef.hh>
#include <mln/trait/undef.hh>
int main()
Index: tests/unit_test/mln_estim_sum.cc
--- tests/unit_test/mln_estim_sum.cc (revision 3032)
+++ tests/unit_test/mln_estim_sum.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/estim/sum.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/estim/sum.hh>
#include <mln/estim/sum.hh>
int main()
Index: tests/unit_test/mln_canvas_morpho_essential.cc
--- tests/unit_test/mln_canvas_morpho_essential.cc (revision 3032)
+++ tests/unit_test/mln_canvas_morpho_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/morpho/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/morpho/essential.hh>
#include <mln/canvas/morpho/essential.hh>
int main()
Index: tests/unit_test/mln_extension_duplicate.cc
--- tests/unit_test/mln_extension_duplicate.cc (revision 3032)
+++ tests/unit_test/mln_extension_duplicate.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/extension/duplicate.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/extension/duplicate.hh>
#include <mln/extension/duplicate.hh>
int main()
Index: tests/unit_test/mln_math_diff_abs.cc
--- tests/unit_test/mln_math_diff_abs.cc (revision 3032)
+++ tests/unit_test/mln_math_diff_abs.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/math/diff_abs.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/math/diff_abs.hh>
#include <mln/math/diff_abs.hh>
int main()
Index: tests/unit_test/mln_morpho_elementary_closing.cc
--- tests/unit_test/mln_morpho_elementary_closing.cc (revision 3032)
+++ tests/unit_test/mln_morpho_elementary_closing.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/elementary/closing.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/elementary/closing.hh>
#include <mln/morpho/elementary/closing.hh>
int main()
Index: tests/unit_test/mln_morpho_min.cc
--- tests/unit_test/mln_morpho_min.cc (revision 3032)
+++ tests/unit_test/mln_morpho_min.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/min.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/min.hh>
#include <mln/morpho/min.hh>
int main()
Index: tests/unit_test/mln_value_float01_f.cc
--- tests/unit_test/mln_value_float01_f.cc (revision 3032)
+++ tests/unit_test/mln_value_float01_f.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/float01_f.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/float01_f.hh>
#include <mln/value/float01_f.hh>
int main()
Index: tests/unit_test/mln_win_multiple.cc
--- tests/unit_test/mln_win_multiple.cc (revision 3032)
+++ tests/unit_test/mln_win_multiple.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/multiple.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/multiple.hh>
#include <mln/win/multiple.hh>
int main()
Index: tests/unit_test/mln_all.cc
--- tests/unit_test/mln_all.cc (revision 3032)
+++ tests/unit_test/mln_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/all.hh>
#include <mln/all.hh>
int main()
Index: tests/unit_test/mln_make_vec.cc
--- tests/unit_test/mln_make_vec.cc (revision 3032)
+++ tests/unit_test/mln_make_vec.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/vec.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/vec.hh>
#include <mln/make/vec.hh>
int main()
Index: tests/unit_test/mln_morpho_closing_area_on_vertices.cc
--- tests/unit_test/mln_morpho_closing_area_on_vertices.cc (revision 3032)
+++ tests/unit_test/mln_morpho_closing_area_on_vertices.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/closing_area_on_vertices.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/closing_area_on_vertices.hh>
#include <mln/morpho/closing_area_on_vertices.hh>
int main()
Index: tests/unit_test/mln_morpho_opening_volume.cc
--- tests/unit_test/mln_morpho_opening_volume.cc (revision 3032)
+++ tests/unit_test/mln_morpho_opening_volume.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/opening_volume.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/opening_volume.hh>
#include <mln/morpho/opening_volume.hh>
int main()
Index: tests/unit_test/mln_core_internal_complex_window_p_base.cc
--- tests/unit_test/mln_core_internal_complex_window_p_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_complex_window_p_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/complex_window_p_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/complex_window_p_base.hh>
#include <mln/core/internal/complex_window_p_base.hh>
int main()
Index: tests/unit_test/mln_core_internal_check_image_fastest.cc
--- tests/unit_test/mln_core_internal_check_image_fastest.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_check_image_fastest.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/check/image_fastest.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/check/image_fastest.hh>
#include <mln/core/internal/check/image_fastest.hh>
int main()
Index: tests/unit_test/mln_core_image_value_enc_image.cc
--- tests/unit_test/mln_core_image_value_enc_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_value_enc_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/value_enc_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/value_enc_image.hh>
#include <mln/core/image/value_enc_image.hh>
int main()
Index: tests/unit_test/mln_util_nil.cc
--- tests/unit_test/mln_util_nil.cc (revision 3032)
+++ tests/unit_test/mln_util_nil.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/nil.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/nil.hh>
#include <mln/util/nil.hh>
int main()
Index: tests/unit_test/mln_core_all.cc
--- tests/unit_test/mln_core_all.cc (revision 3032)
+++ tests/unit_test/mln_core_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/all.hh>
#include <mln/core/all.hh>
int main()
Index: tests/unit_test/mln_fun_x2v_nneighbor.cc
--- tests/unit_test/mln_fun_x2v_nneighbor.cc (revision 3032)
+++ tests/unit_test/mln_fun_x2v_nneighbor.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/x2v/nneighbor.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/x2v/nneighbor.hh>
#include <mln/fun/x2v/nneighbor.hh>
int main()
Index: tests/unit_test/mln_morpho_complementation.cc
--- tests/unit_test/mln_morpho_complementation.cc (revision 3032)
+++ tests/unit_test/mln_morpho_complementation.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/complementation.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/complementation.hh>
#include <mln/morpho/complementation.hh>
int main()
Index: tests/unit_test/mln_make_point2d_h.cc
--- tests/unit_test/mln_make_point2d_h.cc (revision 3032)
+++ tests/unit_test/mln_make_point2d_h.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/point2d_h.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/point2d_h.hh>
#include <mln/make/point2d_h.hh>
int main()
Index: tests/unit_test/mln_io_pbm_save.cc
--- tests/unit_test/mln_io_pbm_save.cc (revision 3032)
+++ tests/unit_test/mln_io_pbm_save.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pbm/save.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pbm/save.hh>
#include <mln/io/pbm/save.hh>
int main()
Index: tests/unit_test/mln_geom_min_ind.cc
--- tests/unit_test/mln_geom_min_ind.cc (revision 3032)
+++ tests/unit_test/mln_geom_min_ind.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/min_ind.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/min_ind.hh>
#include <mln/geom/min_ind.hh>
int main()
Index: tests/unit_test/mln_trait_ch_value.cc
--- tests/unit_test/mln_trait_ch_value.cc (revision 3032)
+++ tests/unit_test/mln_trait_ch_value.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/ch_value.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/ch_value.hh>
#include <mln/trait/ch_value.hh>
int main()
Index: tests/unit_test/mln_fun_v2b_all.cc
--- tests/unit_test/mln_fun_v2b_all.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2b_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2b/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2b/all.hh>
#include <mln/fun/v2b/all.hh>
int main()
Index: tests/unit_test/mln_core_pixel.cc
--- tests/unit_test/mln_core_pixel.cc (revision 3032)
+++ tests/unit_test/mln_core_pixel.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/pixel.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/pixel.hh>
#include <mln/core/pixel.hh>
int main()
Index: tests/unit_test/mln_util_tracked_ptr.cc
--- tests/unit_test/mln_util_tracked_ptr.cc (revision 3032)
+++ tests/unit_test/mln_util_tracked_ptr.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/tracked_ptr.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/tracked_ptr.hh>
#include <mln/util/tracked_ptr.hh>
int main()
Index: tests/unit_test/mln_test_predicate.cc
--- tests/unit_test/mln_test_predicate.cc (revision 3032)
+++ tests/unit_test/mln_test_predicate.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/test/predicate.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/test/predicate.hh>
#include <mln/test/predicate.hh>
int main()
Index: tests/unit_test/mln_core_alias_point1d.cc
--- tests/unit_test/mln_core_alias_point1d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_point1d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/point1d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/point1d.hh>
#include <mln/core/alias/point1d.hh>
int main()
Index: tests/unit_test/mln_metal_math_pow.cc
--- tests/unit_test/mln_metal_math_pow.cc (revision 3032)
+++ tests/unit_test/mln_metal_math_pow.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/math/pow.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/math/pow.hh>
#include <mln/metal/math/pow.hh>
int main()
Index: tests/unit_test/mln_core_concept_site_set.cc
--- tests/unit_test/mln_core_concept_site_set.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_site_set.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/site_set.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/site_set.hh>
#include <mln/core/concept/site_set.hh>
int main()
Index: tests/unit_test/mln_labeling_relabel.cc
--- tests/unit_test/mln_labeling_relabel.cc (revision 3032)
+++ tests/unit_test/mln_labeling_relabel.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/labeling/relabel.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/labeling/relabel.hh>
#include <mln/labeling/relabel.hh>
int main()
Index: tests/unit_test/mln_convert_from_to.cc
--- tests/unit_test/mln_convert_from_to.cc (revision 3032)
+++ tests/unit_test/mln_convert_from_to.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/convert/from_to.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/convert/from_to.hh>
#include <mln/convert/from_to.hh>
int main()
Index: tests/unit_test/mln_core_internal_site_relative_iterator_base.cc
--- tests/unit_test/mln_core_internal_site_relative_iterator_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_site_relative_iterator_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/site_relative_iterator_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/site_relative_iterator_base.hh>
#include <mln/core/internal/site_relative_iterator_base.hh>
int main()
Index: tests/unit_test/mln_geom_size1d.cc
--- tests/unit_test/mln_geom_size1d.cc (revision 3032)
+++ tests/unit_test/mln_geom_size1d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/size1d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/size1d.hh>
#include <mln/geom/size1d.hh>
int main()
Index: tests/unit_test/mln_value_internal_value_like.cc
--- tests/unit_test/mln_value_internal_value_like.cc (revision 3032)
+++ tests/unit_test/mln_value_internal_value_like.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/internal/value_like.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/internal/value_like.hh>
#include <mln/value/internal/value_like.hh>
int main()
Index: tests/unit_test/mln_core_internal_exact.cc
--- tests/unit_test/mln_core_internal_exact.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_exact.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/exact.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/exact.hh>
#include <mln/core/internal/exact.hh>
int main()
Index: tests/unit_test/mln_topo_all.cc
--- tests/unit_test/mln_topo_all.cc (revision 3032)
+++ tests/unit_test/mln_topo_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/all.hh>
#include <mln/topo/all.hh>
int main()
Index: tests/unit_test/mln_topo_n_faces_set.cc
--- tests/unit_test/mln_topo_n_faces_set.cc (revision 3032)
+++ tests/unit_test/mln_topo_n_faces_set.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/n_faces_set.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/n_faces_set.hh>
#include <mln/topo/n_faces_set.hh>
int main()
Index: tests/unit_test/mln_core_internal_run_image.cc
--- tests/unit_test/mln_core_internal_run_image.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_run_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/run_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/run_image.hh>
#include <mln/core/internal/run_image.hh>
int main()
Index: tests/unit_test/mln_linear_log.cc
--- tests/unit_test/mln_linear_log.cc (revision 3032)
+++ tests/unit_test/mln_linear_log.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/linear/log.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/linear/log.hh>
#include <mln/linear/log.hh>
int main()
Index: tests/unit_test/build_unit_test.sh
--- tests/unit_test/build_unit_test.sh (revision 3032)
+++ tests/unit_test/build_unit_test.sh (working copy)
@@ -18,15 +18,21 @@
for i in $HEADERS; do
FILE_CC=`echo $i | sed 's/[/.]/_/g' | sed 's/_hh/\.cc/g'`
+
#Build .cc
- echo "// Unit test for $i." >> $FILE_CC
- echo "// Generated file, do not modify." >> $FILE_CC
- echo "#include <$i>" >> $FILE_CC
- echo "" >> $FILE_CC
- echo "int main()" >> $FILE_CC
- echo "{" >> $FILE_CC
- echo " // Nothing." >> $FILE_CC
- echo "}" >> $FILE_CC
+ cat > $FILE_CC << EOF
+// Unit test for $i.
+// Generated by $0, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <$i>
+#include <$i>
+
+int main()
+{
+ // Nothing.
+}
+EOF
#build Makefile.am
TARGET=`echo "${FILE_CC}" | sed 's/\.cc//'`
Index: tests/unit_test/mln_convert_to_rgb.cc
--- tests/unit_test/mln_convert_to_rgb.cc (revision 3032)
+++ tests/unit_test/mln_convert_to_rgb.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/convert/to_rgb.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/convert/to_rgb.hh>
#include <mln/convert/to_rgb.hh>
int main()
Index: tests/unit_test/mln_metal_is_not.cc
--- tests/unit_test/mln_metal_is_not.cc (revision 3032)
+++ tests/unit_test/mln_metal_is_not.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/is_not.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/is_not.hh>
#include <mln/metal/is_not.hh>
int main()
Index: tests/unit_test/mln_core_concept_browsing.cc
--- tests/unit_test/mln_core_concept_browsing.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_browsing.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/browsing.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/browsing.hh>
#include <mln/core/concept/browsing.hh>
int main()
Index: tests/unit_test/mln_fun_x2v_l1_norm.cc
--- tests/unit_test/mln_fun_x2v_l1_norm.cc (revision 3032)
+++ tests/unit_test/mln_fun_x2v_l1_norm.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/x2v/l1_norm.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/x2v/l1_norm.hh>
#include <mln/fun/x2v/l1_norm.hh>
int main()
Index: tests/unit_test/mln_canvas_essential.cc
--- tests/unit_test/mln_canvas_essential.cc (revision 3032)
+++ tests/unit_test/mln_canvas_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/essential.hh>
#include <mln/canvas/essential.hh>
int main()
Index: tests/unit_test/mln_trait_op_plus.cc
--- tests/unit_test/mln_trait_op_plus.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_plus.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/plus.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/plus.hh>
#include <mln/trait/op/plus.hh>
int main()
Index: tests/unit_test/mln_accu_tuple.cc
--- tests/unit_test/mln_accu_tuple.cc (revision 3032)
+++ tests/unit_test/mln_accu_tuple.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/tuple.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/tuple.hh>
#include <mln/accu/tuple.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_point_site.cc
--- tests/unit_test/mln_core_concept_doc_point_site.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_point_site.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/point_site.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/point_site.hh>
#include <mln/core/concept/doc/point_site.hh>
int main()
Index: tests/unit_test/mln_core_internal_graph_window_base.cc
--- tests/unit_test/mln_core_internal_graph_window_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_graph_window_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/graph_window_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/graph_window_base.hh>
#include <mln/core/internal/graph_window_base.hh>
int main()
Index: tests/unit_test/mln_core_image_obased_rle_encode.cc
--- tests/unit_test/mln_core_image_obased_rle_encode.cc (revision 3032)
+++ tests/unit_test/mln_core_image_obased_rle_encode.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/obased_rle_encode.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/obased_rle_encode.hh>
#include <mln/core/image/obased_rle_encode.hh>
int main()
Index: tests/unit_test/mln_accu_convolve.cc
--- tests/unit_test/mln_accu_convolve.cc (revision 3032)
+++ tests/unit_test/mln_accu_convolve.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/convolve.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/convolve.hh>
#include <mln/accu/convolve.hh>
int main()
Index: tests/unit_test/mln_border_adjust.cc
--- tests/unit_test/mln_border_adjust.cc (revision 3032)
+++ tests/unit_test/mln_border_adjust.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/border/adjust.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/border/adjust.hh>
#include <mln/border/adjust.hh>
int main()
Index: tests/unit_test/mln_core_internal_p_complex_piter_base.cc
--- tests/unit_test/mln_core_internal_p_complex_piter_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_p_complex_piter_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/p_complex_piter_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/p_complex_piter_base.hh>
#include <mln/core/internal/p_complex_piter_base.hh>
int main()
Index: tests/unit_test/mln_util_set.cc
--- tests/unit_test/mln_util_set.cc (revision 3032)
+++ tests/unit_test/mln_util_set.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/set.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/set.hh>
#include <mln/util/set.hh>
int main()
Index: tests/unit_test/mln_core_image_extension_val.cc
--- tests/unit_test/mln_core_image_extension_val.cc (revision 3032)
+++ tests/unit_test/mln_core_image_extension_val.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/extension_val.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/extension_val.hh>
#include <mln/core/image/extension_val.hh>
int main()
Index: tests/unit_test/mln_convert_to_fun.cc
--- tests/unit_test/mln_convert_to_fun.cc (revision 3032)
+++ tests/unit_test/mln_convert_to_fun.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/convert/to_fun.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/convert/to_fun.hh>
#include <mln/convert/to_fun.hh>
int main()
Index: tests/unit_test/mln_trait_solve.cc
--- tests/unit_test/mln_trait_solve.cc (revision 3032)
+++ tests/unit_test/mln_trait_solve.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/solve.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/solve.hh>
#include <mln/trait/solve.hh>
int main()
Index: tests/unit_test/mln_util_ord_pair.cc
--- tests/unit_test/mln_util_ord_pair.cc (revision 3032)
+++ tests/unit_test/mln_util_ord_pair.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/ord_pair.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/ord_pair.hh>
#include <mln/util/ord_pair.hh>
int main()
Index: tests/unit_test/mln_math_min.cc
--- tests/unit_test/mln_math_min.cc (revision 3032)
+++ tests/unit_test/mln_math_min.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/math/min.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/math/min.hh>
#include <mln/math/min.hh>
int main()
Index: tests/unit_test/mln_logical_and.cc
--- tests/unit_test/mln_logical_and.cc (revision 3032)
+++ tests/unit_test/mln_logical_and.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/logical/and.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/logical/and.hh>
#include <mln/logical/and.hh>
int main()
Index: tests/unit_test/mln_fun_v2v_essential.cc
--- tests/unit_test/mln_fun_v2v_essential.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2v_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2v/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2v/essential.hh>
#include <mln/fun/v2v/essential.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_run_piter.cc
--- tests/unit_test/mln_core_site_set_p_run_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_run_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_run_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_run_piter.hh>
#include <mln/core/site_set/p_run_piter.hh>
int main()
Index: tests/unit_test/mln_linear_local_convolve.cc
--- tests/unit_test/mln_linear_local_convolve.cc (revision 3032)
+++ tests/unit_test/mln_linear_local_convolve.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/linear/local/convolve.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/linear/local/convolve.hh>
#include <mln/linear/local/convolve.hh>
int main()
Index: tests/unit_test/mln_accu_median_h.cc
--- tests/unit_test/mln_accu_median_h.cc (revision 3032)
+++ tests/unit_test/mln_accu_median_h.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/median_h.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/median_h.hh>
#include <mln/accu/median_h.hh>
int main()
Index: tests/unit_test/mln_fun_v2v_cast.cc
--- tests/unit_test/mln_fun_v2v_cast.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2v_cast.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2v/cast.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2v/cast.hh>
#include <mln/fun/v2v/cast.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_box.cc
--- tests/unit_test/mln_core_concept_doc_box.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_box.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/box.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/box.hh>
#include <mln/core/concept/doc/box.hh>
int main()
Index: tests/unit_test/mln_level_stretch.cc
--- tests/unit_test/mln_level_stretch.cc (revision 3032)
+++ tests/unit_test/mln_level_stretch.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/stretch.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/stretch.hh>
#include <mln/level/stretch.hh>
int main()
Index: tests/unit_test/mln_util_index.cc
--- tests/unit_test/mln_util_index.cc (revision 3032)
+++ tests/unit_test/mln_util_index.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/index.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/index.hh>
#include <mln/util/index.hh>
int main()
Index: tests/unit_test/mln_trait_site_set_props.cc
--- tests/unit_test/mln_trait_site_set_props.cc (revision 3032)
+++ tests/unit_test/mln_trait_site_set_props.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/site_set/props.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/site_set/props.hh>
#include <mln/trait/site_set/props.hh>
int main()
Index: tests/unit_test/mln_set_uni.cc
--- tests/unit_test/mln_set_uni.cc (revision 3032)
+++ tests/unit_test/mln_set_uni.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/set/uni.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/set/uni.hh>
#include <mln/set/uni.hh>
int main()
Index: tests/unit_test/mln_morpho_opening_attribute.cc
--- tests/unit_test/mln_morpho_opening_attribute.cc (revision 3032)
+++ tests/unit_test/mln_morpho_opening_attribute.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/opening_attribute.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/opening_attribute.hh>
#include <mln/morpho/opening_attribute.hh>
int main()
Index: tests/unit_test/mln_test_all.cc
--- tests/unit_test/mln_test_all.cc (revision 3032)
+++ tests/unit_test/mln_test_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/test/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/test/all.hh>
#include <mln/test/all.hh>
int main()
Index: tests/unit_test/mln_metal_fix_return.cc
--- tests/unit_test/mln_metal_fix_return.cc (revision 3032)
+++ tests/unit_test/mln_metal_fix_return.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/fix_return.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/fix_return.hh>
#include <mln/metal/fix_return.hh>
int main()
Index: tests/unit_test/mln_topo_adj_lower_face_iter.cc
--- tests/unit_test/mln_topo_adj_lower_face_iter.cc (revision 3032)
+++ tests/unit_test/mln_topo_adj_lower_face_iter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/adj_lower_face_iter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/adj_lower_face_iter.hh>
#include <mln/topo/adj_lower_face_iter.hh>
int main()
Index: tests/unit_test/mln_core_pixter1d.cc
--- tests/unit_test/mln_core_pixter1d.cc (revision 3032)
+++ tests/unit_test/mln_core_pixter1d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/pixter1d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/pixter1d.hh>
#include <mln/core/pixter1d.hh>
int main()
Index: tests/unit_test/mln_metal_unconst.cc
--- tests/unit_test/mln_metal_unconst.cc (revision 3032)
+++ tests/unit_test/mln_metal_unconst.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/unconst.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/unconst.hh>
#include <mln/metal/unconst.hh>
int main()
Index: tests/unit_test/mln_core_alias_w_window2d_int.cc
--- tests/unit_test/mln_core_alias_w_window2d_int.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_w_window2d_int.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/w_window2d_int.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/w_window2d_int.hh>
#include <mln/core/alias/w_window2d_int.hh>
int main()
Index: tests/unit_test/mln_core_routine_ops.cc
--- tests/unit_test/mln_core_routine_ops.cc (revision 3032)
+++ tests/unit_test/mln_core_routine_ops.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/routine/ops.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/routine/ops.hh>
#include <mln/core/routine/ops.hh>
int main()
Index: tests/unit_test/mln_fun_v2v_inc.cc
--- tests/unit_test/mln_fun_v2v_inc.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2v_inc.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2v/inc.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2v/inc.hh>
#include <mln/fun/v2v/inc.hh>
int main()
Index: tests/unit_test/mln_io_off_save.cc
--- tests/unit_test/mln_io_off_save.cc (revision 3032)
+++ tests/unit_test/mln_io_off_save.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/off/save.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/off/save.hh>
#include <mln/io/off/save.hh>
int main()
Index: tests/unit_test/mln_level_memset_.cc
--- tests/unit_test/mln_level_memset_.cc (revision 3032)
+++ tests/unit_test/mln_level_memset_.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/memset_.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/memset_.hh>
#include <mln/level/memset_.hh>
int main()
Index: tests/unit_test/mln_metal_is_not_const.cc
--- tests/unit_test/mln_metal_is_not_const.cc (revision 3032)
+++ tests/unit_test/mln_metal_is_not_const.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/is_not_const.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/is_not_const.hh>
#include <mln/metal/is_not_const.hh>
int main()
Index: tests/unit_test/mln_accu_pair.cc
--- tests/unit_test/mln_accu_pair.cc (revision 3032)
+++ tests/unit_test/mln_accu_pair.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/pair.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/pair.hh>
#include <mln/accu/pair.hh>
int main()
Index: tests/unit_test/mln_fun_l2l_relabel.cc
--- tests/unit_test/mln_fun_l2l_relabel.cc (revision 3032)
+++ tests/unit_test/mln_fun_l2l_relabel.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/l2l/relabel.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/l2l/relabel.hh>
#include <mln/fun/l2l/relabel.hh>
int main()
Index: tests/unit_test/mln_trait_op_essential.cc
--- tests/unit_test/mln_trait_op_essential.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/essential.hh>
#include <mln/trait/op/essential.hh>
int main()
Index: tests/unit_test/mln_make_voronoi.cc
--- tests/unit_test/mln_make_voronoi.cc (revision 3032)
+++ tests/unit_test/mln_make_voronoi.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/voronoi.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/voronoi.hh>
#include <mln/make/voronoi.hh>
int main()
Index: tests/unit_test/mln_core_image_safe.cc
--- tests/unit_test/mln_core_image_safe.cc (revision 3032)
+++ tests/unit_test/mln_core_image_safe.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/safe.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/safe.hh>
#include <mln/core/image/safe.hh>
int main()
Index: tests/unit_test/mln_metal_is_ref.cc
--- tests/unit_test/mln_metal_is_ref.cc (revision 3032)
+++ tests/unit_test/mln_metal_is_ref.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/is_ref.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/is_ref.hh>
#include <mln/metal/is_ref.hh>
int main()
Index: tests/unit_test/mln_metal_abort.cc
--- tests/unit_test/mln_metal_abort.cc (revision 3032)
+++ tests/unit_test/mln_metal_abort.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/abort.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/abort.hh>
#include <mln/metal/abort.hh>
int main()
Index: tests/unit_test/mln_io_off_all.cc
--- tests/unit_test/mln_io_off_all.cc (revision 3032)
+++ tests/unit_test/mln_io_off_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/off/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/off/all.hh>
#include <mln/io/off/all.hh>
int main()
Index: tests/unit_test/mln_win_shift.cc
--- tests/unit_test/mln_win_shift.cc (revision 3032)
+++ tests/unit_test/mln_win_shift.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/shift.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/shift.hh>
#include <mln/win/shift.hh>
int main()
Index: tests/unit_test/mln_metal_all.cc
--- tests/unit_test/mln_metal_all.cc (revision 3032)
+++ tests/unit_test/mln_metal_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/all.hh>
#include <mln/metal/all.hh>
int main()
Index: tests/unit_test/mln_core_alias_w_window3d_float.cc
--- tests/unit_test/mln_core_alias_w_window3d_float.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_w_window3d_float.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/w_window3d_float.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/w_window3d_float.hh>
#include <mln/core/alias/w_window3d_float.hh>
int main()
Index: tests/unit_test/mln_core_internal_complex_neighborhood_base.cc
--- tests/unit_test/mln_core_internal_complex_neighborhood_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_complex_neighborhood_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/complex_neighborhood_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/complex_neighborhood_base.hh>
#include <mln/core/internal/complex_neighborhood_base.hh>
int main()
Index: tests/unit_test/mln_fun_x2v_bilinear.cc
--- tests/unit_test/mln_fun_x2v_bilinear.cc (revision 3032)
+++ tests/unit_test/mln_fun_x2v_bilinear.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/x2v/bilinear.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/x2v/bilinear.hh>
#include <mln/fun/x2v/bilinear.hh>
int main()
Index: tests/unit_test/mln_make_dual_neighb.cc
--- tests/unit_test/mln_make_dual_neighb.cc (revision 3032)
+++ tests/unit_test/mln_make_dual_neighb.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/dual_neighb.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/dual_neighb.hh>
#include <mln/make/dual_neighb.hh>
int main()
Index: tests/unit_test/mln_io_txt_all.cc
--- tests/unit_test/mln_io_txt_all.cc (revision 3032)
+++ tests/unit_test/mln_io_txt_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/txt/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/txt/all.hh>
#include <mln/io/txt/all.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_mutable_array_of.cc
--- tests/unit_test/mln_core_site_set_p_mutable_array_of.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_mutable_array_of.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_mutable_array_of.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_mutable_array_of.hh>
#include <mln/core/site_set/p_mutable_array_of.hh>
int main()
Index: tests/unit_test/mln_fun_p2b_essential.cc
--- tests/unit_test/mln_fun_p2b_essential.cc (revision 3032)
+++ tests/unit_test/mln_fun_p2b_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/p2b/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/p2b/essential.hh>
#include <mln/fun/p2b/essential.hh>
int main()
Index: tests/unit_test/mln_core_alias_dpoint1d.cc
--- tests/unit_test/mln_core_alias_dpoint1d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_dpoint1d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/dpoint1d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/dpoint1d.hh>
#include <mln/core/alias/dpoint1d.hh>
int main()
Index: tests/unit_test/mln_make_image2d.cc
--- tests/unit_test/mln_make_image2d.cc (revision 3032)
+++ tests/unit_test/mln_make_image2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/image2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/image2d.hh>
#include <mln/make/image2d.hh>
int main()
Index: tests/unit_test/mln_value_int_s.cc
--- tests/unit_test/mln_value_int_s.cc (revision 3032)
+++ tests/unit_test/mln_value_int_s.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/int_s.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/int_s.hh>
#include <mln/value/int_s.hh>
int main()
Index: tests/unit_test/mln_win_cuboid3d.cc
--- tests/unit_test/mln_win_cuboid3d.cc (revision 3032)
+++ tests/unit_test/mln_win_cuboid3d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/cuboid3d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/cuboid3d.hh>
#include <mln/win/cuboid3d.hh>
int main()
Index: tests/unit_test/mln_core_image_rle_encode.cc
--- tests/unit_test/mln_core_image_rle_encode.cc (revision 3032)
+++ tests/unit_test/mln_core_image_rle_encode.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/rle_encode.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/rle_encode.hh>
#include <mln/core/image/rle_encode.hh>
int main()
Index: tests/unit_test/mln_morpho_closing_area.cc
--- tests/unit_test/mln_morpho_closing_area.cc (revision 3032)
+++ tests/unit_test/mln_morpho_closing_area.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/closing_area.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/closing_area.hh>
#include <mln/morpho/closing_area.hh>
int main()
Index: tests/unit_test/mln_accu_transform_stop.cc
--- tests/unit_test/mln_accu_transform_stop.cc (revision 3032)
+++ tests/unit_test/mln_accu_transform_stop.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/transform_stop.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/transform_stop.hh>
#include <mln/accu/transform_stop.hh>
int main()
Index: tests/unit_test/mln_border_equalize.cc
--- tests/unit_test/mln_border_equalize.cc (revision 3032)
+++ tests/unit_test/mln_border_equalize.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/border/equalize.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/border/equalize.hh>
#include <mln/border/equalize.hh>
int main()
Index: tests/unit_test/mln_geom_nsites.cc
--- tests/unit_test/mln_geom_nsites.cc (revision 3032)
+++ tests/unit_test/mln_geom_nsites.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/nsites.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/nsites.hh>
#include <mln/geom/nsites.hh>
int main()
Index: tests/unit_test/mln_core_image_plain.cc
--- tests/unit_test/mln_core_image_plain.cc (revision 3032)
+++ tests/unit_test/mln_core_image_plain.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/plain.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/plain.hh>
#include <mln/core/image/plain.hh>
int main()
Index: tests/unit_test/mln_core_internal_data.cc
--- tests/unit_test/mln_core_internal_data.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_data.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/data.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/data.hh>
#include <mln/core/internal/data.hh>
int main()
Index: tests/unit_test/mln_metal_math_root.cc
--- tests/unit_test/mln_metal_math_root.cc (revision 3032)
+++ tests/unit_test/mln_metal_math_root.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/math/root.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/math/root.hh>
#include <mln/metal/math/root.hh>
int main()
Index: tests/unit_test/mln_transform_internal_distance_functor.cc
--- tests/unit_test/mln_transform_internal_distance_functor.cc (revision 3032)
+++ tests/unit_test/mln_transform_internal_distance_functor.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/transform/internal/distance_functor.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/transform/internal/distance_functor.hh>
#include <mln/transform/internal/distance_functor.hh>
int main()
Index: tests/unit_test/mln_topo_internal_complex_set_iterator_base.cc
--- tests/unit_test/mln_topo_internal_complex_set_iterator_base.cc (revision 3032)
+++ tests/unit_test/mln_topo_internal_complex_set_iterator_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/internal/complex_set_iterator_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/internal/complex_set_iterator_base.hh>
#include <mln/topo/internal/complex_set_iterator_base.hh>
int main()
Index: tests/unit_test/mln_io_ppm_load.cc
--- tests/unit_test/mln_io_ppm_load.cc (revision 3032)
+++ tests/unit_test/mln_io_ppm_load.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/ppm/load.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/ppm/load.hh>
#include <mln/io/ppm/load.hh>
int main()
Index: tests/unit_test/mln_value_essential.cc
--- tests/unit_test/mln_value_essential.cc (revision 3032)
+++ tests/unit_test/mln_value_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/essential.hh>
#include <mln/value/essential.hh>
int main()
Index: tests/unit_test/mln_core_internal_weighted_window_base.cc
--- tests/unit_test/mln_core_internal_weighted_window_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_weighted_window_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/weighted_window_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/weighted_window_base.hh>
#include <mln/core/internal/weighted_window_base.hh>
int main()
Index: tests/unit_test/mln_metal_array2d.cc
--- tests/unit_test/mln_metal_array2d.cc (revision 3032)
+++ tests/unit_test/mln_metal_array2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/array2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/array2d.hh>
#include <mln/metal/array2d.hh>
int main()
Index: tests/unit_test/mln_transform_distance_geodesic.cc
--- tests/unit_test/mln_transform_distance_geodesic.cc (revision 3032)
+++ tests/unit_test/mln_transform_distance_geodesic.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/transform/distance_geodesic.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/transform/distance_geodesic.hh>
#include <mln/transform/distance_geodesic.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_n_faces_piter.cc
--- tests/unit_test/mln_core_site_set_p_n_faces_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_n_faces_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_n_faces_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_n_faces_piter.hh>
#include <mln/core/site_set/p_n_faces_piter.hh>
int main()
Index: tests/unit_test/mln_geom_nslis.cc
--- tests/unit_test/mln_geom_nslis.cc (revision 3032)
+++ tests/unit_test/mln_geom_nslis.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/nslis.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/nslis.hh>
#include <mln/geom/nslis.hh>
int main()
Index: tests/unit_test/mln_logical_xor.cc
--- tests/unit_test/mln_logical_xor.cc (revision 3032)
+++ tests/unit_test/mln_logical_xor.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/logical/xor.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/logical/xor.hh>
#include <mln/logical/xor.hh>
int main()
Index: tests/unit_test/mln_accu_height.cc
--- tests/unit_test/mln_accu_height.cc (revision 3032)
+++ tests/unit_test/mln_accu_height.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/height.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/height.hh>
#include <mln/accu/height.hh>
int main()
Index: tests/unit_test/mln_core_concept_proxy.cc
--- tests/unit_test/mln_core_concept_proxy.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_proxy.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/proxy.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/proxy.hh>
#include <mln/core/concept/proxy.hh>
int main()
Index: tests/unit_test/mln_linear_lap.cc
--- tests/unit_test/mln_linear_lap.cc (revision 3032)
+++ tests/unit_test/mln_linear_lap.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/linear/lap.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/linear/lap.hh>
#include <mln/linear/lap.hh>
int main()
Index: tests/unit_test/mln_morpho_thickening.cc
--- tests/unit_test/mln_morpho_thickening.cc (revision 3032)
+++ tests/unit_test/mln_morpho_thickening.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/thickening.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/thickening.hh>
#include <mln/morpho/thickening.hh>
int main()
Index: tests/unit_test/mln_core_image_ch_piter.cc
--- tests/unit_test/mln_core_image_ch_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_image_ch_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/ch_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/ch_piter.hh>
#include <mln/core/image/ch_piter.hh>
int main()
Index: tests/unit_test/mln_trait_images.cc
--- tests/unit_test/mln_trait_images.cc (revision 3032)
+++ tests/unit_test/mln_trait_images.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/images.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/images.hh>
#include <mln/trait/images.hh>
int main()
Index: tests/unit_test/mln_metal_not_equal.cc
--- tests/unit_test/mln_metal_not_equal.cc (revision 3032)
+++ tests/unit_test/mln_metal_not_equal.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/not_equal.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/not_equal.hh>
#include <mln/metal/not_equal.hh>
int main()
Index: tests/unit_test/mln_level_assign.cc
--- tests/unit_test/mln_level_assign.cc (revision 3032)
+++ tests/unit_test/mln_level_assign.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/assign.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/assign.hh>
#include <mln/level/assign.hh>
int main()
Index: tests/unit_test/mln_topo_adj_m_face_iter.cc
--- tests/unit_test/mln_topo_adj_m_face_iter.cc (revision 3032)
+++ tests/unit_test/mln_topo_adj_m_face_iter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/adj_m_face_iter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/adj_m_face_iter.hh>
#include <mln/topo/adj_m_face_iter.hh>
int main()
Index: tests/unit_test/mln_level_apply.cc
--- tests/unit_test/mln_level_apply.cc (revision 3032)
+++ tests/unit_test/mln_level_apply.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/apply.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/apply.hh>
#include <mln/level/apply.hh>
int main()
Index: tests/unit_test/mln_literal_ops.cc
--- tests/unit_test/mln_literal_ops.cc (revision 3032)
+++ tests/unit_test/mln_literal_ops.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/literal/ops.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/literal/ops.hh>
#include <mln/literal/ops.hh>
int main()
Index: tests/unit_test/mln_trait_value_.cc
--- tests/unit_test/mln_trait_value_.cc (revision 3032)
+++ tests/unit_test/mln_trait_value_.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/value_.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/value_.hh>
#include <mln/trait/value_.hh>
int main()
Index: tests/unit_test/mln_trace_resume.cc
--- tests/unit_test/mln_trace_resume.cc (revision 3032)
+++ tests/unit_test/mln_trace_resume.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trace/resume.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trace/resume.hh>
#include <mln/trace/resume.hh>
int main()
Index: tests/unit_test/mln_value_interval.cc
--- tests/unit_test/mln_value_interval.cc (revision 3032)
+++ tests/unit_test/mln_value_interval.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/interval.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/interval.hh>
#include <mln/value/interval.hh>
int main()
Index: tests/unit_test/mln_util_internal_boost_graph_structure.cc
--- tests/unit_test/mln_util_internal_boost_graph_structure.cc (revision 3032)
+++ tests/unit_test/mln_util_internal_boost_graph_structure.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/internal/boost_graph_structure.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/internal/boost_graph_structure.hh>
#include <mln/util/internal/boost_graph_structure.hh>
int main()
Index: tests/unit_test/mln_metal_if.cc
--- tests/unit_test/mln_metal_if.cc (revision 3032)
+++ tests/unit_test/mln_metal_if.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/if.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/if.hh>
#include <mln/metal/if.hh>
int main()
Index: tests/unit_test/mln_logical_essential.cc
--- tests/unit_test/mln_logical_essential.cc (revision 3032)
+++ tests/unit_test/mln_logical_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/logical/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/logical/essential.hh>
#include <mln/logical/essential.hh>
int main()
Index: tests/unit_test/mln_estim_mean.cc
--- tests/unit_test/mln_estim_mean.cc (revision 3032)
+++ tests/unit_test/mln_estim_mean.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/estim/mean.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/estim/mean.hh>
#include <mln/estim/mean.hh>
int main()
Index: tests/unit_test/mln_tag_essential.cc
--- tests/unit_test/mln_tag_essential.cc (revision 3032)
+++ tests/unit_test/mln_tag_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/tag/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/tag/essential.hh>
#include <mln/tag/essential.hh>
int main()
Index: tests/unit_test/mln_morpho_top_hat.cc
--- tests/unit_test/mln_morpho_top_hat.cc (revision 3032)
+++ tests/unit_test/mln_morpho_top_hat.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/top_hat.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/top_hat.hh>
#include <mln/morpho/top_hat.hh>
int main()
Index: tests/unit_test/mln_value_builtin_ops.cc
--- tests/unit_test/mln_value_builtin_ops.cc (revision 3032)
+++ tests/unit_test/mln_value_builtin_ops.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/builtin/ops.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/builtin/ops.hh>
#include <mln/value/builtin/ops.hh>
int main()
Index: tests/unit_test/mln_core_internal_classical_window_base.cc
--- tests/unit_test/mln_core_internal_classical_window_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_classical_window_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/classical_window_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/classical_window_base.hh>
#include <mln/core/internal/classical_window_base.hh>
int main()
Index: tests/unit_test/mln_convert_to_upper_window.cc
--- tests/unit_test/mln_convert_to_upper_window.cc (revision 3032)
+++ tests/unit_test/mln_convert_to_upper_window.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/convert/to_upper_window.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/convert/to_upper_window.hh>
#include <mln/convert/to_upper_window.hh>
int main()
Index: tests/unit_test/mln_win_diff.cc
--- tests/unit_test/mln_win_diff.cc (revision 3032)
+++ tests/unit_test/mln_win_diff.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/diff.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/diff.hh>
#include <mln/win/diff.hh>
int main()
Index: tests/unit_test/mln_fun_v2v_convert.cc
--- tests/unit_test/mln_fun_v2v_convert.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2v_convert.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2v/convert.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2v/convert.hh>
#include <mln/fun/v2v/convert.hh>
int main()
Index: tests/unit_test/mln_io_pfm_save.cc
--- tests/unit_test/mln_io_pfm_save.cc (revision 3032)
+++ tests/unit_test/mln_io_pfm_save.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pfm/save.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pfm/save.hh>
#include <mln/io/pfm/save.hh>
int main()
Index: tests/unit_test/mln_subsampling_subsampling.cc
--- tests/unit_test/mln_subsampling_subsampling.cc (revision 3032)
+++ tests/unit_test/mln_subsampling_subsampling.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/subsampling/subsampling.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/subsampling/subsampling.hh>
#include <mln/subsampling/subsampling.hh>
int main()
Index: tests/unit_test/mln_level_approx_all.cc
--- tests/unit_test/mln_level_approx_all.cc (revision 3032)
+++ tests/unit_test/mln_level_approx_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/approx/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/approx/all.hh>
#include <mln/level/approx/all.hh>
int main()
Index: tests/unit_test/mln_core_internal_pixel_iterator_base.cc
--- tests/unit_test/mln_core_internal_pixel_iterator_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_pixel_iterator_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/pixel_iterator_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/pixel_iterator_base.hh>
#include <mln/core/internal/pixel_iterator_base.hh>
int main()
Index: tests/unit_test/mln_value_internal_gray_.cc
--- tests/unit_test/mln_value_internal_gray_.cc (revision 3032)
+++ tests/unit_test/mln_value_internal_gray_.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/internal/gray_.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/internal/gray_.hh>
#include <mln/value/internal/gray_.hh>
int main()
Index: tests/unit_test/mln_geom_max_col.cc
--- tests/unit_test/mln_geom_max_col.cc (revision 3032)
+++ tests/unit_test/mln_geom_max_col.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/max_col.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/max_col.hh>
#include <mln/geom/max_col.hh>
int main()
Index: tests/unit_test/mln_transform_internal_influence_zone_functor.cc
--- tests/unit_test/mln_transform_internal_influence_zone_functor.cc (revision 3032)
+++ tests/unit_test/mln_transform_internal_influence_zone_functor.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/transform/internal/influence_zone_functor.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/transform/internal/influence_zone_functor.hh>
#include <mln/transform/internal/influence_zone_functor.hh>
int main()
Index: tests/unit_test/mln_value_graylevel_f.cc
--- tests/unit_test/mln_value_graylevel_f.cc (revision 3032)
+++ tests/unit_test/mln_value_graylevel_f.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/graylevel_f.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/graylevel_f.hh>
#include <mln/value/graylevel_f.hh>
int main()
Index: tests/unit_test/mln_level_was_median.cc
--- tests/unit_test/mln_level_was_median.cc (revision 3032)
+++ tests/unit_test/mln_level_was_median.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/was.median.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/was.median.hh>
#include <mln/level/was.median.hh>
int main()
Index: tests/unit_test/mln_core_image_rle_image.cc
--- tests/unit_test/mln_core_image_rle_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_rle_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/rle_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/rle_image.hh>
#include <mln/core/image/rle_image.hh>
int main()
Index: tests/unit_test/mln_core_alias_point2d.cc
--- tests/unit_test/mln_core_alias_point2d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_point2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/point2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/point2d.hh>
#include <mln/core/alias/point2d.hh>
int main()
Index: tests/unit_test/mln_fun_v2v_dec.cc
--- tests/unit_test/mln_fun_v2v_dec.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2v_dec.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2v/dec.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2v/dec.hh>
#include <mln/fun/v2v/dec.hh>
int main()
Index: tests/unit_test/mln_value_scalar.cc
--- tests/unit_test/mln_value_scalar.cc (revision 3032)
+++ tests/unit_test/mln_value_scalar.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/scalar.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/scalar.hh>
#include <mln/value/scalar.hh>
int main()
Index: tests/unit_test/mln_canvas_browsing_directional.cc
--- tests/unit_test/mln_canvas_browsing_directional.cc (revision 3032)
+++ tests/unit_test/mln_canvas_browsing_directional.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/browsing/directional.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/browsing/directional.hh>
#include <mln/canvas/browsing/directional.hh>
int main()
Index: tests/unit_test/mln_debug_iota.cc
--- tests/unit_test/mln_debug_iota.cc (revision 3032)
+++ tests/unit_test/mln_debug_iota.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/debug/iota.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/debug/iota.hh>
#include <mln/debug/iota.hh>
int main()
Index: tests/unit_test/mln_io_pgm_all.cc
--- tests/unit_test/mln_io_pgm_all.cc (revision 3032)
+++ tests/unit_test/mln_io_pgm_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pgm/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pgm/all.hh>
#include <mln/io/pgm/all.hh>
int main()
Index: tests/unit_test/mln_value_all.cc
--- tests/unit_test/mln_value_all.cc (revision 3032)
+++ tests/unit_test/mln_value_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/all.hh>
#include <mln/value/all.hh>
int main()
Index: tests/unit_test/mln_io_pbm_load.cc
--- tests/unit_test/mln_io_pbm_load.cc (revision 3032)
+++ tests/unit_test/mln_io_pbm_load.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pbm/load.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pbm/load.hh>
#include <mln/io/pbm/load.hh>
int main()
Index: tests/unit_test/mln_trait_site_sets.cc
--- tests/unit_test/mln_trait_site_sets.cc (revision 3032)
+++ tests/unit_test/mln_trait_site_sets.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/site_sets.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/site_sets.hh>
#include <mln/trait/site_sets.hh>
int main()
Index: tests/unit_test/mln_core_image_graph_window_piter.cc
--- tests/unit_test/mln_core_image_graph_window_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_image_graph_window_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/graph_window_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/graph_window_piter.hh>
#include <mln/core/image/graph_window_piter.hh>
int main()
Index: tests/unit_test/mln_topo_static_n_face_iter.cc
--- tests/unit_test/mln_topo_static_n_face_iter.cc (revision 3032)
+++ tests/unit_test/mln_topo_static_n_face_iter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/static_n_face_iter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/static_n_face_iter.hh>
#include <mln/topo/static_n_face_iter.hh>
int main()
Index: tests/unit_test/mln_transform_influence_zone_front.cc
--- tests/unit_test/mln_transform_influence_zone_front.cc (revision 3032)
+++ tests/unit_test/mln_transform_influence_zone_front.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/transform/influence_zone_front.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/transform/influence_zone_front.hh>
#include <mln/transform/influence_zone_front.hh>
int main()
Index: tests/unit_test/mln_geom_size2d.cc
--- tests/unit_test/mln_geom_size2d.cc (revision 3032)
+++ tests/unit_test/mln_geom_size2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/size2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/size2d.hh>
#include <mln/geom/size2d.hh>
int main()
Index: tests/unit_test/mln_metal_essential.cc
--- tests/unit_test/mln_metal_essential.cc (revision 3032)
+++ tests/unit_test/mln_metal_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/essential.hh>
#include <mln/metal/essential.hh>
int main()
Index: tests/unit_test/mln_util_vertex.cc
--- tests/unit_test/mln_util_vertex.cc (revision 3032)
+++ tests/unit_test/mln_util_vertex.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/vertex.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/vertex.hh>
#include <mln/util/vertex.hh>
int main()
Index: tests/unit_test/mln_util_branch_iter.cc
--- tests/unit_test/mln_util_branch_iter.cc (revision 3032)
+++ tests/unit_test/mln_util_branch_iter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/branch_iter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/branch_iter.hh>
#include <mln/util/branch_iter.hh>
int main()
Index: tests/unit_test/mln_fun_v2v_linear.cc
--- tests/unit_test/mln_fun_v2v_linear.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2v_linear.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2v/linear.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2v/linear.hh>
#include <mln/fun/v2v/linear.hh>
int main()
Index: tests/unit_test/mln_geom_nrows.cc
--- tests/unit_test/mln_geom_nrows.cc (revision 3032)
+++ tests/unit_test/mln_geom_nrows.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/nrows.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/nrows.hh>
#include <mln/geom/nrows.hh>
int main()
Index: tests/unit_test/mln_value_super_value.cc
--- tests/unit_test/mln_value_super_value.cc (revision 3032)
+++ tests/unit_test/mln_value_super_value.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/super_value.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/super_value.hh>
#include <mln/value/super_value.hh>
int main()
Index: tests/unit_test/mln_value_gl8.cc
--- tests/unit_test/mln_value_gl8.cc (revision 3032)
+++ tests/unit_test/mln_value_gl8.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/gl8.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/gl8.hh>
#include <mln/value/gl8.hh>
int main()
Index: tests/unit_test/mln_trace_all.cc
--- tests/unit_test/mln_trace_all.cc (revision 3032)
+++ tests/unit_test/mln_trace_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trace/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trace/all.hh>
#include <mln/trace/all.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_site_set.cc
--- tests/unit_test/mln_core_concept_doc_site_set.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_site_set.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/site_set.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/site_set.hh>
#include <mln/core/concept/doc/site_set.hh>
int main()
Index: tests/unit_test/mln_core_concept_site_proxy.cc
--- tests/unit_test/mln_core_concept_site_proxy.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_site_proxy.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/site_proxy.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/site_proxy.hh>
#include <mln/core/concept/site_proxy.hh>
int main()
Index: tests/unit_test/mln_canvas_browsing_essential.cc
--- tests/unit_test/mln_canvas_browsing_essential.cc (revision 3032)
+++ tests/unit_test/mln_canvas_browsing_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/browsing/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/browsing/essential.hh>
#include <mln/canvas/browsing/essential.hh>
int main()
Index: tests/unit_test/mln_trait_value_nature.cc
--- tests/unit_test/mln_trait_value_nature.cc (revision 3032)
+++ tests/unit_test/mln_trait_value_nature.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/value/nature.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/value/nature.hh>
#include <mln/trait/value/nature.hh>
int main()
Index: tests/unit_test/mln_morpho_elementary_laplacian.cc
--- tests/unit_test/mln_morpho_elementary_laplacian.cc (revision 3032)
+++ tests/unit_test/mln_morpho_elementary_laplacian.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/elementary/laplacian.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/elementary/laplacian.hh>
#include <mln/morpho/elementary/laplacian.hh>
int main()
Index: tests/unit_test/mln_arith_includes.cc
--- tests/unit_test/mln_arith_includes.cc (revision 3032)
+++ tests/unit_test/mln_arith_includes.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/arith/includes.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/arith/includes.hh>
#include <mln/arith/includes.hh>
int main()
Index: tests/unit_test/mln_fun_essential.cc
--- tests/unit_test/mln_fun_essential.cc (revision 3032)
+++ tests/unit_test/mln_fun_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/essential.hh>
#include <mln/fun/essential.hh>
int main()
Index: tests/unit_test/mln_transform_influence_zone_geodesic.cc
--- tests/unit_test/mln_transform_influence_zone_geodesic.cc (revision 3032)
+++ tests/unit_test/mln_transform_influence_zone_geodesic.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/transform/influence_zone_geodesic.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/transform/influence_zone_geodesic.hh>
#include <mln/transform/influence_zone_geodesic.hh>
int main()
Index: tests/unit_test/mln_value_stack.cc
--- tests/unit_test/mln_value_stack.cc (revision 3032)
+++ tests/unit_test/mln_value_stack.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/stack.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/stack.hh>
#include <mln/value/stack.hh>
int main()
Index: tests/unit_test/mln_level_paste.cc
--- tests/unit_test/mln_level_paste.cc (revision 3032)
+++ tests/unit_test/mln_level_paste.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/paste.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/paste.hh>
#include <mln/level/paste.hh>
int main()
Index: tests/unit_test/mln_core_image_value_encode.cc
--- tests/unit_test/mln_core_image_value_encode.cc (revision 3032)
+++ tests/unit_test/mln_core_image_value_encode.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/value_encode.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/value_encode.hh>
#include <mln/core/image/value_encode.hh>
int main()
Index: tests/unit_test/mln_core_routine_extend.cc
--- tests/unit_test/mln_core_routine_extend.cc (revision 3032)
+++ tests/unit_test/mln_core_routine_extend.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/routine/extend.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/routine/extend.hh>
#include <mln/core/routine/extend.hh>
int main()
Index: tests/unit_test/mln_accu_transform.cc
--- tests/unit_test/mln_accu_transform.cc (revision 3032)
+++ tests/unit_test/mln_accu_transform.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/transform.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/transform.hh>
#include <mln/accu/transform.hh>
int main()
Index: tests/unit_test/mln_border_duplicate.cc
--- tests/unit_test/mln_border_duplicate.cc (revision 3032)
+++ tests/unit_test/mln_border_duplicate.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/border/duplicate.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/border/duplicate.hh>
#include <mln/border/duplicate.hh>
int main()
Index: tests/unit_test/mln_trait_op_all.cc
--- tests/unit_test/mln_trait_op_all.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/all.hh>
#include <mln/trait/op/all.hh>
int main()
Index: tests/unit_test/mln_level_update.cc
--- tests/unit_test/mln_level_update.cc (revision 3032)
+++ tests/unit_test/mln_level_update.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/update.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/update.hh>
#include <mln/level/update.hh>
int main()
Index: tests/unit_test/mln_core_concept_delta_point_site.cc
--- tests/unit_test/mln_core_concept_delta_point_site.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_delta_point_site.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/delta_point_site.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/delta_point_site.hh>
#include <mln/core/concept/delta_point_site.hh>
int main()
Index: tests/unit_test/mln_canvas_browsing_diagonal2d.cc
--- tests/unit_test/mln_canvas_browsing_diagonal2d.cc (revision 3032)
+++ tests/unit_test/mln_canvas_browsing_diagonal2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/browsing/diagonal2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/browsing/diagonal2d.hh>
#include <mln/canvas/browsing/diagonal2d.hh>
int main()
Index: tests/unit_test/mln_core_pixter2d.cc
--- tests/unit_test/mln_core_pixter2d.cc (revision 3032)
+++ tests/unit_test/mln_core_pixter2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/pixter2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/pixter2d.hh>
#include <mln/core/pixter2d.hh>
int main()
Index: tests/unit_test/mln_core_image_complex_window_piter.cc
--- tests/unit_test/mln_core_image_complex_window_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_image_complex_window_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/complex_window_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/complex_window_piter.hh>
#include <mln/core/image/complex_window_piter.hh>
int main()
Index: tests/unit_test/mln_core_concept_box.cc
--- tests/unit_test/mln_core_concept_box.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_box.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/box.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/box.hh>
#include <mln/core/concept/box.hh>
int main()
Index: tests/unit_test/mln_value_int_s32.cc
--- tests/unit_test/mln_value_int_s32.cc (revision 3032)
+++ tests/unit_test/mln_value_int_s32.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/int_s32.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/int_s32.hh>
#include <mln/value/int_s32.hh>
int main()
Index: tests/unit_test/mln_core_image_graph_image.cc
--- tests/unit_test/mln_core_image_graph_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_graph_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/graph_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/graph_image.hh>
#include <mln/core/image/graph_image.hh>
int main()
Index: tests/unit_test/mln_make_win_chamfer.cc
--- tests/unit_test/mln_make_win_chamfer.cc (revision 3032)
+++ tests/unit_test/mln_make_win_chamfer.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/win_chamfer.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/win_chamfer.hh>
#include <mln/make/win_chamfer.hh>
int main()
Index: tests/unit_test/mln_binarization_all.cc
--- tests/unit_test/mln_binarization_all.cc (revision 3032)
+++ tests/unit_test/mln_binarization_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/binarization/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/binarization/all.hh>
#include <mln/binarization/all.hh>
int main()
Index: tests/unit_test/mln_arith_minus.cc
--- tests/unit_test/mln_arith_minus.cc (revision 3032)
+++ tests/unit_test/mln_arith_minus.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/arith/minus.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/arith/minus.hh>
#include <mln/arith/minus.hh>
int main()
Index: tests/unit_test/mln_fun_x2x_composed.cc
--- tests/unit_test/mln_fun_x2x_composed.cc (revision 3032)
+++ tests/unit_test/mln_fun_x2x_composed.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/x2x/composed.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/x2x/composed.hh>
#include <mln/fun/x2x/composed.hh>
int main()
Index: tests/unit_test/mln_fun_p2v_ternary.cc
--- tests/unit_test/mln_fun_p2v_ternary.cc (revision 3032)
+++ tests/unit_test/mln_fun_p2v_ternary.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/p2v/ternary.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/p2v/ternary.hh>
#include <mln/fun/p2v/ternary.hh>
int main()
Index: tests/unit_test/mln_trait_value_essential.cc
--- tests/unit_test/mln_trait_value_essential.cc (revision 3032)
+++ tests/unit_test/mln_trait_value_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/value/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/value/essential.hh>
#include <mln/trait/value/essential.hh>
int main()
Index: tests/unit_test/mln_geom_max_ind.cc
--- tests/unit_test/mln_geom_max_ind.cc (revision 3032)
+++ tests/unit_test/mln_geom_max_ind.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/max_ind.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/max_ind.hh>
#include <mln/geom/max_ind.hh>
int main()
Index: tests/unit_test/mln_value_concept_symbolic.cc
--- tests/unit_test/mln_value_concept_symbolic.cc (revision 3032)
+++ tests/unit_test/mln_value_concept_symbolic.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/concept/symbolic.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/concept/symbolic.hh>
#include <mln/value/concept/symbolic.hh>
int main()
Index: tests/unit_test/mln_morpho_Rd.cc
--- tests/unit_test/mln_morpho_Rd.cc (revision 3032)
+++ tests/unit_test/mln_morpho_Rd.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/Rd.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/Rd.hh>
#include <mln/morpho/Rd.hh>
int main()
Index: tests/unit_test/mln_morpho_includes.cc
--- tests/unit_test/mln_morpho_includes.cc (revision 3032)
+++ tests/unit_test/mln_morpho_includes.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/includes.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/includes.hh>
#include <mln/morpho/includes.hh>
int main()
Index: tests/unit_test/mln_accu_p.cc
--- tests/unit_test/mln_accu_p.cc (revision 3032)
+++ tests/unit_test/mln_accu_p.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/p.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/p.hh>
#include <mln/accu/p.hh>
int main()
Index: tests/unit_test/mln_canvas_browsing_backdiagonal2d.cc
--- tests/unit_test/mln_canvas_browsing_backdiagonal2d.cc (revision 3032)
+++ tests/unit_test/mln_canvas_browsing_backdiagonal2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/browsing/backdiagonal2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/browsing/backdiagonal2d.hh>
#include <mln/canvas/browsing/backdiagonal2d.hh>
int main()
Index: tests/unit_test/mln_trait_op_minus.cc
--- tests/unit_test/mln_trait_op_minus.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_minus.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/minus.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/minus.hh>
#include <mln/trait/op/minus.hh>
int main()
Index: tests/unit_test/mln_value_lut_vec.cc
--- tests/unit_test/mln_value_lut_vec.cc (revision 3032)
+++ tests/unit_test/mln_value_lut_vec.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/lut_vec.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/lut_vec.hh>
#include <mln/value/lut_vec.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_complex.cc
--- tests/unit_test/mln_core_site_set_p_complex.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_complex.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_complex.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_complex.hh>
#include <mln/core/site_set/p_complex.hh>
int main()
Index: tests/unit_test/mln_fun_v2v_saturate.cc
--- tests/unit_test/mln_fun_v2v_saturate.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2v_saturate.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2v/saturate.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2v/saturate.hh>
#include <mln/fun/v2v/saturate.hh>
int main()
Index: tests/unit_test/mln_pw_var.cc
--- tests/unit_test/mln_pw_var.cc (revision 3032)
+++ tests/unit_test/mln_pw_var.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/pw/var.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/pw/var.hh>
#include <mln/pw/var.hh>
int main()
Index: tests/unit_test/mln_core_essential.cc
--- tests/unit_test/mln_core_essential.cc (revision 3032)
+++ tests/unit_test/mln_core_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/essential.hh>
#include <mln/core/essential.hh>
int main()
Index: tests/unit_test/mln_core_site_set_box.cc
--- tests/unit_test/mln_core_site_set_box.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_box.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/box.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/box.hh>
#include <mln/core/site_set/box.hh>
int main()
Index: tests/unit_test/mln_io_all.cc
--- tests/unit_test/mln_io_all.cc (revision 3032)
+++ tests/unit_test/mln_io_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/all.hh>
#include <mln/io/all.hh>
int main()
Index: tests/unit_test/mln_topo_adj_lower_dim_connected_n_face_iter.cc
--- tests/unit_test/mln_topo_adj_lower_dim_connected_n_face_iter.cc (revision 3032)
+++ tests/unit_test/mln_topo_adj_lower_dim_connected_n_face_iter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/adj_lower_dim_connected_n_face_iter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/adj_lower_dim_connected_n_face_iter.hh>
#include <mln/topo/adj_lower_dim_connected_n_face_iter.hh>
int main()
Index: tests/unit_test/mln_io_off_load.cc
--- tests/unit_test/mln_io_off_load.cc (revision 3032)
+++ tests/unit_test/mln_io_off_load.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/off/load.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/off/load.hh>
#include <mln/io/off/load.hh>
int main()
Index: tests/unit_test/mln_core_alias_neighb1d.cc
--- tests/unit_test/mln_core_alias_neighb1d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_neighb1d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/neighb1d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/neighb1d.hh>
#include <mln/core/alias/neighb1d.hh>
int main()
Index: tests/unit_test/mln_trace_stop.cc
--- tests/unit_test/mln_trace_stop.cc (revision 3032)
+++ tests/unit_test/mln_trace_stop.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trace/stop.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trace/stop.hh>
#include <mln/trace/stop.hh>
int main()
Index: tests/unit_test/mln_norm_all.cc
--- tests/unit_test/mln_norm_all.cc (revision 3032)
+++ tests/unit_test/mln_norm_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/norm/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/norm/all.hh>
#include <mln/norm/all.hh>
int main()
Index: tests/unit_test/mln_labeling_level.cc
--- tests/unit_test/mln_labeling_level.cc (revision 3032)
+++ tests/unit_test/mln_labeling_level.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/labeling/level.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/labeling/level.hh>
#include <mln/labeling/level.hh>
int main()
Index: tests/unit_test/mln_core_alias_dpoint2d.cc
--- tests/unit_test/mln_core_alias_dpoint2d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_dpoint2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/dpoint2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/dpoint2d.hh>
#include <mln/core/alias/dpoint2d.hh>
int main()
Index: tests/unit_test/mln_core_dpoint.cc
--- tests/unit_test/mln_core_dpoint.cc (revision 3032)
+++ tests/unit_test/mln_core_dpoint.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/dpoint.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/dpoint.hh>
#include <mln/core/dpoint.hh>
int main()
Index: tests/unit_test/mln_topo_internal_complex_iterator_base.cc
--- tests/unit_test/mln_topo_internal_complex_iterator_base.cc (revision 3032)
+++ tests/unit_test/mln_topo_internal_complex_iterator_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/internal/complex_iterator_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/internal/complex_iterator_base.hh>
#include <mln/topo/internal/complex_iterator_base.hh>
int main()
Index: tests/unit_test/mln_accu_compute.cc
--- tests/unit_test/mln_accu_compute.cc (revision 3032)
+++ tests/unit_test/mln_accu_compute.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/compute.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/compute.hh>
#include <mln/accu/compute.hh>
int main()
Index: tests/unit_test/mln_util_tree_fast.cc
--- tests/unit_test/mln_util_tree_fast.cc (revision 3032)
+++ tests/unit_test/mln_util_tree_fast.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/tree_fast.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/tree_fast.hh>
#include <mln/util/tree_fast.hh>
int main()
Index: tests/unit_test/mln_value_concept_floating.cc
--- tests/unit_test/mln_value_concept_floating.cc (revision 3032)
+++ tests/unit_test/mln_value_concept_floating.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/concept/floating.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/concept/floating.hh>
#include <mln/value/concept/floating.hh>
int main()
Index: tests/unit_test/mln_core_image_extended.cc
--- tests/unit_test/mln_core_image_extended.cc (revision 3032)
+++ tests/unit_test/mln_core_image_extended.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/extended.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/extended.hh>
#include <mln/core/image/extended.hh>
int main()
Index: tests/unit_test/mln_core_image_tr_mesh.cc
--- tests/unit_test/mln_core_image_tr_mesh.cc (revision 3032)
+++ tests/unit_test/mln_core_image_tr_mesh.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/tr_mesh.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/tr_mesh.hh>
#include <mln/core/image/tr_mesh.hh>
int main()
Index: tests/unit_test/mln_core_concept_generalized_pixel.cc
--- tests/unit_test/mln_core_concept_generalized_pixel.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_generalized_pixel.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/generalized_pixel.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/generalized_pixel.hh>
#include <mln/core/concept/generalized_pixel.hh>
int main()
Index: tests/unit_test/mln_io_essential.cc
--- tests/unit_test/mln_io_essential.cc (revision 3032)
+++ tests/unit_test/mln_io_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/essential.hh>
#include <mln/io/essential.hh>
int main()
Index: tests/unit_test/mln_core_image_t_image.cc
--- tests/unit_test/mln_core_image_t_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_t_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/t_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/t_image.hh>
#include <mln/core/image/t_image.hh>
int main()
Index: tests/unit_test/mln_core_image_bgraph_psite.cc
--- tests/unit_test/mln_core_image_bgraph_psite.cc (revision 3032)
+++ tests/unit_test/mln_core_image_bgraph_psite.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/bgraph_psite.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/bgraph_psite.hh>
#include <mln/core/image/bgraph_psite.hh>
int main()
Index: tests/unit_test/mln_extension_fill.cc
--- tests/unit_test/mln_extension_fill.cc (revision 3032)
+++ tests/unit_test/mln_extension_fill.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/extension/fill.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/extension/fill.hh>
#include <mln/extension/fill.hh>
int main()
Index: tests/unit_test/mln_linear_convolve_2x1d.cc
--- tests/unit_test/mln_linear_convolve_2x1d.cc (revision 3032)
+++ tests/unit_test/mln_linear_convolve_2x1d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/linear/convolve_2x1d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/linear/convolve_2x1d.hh>
#include <mln/linear/convolve_2x1d.hh>
int main()
Index: tests/unit_test/mln_trait_op_div.cc
--- tests/unit_test/mln_trait_op_div.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_div.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/div.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/div.hh>
#include <mln/trait/op/div.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_image_fastest.cc
--- tests/unit_test/mln_core_concept_doc_image_fastest.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_image_fastest.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/image_fastest.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/image_fastest.hh>
#include <mln/core/concept/doc/image_fastest.hh>
int main()
Index: tests/unit_test/mln_metal_has_neighborhood.cc
--- tests/unit_test/mln_metal_has_neighborhood.cc (revision 3032)
+++ tests/unit_test/mln_metal_has_neighborhood.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/has_neighborhood.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/has_neighborhood.hh>
#include <mln/metal/has_neighborhood.hh>
int main()
Index: tests/unit_test/mln_io_txt_save.cc
--- tests/unit_test/mln_io_txt_save.cc (revision 3032)
+++ tests/unit_test/mln_io_txt_save.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/txt/save.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/txt/save.hh>
#include <mln/io/txt/save.hh>
int main()
Index: tests/unit_test/mln_fun_p2v_essential.cc
--- tests/unit_test/mln_fun_p2v_essential.cc (revision 3032)
+++ tests/unit_test/mln_fun_p2v_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/p2v/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/p2v/essential.hh>
#include <mln/fun/p2v/essential.hh>
int main()
Index: tests/unit_test/mln_metal_array3d.cc
--- tests/unit_test/mln_metal_array3d.cc (revision 3032)
+++ tests/unit_test/mln_metal_array3d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/array3d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/array3d.hh>
#include <mln/metal/array3d.hh>
int main()
Index: tests/unit_test/mln_trait_essential.cc
--- tests/unit_test/mln_trait_essential.cc (revision 3032)
+++ tests/unit_test/mln_trait_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/essential.hh>
#include <mln/trait/essential.hh>
int main()
Index: tests/unit_test/mln_value_builtin_promotions.cc
--- tests/unit_test/mln_value_builtin_promotions.cc (revision 3032)
+++ tests/unit_test/mln_value_builtin_promotions.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/builtin/promotions.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/builtin/promotions.hh>
#include <mln/value/builtin/promotions.hh>
int main()
Index: tests/unit_test/mln_core_image_complex_windows.cc
--- tests/unit_test/mln_core_image_complex_windows.cc (revision 3032)
+++ tests/unit_test/mln_core_image_complex_windows.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/complex_windows.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/complex_windows.hh>
#include <mln/core/image/complex_windows.hh>
int main()
Index: tests/unit_test/mln_literal_white.cc
--- tests/unit_test/mln_literal_white.cc (revision 3032)
+++ tests/unit_test/mln_literal_white.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/literal/white.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/literal/white.hh>
#include <mln/literal/white.hh>
int main()
Index: tests/unit_test/mln_win_octagon2d.cc
--- tests/unit_test/mln_win_octagon2d.cc (revision 3032)
+++ tests/unit_test/mln_win_octagon2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/octagon2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/octagon2d.hh>
#include <mln/win/octagon2d.hh>
int main()
Index: tests/unit_test/mln_core_image_extension_fun.cc
--- tests/unit_test/mln_core_image_extension_fun.cc (revision 3032)
+++ tests/unit_test/mln_core_image_extension_fun.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/extension_fun.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/extension_fun.hh>
#include <mln/core/image/extension_fun.hh>
int main()
Index: tests/unit_test/mln_value_concept_vectorial.cc
--- tests/unit_test/mln_value_concept_vectorial.cc (revision 3032)
+++ tests/unit_test/mln_value_concept_vectorial.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/concept/vectorial.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/concept/vectorial.hh>
#include <mln/value/concept/vectorial.hh>
int main()
Index: tests/unit_test/mln_norm_linfty.cc
--- tests/unit_test/mln_norm_linfty.cc (revision 3032)
+++ tests/unit_test/mln_norm_linfty.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/norm/linfty.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/norm/linfty.hh>
#include <mln/norm/linfty.hh>
int main()
Index: tests/unit_test/mln_metal_unref.cc
--- tests/unit_test/mln_metal_unref.cc (revision 3032)
+++ tests/unit_test/mln_metal_unref.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/unref.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/unref.hh>
#include <mln/metal/unref.hh>
int main()
Index: tests/unit_test/mln_core_image_mono_rle_encode.cc
--- tests/unit_test/mln_core_image_mono_rle_encode.cc (revision 3032)
+++ tests/unit_test/mln_core_image_mono_rle_encode.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/mono_rle_encode.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/mono_rle_encode.hh>
#include <mln/core/image/mono_rle_encode.hh>
int main()
Index: tests/unit_test/mln_value_builtin_integers.cc
--- tests/unit_test/mln_value_builtin_integers.cc (revision 3032)
+++ tests/unit_test/mln_value_builtin_integers.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/builtin/integers.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/builtin/integers.hh>
#include <mln/value/builtin/integers.hh>
int main()
Index: tests/unit_test/mln_registration_all.cc
--- tests/unit_test/mln_registration_all.cc (revision 3032)
+++ tests/unit_test/mln_registration_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/registration/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/registration/all.hh>
#include <mln/registration/all.hh>
int main()
Index: tests/unit_test/mln_core_trait_essential.cc
--- tests/unit_test/mln_core_trait_essential.cc (revision 3032)
+++ tests/unit_test/mln_core_trait_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/trait/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/trait/essential.hh>
#include <mln/core/trait/essential.hh>
int main()
Index: tests/unit_test/mln_metal_math_all.cc
--- tests/unit_test/mln_metal_math_all.cc (revision 3032)
+++ tests/unit_test/mln_metal_math_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/math/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/math/all.hh>
#include <mln/metal/math/all.hh>
int main()
Index: tests/unit_test/mln_value_rgb.cc
--- tests/unit_test/mln_value_rgb.cc (revision 3032)
+++ tests/unit_test/mln_value_rgb.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/rgb.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/rgb.hh>
#include <mln/value/rgb.hh>
int main()
Index: tests/unit_test/mln_core_image_decorated_image.cc
--- tests/unit_test/mln_core_image_decorated_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_decorated_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/decorated_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/decorated_image.hh>
#include <mln/core/image/decorated_image.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_priority.cc
--- tests/unit_test/mln_core_site_set_p_priority.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_priority.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_priority.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_priority.hh>
#include <mln/core/site_set/p_priority.hh>
int main()
Index: tests/unit_test/mln_util_dindex.cc
--- tests/unit_test/mln_util_dindex.cc (revision 3032)
+++ tests/unit_test/mln_util_dindex.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/dindex.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/dindex.hh>
#include <mln/util/dindex.hh>
int main()
Index: tests/unit_test/mln_morpho_elementary_opening.cc
--- tests/unit_test/mln_morpho_elementary_opening.cc (revision 3032)
+++ tests/unit_test/mln_morpho_elementary_opening.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/elementary/opening.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/elementary/opening.hh>
#include <mln/morpho/elementary/opening.hh>
int main()
Index: tests/unit_test/mln_convert_to_window.cc
--- tests/unit_test/mln_convert_to_window.cc (revision 3032)
+++ tests/unit_test/mln_convert_to_window.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/convert/to_window.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/convert/to_window.hh>
#include <mln/convert/to_window.hh>
int main()
Index: tests/unit_test/mln_logical_or.cc
--- tests/unit_test/mln_logical_or.cc (revision 3032)
+++ tests/unit_test/mln_logical_or.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/logical/or.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/logical/or.hh>
#include <mln/logical/or.hh>
int main()
Index: tests/unit_test/mln_core_image_image_if.cc
--- tests/unit_test/mln_core_image_image_if.cc (revision 3032)
+++ tests/unit_test/mln_core_image_image_if.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/image_if.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/image_if.hh>
#include <mln/core/image/image_if.hh>
int main()
Index: tests/unit_test/mln_make_relabelfun.cc
--- tests/unit_test/mln_make_relabelfun.cc (revision 3032)
+++ tests/unit_test/mln_make_relabelfun.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/relabelfun.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/relabelfun.hh>
#include <mln/make/relabelfun.hh>
int main()
Index: tests/unit_test/mln_subsampling_all.cc
--- tests/unit_test/mln_subsampling_all.cc (revision 3032)
+++ tests/unit_test/mln_subsampling_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/subsampling/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/subsampling/all.hh>
#include <mln/subsampling/all.hh>
int main()
Index: tests/unit_test/mln_morpho_elementary_like_ero_set.cc
--- tests/unit_test/mln_morpho_elementary_like_ero_set.cc (revision 3032)
+++ tests/unit_test/mln_morpho_elementary_like_ero_set.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/elementary/like_ero_set.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/elementary/like_ero_set.hh>
#include <mln/morpho/elementary/like_ero_set.hh>
int main()
Index: tests/unit_test/mln_value_internal_encoding.cc
--- tests/unit_test/mln_value_internal_encoding.cc (revision 3032)
+++ tests/unit_test/mln_value_internal_encoding.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/internal/encoding.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/internal/encoding.hh>
#include <mln/value/internal/encoding.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_neighborhood.cc
--- tests/unit_test/mln_core_concept_doc_neighborhood.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_neighborhood.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/neighborhood.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/neighborhood.hh>
#include <mln/core/concept/doc/neighborhood.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_window.cc
--- tests/unit_test/mln_core_concept_doc_window.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_window.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/window.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/window.hh>
#include <mln/core/concept/doc/window.hh>
int main()
Index: tests/unit_test/mln_win_cube3d.cc
--- tests/unit_test/mln_win_cube3d.cc (revision 3032)
+++ tests/unit_test/mln_win_cube3d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/cube3d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/cube3d.hh>
#include <mln/win/cube3d.hh>
int main()
Index: tests/unit_test/mln_border_fill.cc
--- tests/unit_test/mln_border_fill.cc (revision 3032)
+++ tests/unit_test/mln_border_fill.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/border/fill.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/border/fill.hh>
#include <mln/border/fill.hh>
int main()
Index: tests/unit_test/mln_set_diff.cc
--- tests/unit_test/mln_set_diff.cc (revision 3032)
+++ tests/unit_test/mln_set_diff.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/set/diff.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/set/diff.hh>
#include <mln/set/diff.hh>
int main()
Index: tests/unit_test/mln_algebra_all.cc
--- tests/unit_test/mln_algebra_all.cc (revision 3032)
+++ tests/unit_test/mln_algebra_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/algebra/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/algebra/all.hh>
#include <mln/algebra/all.hh>
int main()
Index: tests/unit_test/mln_trace_exiting.cc
--- tests/unit_test/mln_trace_exiting.cc (revision 3032)
+++ tests/unit_test/mln_trace_exiting.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trace/exiting.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trace/exiting.hh>
#include <mln/trace/exiting.hh>
int main()
Index: tests/unit_test/mln_core_site_set_operators.cc
--- tests/unit_test/mln_core_site_set_operators.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_operators.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/operators.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/operators.hh>
#include <mln/core/site_set/operators.hh>
int main()
Index: tests/unit_test/mln_core_def_coord.cc
--- tests/unit_test/mln_core_def_coord.cc (revision 3032)
+++ tests/unit_test/mln_core_def_coord.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/def/coord.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/def/coord.hh>
#include <mln/core/def/coord.hh>
int main()
Index: tests/unit_test/mln_fun_v2b_lnot.cc
--- tests/unit_test/mln_fun_v2b_lnot.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2b_lnot.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2b/lnot.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2b/lnot.hh>
#include <mln/fun/v2b/lnot.hh>
int main()
Index: tests/unit_test/mln_core_site_set_attic_p_faces_piter.cc
--- tests/unit_test/mln_core_site_set_attic_p_faces_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_attic_p_faces_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/attic/p_faces_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/attic/p_faces_piter.hh>
#include <mln/core/site_set/attic/p_faces_piter.hh>
int main()
Index: tests/unit_test/mln_trait_solve_binary.cc
--- tests/unit_test/mln_trait_solve_binary.cc (revision 3032)
+++ tests/unit_test/mln_trait_solve_binary.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/solve_binary.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/solve_binary.hh>
#include <mln/trait/solve_binary.hh>
int main()
Index: tests/unit_test/mln_core_alias_point3d.cc
--- tests/unit_test/mln_core_alias_point3d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_point3d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/point3d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/point3d.hh>
#include <mln/core/alias/point3d.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_generalized_pixel.cc
--- tests/unit_test/mln_core_concept_doc_generalized_pixel.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_generalized_pixel.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/generalized_pixel.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/generalized_pixel.hh>
#include <mln/core/concept/doc/generalized_pixel.hh>
int main()
Index: tests/unit_test/mln_canvas_all.cc
--- tests/unit_test/mln_canvas_all.cc (revision 3032)
+++ tests/unit_test/mln_canvas_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/all.hh>
#include <mln/canvas/all.hh>
int main()
Index: tests/unit_test/mln_level_compute.cc
--- tests/unit_test/mln_level_compute.cc (revision 3032)
+++ tests/unit_test/mln_level_compute.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/compute.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/compute.hh>
#include <mln/level/compute.hh>
int main()
Index: tests/unit_test/mln_level_naive_median.cc
--- tests/unit_test/mln_level_naive_median.cc (revision 3032)
+++ tests/unit_test/mln_level_naive_median.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/naive/median.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/naive/median.hh>
#include <mln/level/naive/median.hh>
int main()
Index: tests/unit_test/mln_level_convert.cc
--- tests/unit_test/mln_level_convert.cc (revision 3032)
+++ tests/unit_test/mln_level_convert.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/convert.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/convert.hh>
#include <mln/level/convert.hh>
int main()
Index: tests/unit_test/mln_io_pfm_load.cc
--- tests/unit_test/mln_io_pfm_load.cc (revision 3032)
+++ tests/unit_test/mln_io_pfm_load.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pfm/load.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pfm/load.hh>
#include <mln/io/pfm/load.hh>
int main()
Index: tests/unit_test/mln_geom_size3d.cc
--- tests/unit_test/mln_geom_size3d.cc (revision 3032)
+++ tests/unit_test/mln_geom_size3d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/size3d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/size3d.hh>
#include <mln/geom/size3d.hh>
int main()
Index: tests/unit_test/mln_fun_l2l_essential.cc
--- tests/unit_test/mln_fun_l2l_essential.cc (revision 3032)
+++ tests/unit_test/mln_fun_l2l_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/l2l/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/l2l/essential.hh>
#include <mln/fun/l2l/essential.hh>
int main()
Index: tests/unit_test/mln_value_int_u.cc
--- tests/unit_test/mln_value_int_u.cc (revision 3032)
+++ tests/unit_test/mln_value_int_u.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/int_u.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/int_u.hh>
#include <mln/value/int_u.hh>
int main()
Index: tests/unit_test/mln_core_internal_site_iterator_base.cc
--- tests/unit_test/mln_core_internal_site_iterator_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_site_iterator_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/site_iterator_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/site_iterator_base.hh>
#include <mln/core/internal/site_iterator_base.hh>
int main()
Index: tests/unit_test/mln_accu_center.cc
--- tests/unit_test/mln_accu_center.cc (revision 3032)
+++ tests/unit_test/mln_accu_center.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/center.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/center.hh>
#include <mln/accu/center.hh>
int main()
Index: tests/unit_test/mln_core_routine_initialize.cc
--- tests/unit_test/mln_core_routine_initialize.cc (revision 3032)
+++ tests/unit_test/mln_core_routine_initialize.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/routine/initialize.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/routine/initialize.hh>
#include <mln/core/routine/initialize.hh>
int main()
Index: tests/unit_test/mln_core_concept_literal.cc
--- tests/unit_test/mln_core_concept_literal.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_literal.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/literal.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/literal.hh>
#include <mln/core/concept/literal.hh>
int main()
Index: tests/unit_test/mln_make_w_window1d.cc
--- tests/unit_test/mln_make_w_window1d.cc (revision 3032)
+++ tests/unit_test/mln_make_w_window1d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/w_window1d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/w_window1d.hh>
#include <mln/make/w_window1d.hh>
int main()
Index: tests/unit_test/mln_accu_count_adjacent_vertices.cc
--- tests/unit_test/mln_accu_count_adjacent_vertices.cc (revision 3032)
+++ tests/unit_test/mln_accu_count_adjacent_vertices.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/count_adjacent_vertices.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/count_adjacent_vertices.hh>
#include <mln/accu/count_adjacent_vertices.hh>
int main()
Index: tests/unit_test/mln_metal_converts_to.cc
--- tests/unit_test/mln_metal_converts_to.cc (revision 3032)
+++ tests/unit_test/mln_metal_converts_to.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/converts_to.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/converts_to.hh>
#include <mln/metal/converts_to.hh>
int main()
Index: tests/unit_test/mln_fun_vv2v_diff_abs.cc
--- tests/unit_test/mln_fun_vv2v_diff_abs.cc (revision 3032)
+++ tests/unit_test/mln_fun_vv2v_diff_abs.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/vv2v/diff_abs.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/vv2v/diff_abs.hh>
#include <mln/fun/vv2v/diff_abs.hh>
int main()
Index: tests/unit_test/mln_make_w_window1d_int.cc
--- tests/unit_test/mln_make_w_window1d_int.cc (revision 3032)
+++ tests/unit_test/mln_make_w_window1d_int.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/w_window1d_int.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/w_window1d_int.hh>
#include <mln/make/w_window1d_int.hh>
int main()
Index: tests/unit_test/mln_morpho_all.cc
--- tests/unit_test/mln_morpho_all.cc (revision 3032)
+++ tests/unit_test/mln_morpho_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/all.hh>
#include <mln/morpho/all.hh>
int main()
Index: tests/unit_test/mln_trait_windows.cc
--- tests/unit_test/mln_trait_windows.cc (revision 3032)
+++ tests/unit_test/mln_trait_windows.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/windows.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/windows.hh>
#include <mln/trait/windows.hh>
int main()
Index: tests/unit_test/mln_metal_ref.cc
--- tests/unit_test/mln_metal_ref.cc (revision 3032)
+++ tests/unit_test/mln_metal_ref.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/ref.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/ref.hh>
#include <mln/metal/ref.hh>
int main()
Index: tests/unit_test/mln_level_all.cc
--- tests/unit_test/mln_level_all.cc (revision 3032)
+++ tests/unit_test/mln_level_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/all.hh>
#include <mln/level/all.hh>
int main()
Index: tests/unit_test/mln_value_internal_gray_f.cc
--- tests/unit_test/mln_value_internal_gray_f.cc (revision 3032)
+++ tests/unit_test/mln_value_internal_gray_f.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/internal/gray_f.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/internal/gray_f.hh>
#include <mln/value/internal/gray_f.hh>
int main()
Index: tests/unit_test/mln_literal_grays.cc
--- tests/unit_test/mln_literal_grays.cc (revision 3032)
+++ tests/unit_test/mln_literal_grays.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/literal/grays.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/literal/grays.hh>
#include <mln/literal/grays.hh>
int main()
Index: tests/unit_test/mln_canvas_browsing_snake_vert.cc
--- tests/unit_test/mln_canvas_browsing_snake_vert.cc (revision 3032)
+++ tests/unit_test/mln_canvas_browsing_snake_vert.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/browsing/snake_vert.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/browsing/snake_vert.hh>
#include <mln/canvas/browsing/snake_vert.hh>
int main()
Index: tests/unit_test/mln_trait_op_eq.cc
--- tests/unit_test/mln_trait_op_eq.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_eq.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/eq.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/eq.hh>
#include <mln/trait/op/eq.hh>
int main()
Index: tests/unit_test/mln_value_builtin_floatings.cc
--- tests/unit_test/mln_value_builtin_floatings.cc (revision 3032)
+++ tests/unit_test/mln_value_builtin_floatings.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/builtin/floatings.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/builtin/floatings.hh>
#include <mln/value/builtin/floatings.hh>
int main()
Index: tests/unit_test/mln_math_sign.cc
--- tests/unit_test/mln_math_sign.cc (revision 3032)
+++ tests/unit_test/mln_math_sign.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/math/sign.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/math/sign.hh>
#include <mln/math/sign.hh>
int main()
Index: tests/unit_test/mln_core_pixter3d.cc
--- tests/unit_test/mln_core_pixter3d.cc (revision 3032)
+++ tests/unit_test/mln_core_pixter3d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/pixter3d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/pixter3d.hh>
#include <mln/core/pixter3d.hh>
int main()
Index: tests/unit_test/mln_morpho_opening_height.cc
--- tests/unit_test/mln_morpho_opening_height.cc (revision 3032)
+++ tests/unit_test/mln_morpho_opening_height.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/opening_height.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/opening_height.hh>
#include <mln/morpho/opening_height.hh>
int main()
Index: tests/unit_test/mln_value_other.cc
--- tests/unit_test/mln_value_other.cc (revision 3032)
+++ tests/unit_test/mln_value_other.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/other.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/other.hh>
#include <mln/value/other.hh>
int main()
Index: tests/unit_test/mln_value_proxy.cc
--- tests/unit_test/mln_value_proxy.cc (revision 3032)
+++ tests/unit_test/mln_value_proxy.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/proxy.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/proxy.hh>
#include <mln/value/proxy.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_object.cc
--- tests/unit_test/mln_core_concept_doc_object.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_object.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/object.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/object.hh>
#include <mln/core/concept/doc/object.hh>
int main()
Index: tests/unit_test/mln_level_essential.cc
--- tests/unit_test/mln_level_essential.cc (revision 3032)
+++ tests/unit_test/mln_level_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/essential.hh>
#include <mln/level/essential.hh>
int main()
Index: tests/unit_test/mln_core_alias_w_window3d_int.cc
--- tests/unit_test/mln_core_alias_w_window3d_int.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_w_window3d_int.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/w_window3d_int.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/w_window3d_int.hh>
#include <mln/core/alias/w_window3d_int.hh>
int main()
Index: tests/unit_test/mln_value_int_s16.cc
--- tests/unit_test/mln_value_int_s16.cc (revision 3032)
+++ tests/unit_test/mln_value_int_s16.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/int_s16.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/int_s16.hh>
#include <mln/value/int_s16.hh>
int main()
Index: tests/unit_test/mln_metal_same_point.cc
--- tests/unit_test/mln_metal_same_point.cc (revision 3032)
+++ tests/unit_test/mln_metal_same_point.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/same_point.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/same_point.hh>
#include <mln/metal/same_point.hh>
int main()
Index: tests/unit_test/mln_trait_op_postinc.cc
--- tests/unit_test/mln_trait_op_postinc.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_postinc.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/postinc.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/postinc.hh>
#include <mln/trait/op/postinc.hh>
int main()
Index: tests/unit_test/mln_core_routine_exact.cc
--- tests/unit_test/mln_core_routine_exact.cc (revision 3032)
+++ tests/unit_test/mln_core_routine_exact.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/routine/exact.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/routine/exact.hh>
#include <mln/core/routine/exact.hh>
int main()
Index: tests/unit_test/mln_core_image_all.cc
--- tests/unit_test/mln_core_image_all.cc (revision 3032)
+++ tests/unit_test/mln_core_image_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/all.hh>
#include <mln/core/image/all.hh>
int main()
Index: tests/unit_test/mln_fun_p2b_all.cc
--- tests/unit_test/mln_fun_p2b_all.cc (revision 3032)
+++ tests/unit_test/mln_fun_p2b_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/p2b/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/p2b/all.hh>
#include <mln/fun/p2b/all.hh>
int main()
Index: tests/unit_test/mln_core_internal_set_of.cc
--- tests/unit_test/mln_core_internal_set_of.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_set_of.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/set_of.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/set_of.hh>
#include <mln/core/internal/set_of.hh>
int main()
Index: tests/unit_test/mln_core_concept_graph.cc
--- tests/unit_test/mln_core_concept_graph.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_graph.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/graph.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/graph.hh>
#include <mln/core/concept/graph.hh>
int main()
Index: tests/unit_test/mln_win_sym.cc
--- tests/unit_test/mln_win_sym.cc (revision 3032)
+++ tests/unit_test/mln_win_sym.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/sym.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/sym.hh>
#include <mln/win/sym.hh>
int main()
Index: tests/unit_test/mln_set_has.cc
--- tests/unit_test/mln_set_has.cc (revision 3032)
+++ tests/unit_test/mln_set_has.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/set/has.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/set/has.hh>
#include <mln/set/has.hh>
int main()
Index: tests/unit_test/mln_util_internal_vertex_impl.cc
--- tests/unit_test/mln_util_internal_vertex_impl.cc (revision 3032)
+++ tests/unit_test/mln_util_internal_vertex_impl.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/internal/vertex_impl.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/internal/vertex_impl.hh>
#include <mln/util/internal/vertex_impl.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_bgraph.cc
--- tests/unit_test/mln_core_site_set_p_bgraph.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_bgraph.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_bgraph.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_bgraph.hh>
#include <mln/core/site_set/p_bgraph.hh>
int main()
Index: tests/unit_test/mln_convert_impl_all.cc
--- tests/unit_test/mln_convert_impl_all.cc (revision 3032)
+++ tests/unit_test/mln_convert_impl_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/convert/impl/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/convert/impl/all.hh>
#include <mln/convert/impl/all.hh>
int main()
Index: tests/unit_test/mln_topo_attic_faces_iter.cc
--- tests/unit_test/mln_topo_attic_faces_iter.cc (revision 3032)
+++ tests/unit_test/mln_topo_attic_faces_iter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/attic/faces_iter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/attic/faces_iter.hh>
#include <mln/topo/attic/faces_iter.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_bgraph_piter.cc
--- tests/unit_test/mln_core_site_set_p_bgraph_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_bgraph_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_bgraph_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_bgraph_piter.hh>
#include <mln/core/site_set/p_bgraph_piter.hh>
int main()
Index: tests/unit_test/mln_accu_rank_high_quant.cc
--- tests/unit_test/mln_accu_rank_high_quant.cc (revision 3032)
+++ tests/unit_test/mln_accu_rank_high_quant.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/rank_high_quant.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/rank_high_quant.hh>
#include <mln/accu/rank_high_quant.hh>
int main()
Index: tests/unit_test/mln_core_site_set_box_piter.cc
--- tests/unit_test/mln_core_site_set_box_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_box_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/box_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/box_piter.hh>
#include <mln/core/site_set/box_piter.hh>
int main()
Index: tests/unit_test/mln_core_alias_neighb2d.cc
--- tests/unit_test/mln_core_alias_neighb2d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_neighb2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/neighb2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/neighb2d.hh>
#include <mln/core/alias/neighb2d.hh>
int main()
Index: tests/unit_test/mln_core_image_mono_obased_rle_image.cc
--- tests/unit_test/mln_core_image_mono_obased_rle_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_mono_obased_rle_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/mono_obased_rle_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/mono_obased_rle_image.hh>
#include <mln/core/image/mono_obased_rle_image.hh>
int main()
Index: tests/unit_test/mln_metal_mat.cc
--- tests/unit_test/mln_metal_mat.cc (revision 3032)
+++ tests/unit_test/mln_metal_mat.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/mat.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/mat.hh>
#include <mln/metal/mat.hh>
int main()
Index: tests/unit_test/mln_core_alias_dpoint3d.cc
--- tests/unit_test/mln_core_alias_dpoint3d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_dpoint3d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/dpoint3d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/dpoint3d.hh>
#include <mln/core/alias/dpoint3d.hh>
int main()
Index: tests/unit_test/mln_util_all.cc
--- tests/unit_test/mln_util_all.cc (revision 3032)
+++ tests/unit_test/mln_util_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/all.hh>
#include <mln/util/all.hh>
int main()
Index: tests/unit_test/mln_core_tags.cc
--- tests/unit_test/mln_core_tags.cc (revision 3032)
+++ tests/unit_test/mln_core_tags.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/tags.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/tags.hh>
#include <mln/core/tags.hh>
int main()
Index: tests/unit_test/mln_core_concept_pseudo_site.cc
--- tests/unit_test/mln_core_concept_pseudo_site.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_pseudo_site.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/pseudo_site.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/pseudo_site.hh>
#include <mln/core/concept/pseudo_site.hh>
int main()
Index: tests/unit_test/mln_util_eat.cc
--- tests/unit_test/mln_util_eat.cc (revision 3032)
+++ tests/unit_test/mln_util_eat.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/eat.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/eat.hh>
#include <mln/util/eat.hh>
int main()
Index: tests/unit_test/mln_norm_l1.cc
--- tests/unit_test/mln_norm_l1.cc (revision 3032)
+++ tests/unit_test/mln_norm_l1.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/norm/l1.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/norm/l1.hh>
#include <mln/norm/l1.hh>
int main()
Index: tests/unit_test/mln_util_lemmings.cc
--- tests/unit_test/mln_util_lemmings.cc (revision 3032)
+++ tests/unit_test/mln_util_lemmings.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/lemmings.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/lemmings.hh>
#include <mln/util/lemmings.hh>
int main()
Index: tests/unit_test/mln_fun_ops.cc
--- tests/unit_test/mln_fun_ops.cc (revision 3032)
+++ tests/unit_test/mln_fun_ops.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/ops.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/ops.hh>
#include <mln/fun/ops.hh>
int main()
Index: tests/unit_test/mln_core_image_sparse_image.cc
--- tests/unit_test/mln_core_image_sparse_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_sparse_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/sparse_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/sparse_image.hh>
#include <mln/core/image/sparse_image.hh>
int main()
Index: tests/unit_test/mln_arith_plus.cc
--- tests/unit_test/mln_arith_plus.cc (revision 3032)
+++ tests/unit_test/mln_arith_plus.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/arith/plus.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/arith/plus.hh>
#include <mln/arith/plus.hh>
int main()
Index: tests/unit_test/mln_core_internal_check_image_all.cc
--- tests/unit_test/mln_core_internal_check_image_all.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_check_image_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/check/image_all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/check/image_all.hh>
#include <mln/core/internal/check/image_all.hh>
int main()
Index: tests/unit_test/mln_morpho_tree_all.cc
--- tests/unit_test/mln_morpho_tree_all.cc (revision 3032)
+++ tests/unit_test/mln_morpho_tree_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/tree/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/tree/all.hh>
#include <mln/morpho/tree/all.hh>
int main()
Index: tests/unit_test/mln_metal_int.cc
--- tests/unit_test/mln_metal_int.cc (revision 3032)
+++ tests/unit_test/mln_metal_int.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/int.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/int.hh>
#include <mln/metal/int.hh>
int main()
Index: tests/unit_test/mln_core_internal_site_set_base.cc
--- tests/unit_test/mln_core_internal_site_set_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_site_set_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/site_set_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/site_set_base.hh>
#include <mln/core/internal/site_set_base.hh>
int main()
Index: tests/unit_test/mln_topo_centered_iter_adapter.cc
--- tests/unit_test/mln_topo_centered_iter_adapter.cc (revision 3032)
+++ tests/unit_test/mln_topo_centered_iter_adapter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/centered_iter_adapter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/centered_iter_adapter.hh>
#include <mln/topo/centered_iter_adapter.hh>
int main()
Index: tests/unit_test/mln_value_rgb16.cc
--- tests/unit_test/mln_value_rgb16.cc (revision 3032)
+++ tests/unit_test/mln_value_rgb16.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/rgb16.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/rgb16.hh>
#include <mln/value/rgb16.hh>
int main()
Index: tests/unit_test/mln_geom_min_row.cc
--- tests/unit_test/mln_geom_min_row.cc (revision 3032)
+++ tests/unit_test/mln_geom_min_row.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/min_row.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/min_row.hh>
#include <mln/geom/min_row.hh>
int main()
Index: tests/unit_test/mln_math_all.cc
--- tests/unit_test/mln_math_all.cc (revision 3032)
+++ tests/unit_test/mln_math_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/math/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/math/all.hh>
#include <mln/math/all.hh>
int main()
Index: tests/unit_test/mln_metal_none.cc
--- tests/unit_test/mln_metal_none.cc (revision 3032)
+++ tests/unit_test/mln_metal_none.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/none.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/none.hh>
#include <mln/metal/none.hh>
int main()
Index: tests/unit_test/mln_debug_println_with_border.cc
--- tests/unit_test/mln_debug_println_with_border.cc (revision 3032)
+++ tests/unit_test/mln_debug_println_with_border.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/debug/println_with_border.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/debug/println_with_border.hh>
#include <mln/debug/println_with_border.hh>
int main()
Index: tests/unit_test/mln_core_trait_op_mult.cc
--- tests/unit_test/mln_core_trait_op_mult.cc (revision 3032)
+++ tests/unit_test/mln_core_trait_op_mult.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/trait/op_mult.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/trait/op_mult.hh>
#include <mln/core/trait/op_mult.hh>
int main()
Index: tests/unit_test/mln_trait_value_print.cc
--- tests/unit_test/mln_trait_value_print.cc (revision 3032)
+++ tests/unit_test/mln_trait_value_print.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/value/print.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/value/print.hh>
#include <mln/trait/value/print.hh>
int main()
Index: tests/unit_test/mln_core_macros.cc
--- tests/unit_test/mln_core_macros.cc (revision 3032)
+++ tests/unit_test/mln_core_macros.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/macros.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/macros.hh>
#include <mln/core/macros.hh>
int main()
Index: tests/unit_test/mln_metal_is.cc
--- tests/unit_test/mln_metal_is.cc (revision 3032)
+++ tests/unit_test/mln_metal_is.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/is.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/is.hh>
#include <mln/metal/is.hh>
int main()
Index: tests/unit_test/mln_morpho_elementary_essential.cc
--- tests/unit_test/mln_morpho_elementary_essential.cc (revision 3032)
+++ tests/unit_test/mln_morpho_elementary_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/elementary/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/elementary/essential.hh>
#include <mln/morpho/elementary/essential.hh>
int main()
Index: tests/unit_test/mln_value_int_s8.cc
--- tests/unit_test/mln_value_int_s8.cc (revision 3032)
+++ tests/unit_test/mln_value_int_s8.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/int_s8.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/int_s8.hh>
#include <mln/value/int_s8.hh>
int main()
Index: tests/unit_test/mln_trait_op_not.cc
--- tests/unit_test/mln_trait_op_not.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_not.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/not.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/not.hh>
#include <mln/trait/op/not.hh>
int main()
Index: tests/unit_test/mln_core_concept_accumulator.cc
--- tests/unit_test/mln_core_concept_accumulator.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_accumulator.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/accumulator.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/accumulator.hh>
#include <mln/core/concept/accumulator.hh>
int main()
Index: tests/unit_test/mln_morpho_thinning.cc
--- tests/unit_test/mln_morpho_thinning.cc (revision 3032)
+++ tests/unit_test/mln_morpho_thinning.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/thinning.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/thinning.hh>
#include <mln/morpho/thinning.hh>
int main()
Index: tests/unit_test/mln_geom_seeds2tiling_roundness.cc
--- tests/unit_test/mln_geom_seeds2tiling_roundness.cc (revision 3032)
+++ tests/unit_test/mln_geom_seeds2tiling_roundness.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/seeds2tiling_roundness.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/seeds2tiling_roundness.hh>
#include <mln/geom/seeds2tiling_roundness.hh>
int main()
Index: tests/unit_test/mln_tag_all.cc
--- tests/unit_test/mln_tag_all.cc (revision 3032)
+++ tests/unit_test/mln_tag_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/tag/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/tag/all.hh>
#include <mln/tag/all.hh>
int main()
Index: tests/unit_test/mln_topo_center_only_iter.cc
--- tests/unit_test/mln_topo_center_only_iter.cc (revision 3032)
+++ tests/unit_test/mln_topo_center_only_iter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/center_only_iter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/center_only_iter.hh>
#include <mln/topo/center_only_iter.hh>
int main()
Index: tests/unit_test/mln_value_float01_16.cc
--- tests/unit_test/mln_value_float01_16.cc (revision 3032)
+++ tests/unit_test/mln_value_float01_16.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/float01_16.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/float01_16.hh>
#include <mln/value/float01_16.hh>
int main()
Index: tests/unit_test/mln_util_tree_to_fast.cc
--- tests/unit_test/mln_util_tree_to_fast.cc (revision 3032)
+++ tests/unit_test/mln_util_tree_to_fast.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/tree_to_fast.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/tree_to_fast.hh>
#include <mln/util/tree_to_fast.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_edges.cc
--- tests/unit_test/mln_core_site_set_p_edges.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_edges.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_edges.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_edges.hh>
#include <mln/core/site_set/p_edges.hh>
int main()
Index: tests/unit_test/mln_core_alias_window1d.cc
--- tests/unit_test/mln_core_alias_window1d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_window1d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/window1d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/window1d.hh>
#include <mln/core/alias/window1d.hh>
int main()
Index: tests/unit_test/mln_util_timer.cc
--- tests/unit_test/mln_util_timer.cc (revision 3032)
+++ tests/unit_test/mln_util_timer.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/timer.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/timer.hh>
#include <mln/util/timer.hh>
int main()
Index: tests/unit_test/mln_core_internal_image_value_morpher.cc
--- tests/unit_test/mln_core_internal_image_value_morpher.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_image_value_morpher.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/image_value_morpher.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/image_value_morpher.hh>
#include <mln/core/internal/image_value_morpher.hh>
int main()
Index: tests/unit_test/mln_math_sqr.cc
--- tests/unit_test/mln_math_sqr.cc (revision 3032)
+++ tests/unit_test/mln_math_sqr.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/math/sqr.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/math/sqr.hh>
#include <mln/math/sqr.hh>
int main()
Index: tests/unit_test/Makefile.am
--- tests/unit_test/Makefile.am (revision 3032)
+++ tests/unit_test/Makefile.am (working copy)
@@ -3,1996 +3,1996 @@
include $(top_srcdir)/milena/tests/tests.mk
check_PROGRAMS = \
-mln_histo_all \
-mln_histo_data \
-mln_histo_compute \
-mln_histo_essential \
-mln_geom_pmin_pmax \
-mln_geom_max_row \
-mln_geom_chamfer \
-mln_geom_min_row \
-mln_geom_seeds2tiling \
-mln_geom_size1d \
-mln_geom_all \
-mln_geom_size2d \
-mln_geom_max_ind \
-mln_geom_max_col \
-mln_geom_size3d \
-mln_geom_ninds \
-mln_geom_nslis \
-mln_geom_delta \
-mln_geom_resize \
-mln_geom_nsites \
-mln_geom_min_col \
-mln_geom_complex_geometry \
-mln_geom_ncols \
-mln_geom_nrows \
-mln_geom_min_ind \
-mln_geom_bbox \
-mln_geom_seeds2tiling_roundness \
-mln_geom_min_sli \
-mln_geom_essential \
-mln_geom_max_sli \
-mln_draw_box \
-mln_draw_all \
-mln_draw_plot \
-mln_draw_line \
-mln_draw_essential \
-mln_pw_image \
-mln_pw_all \
-mln_pw_value \
-mln_pw_cst \
-mln_pw_var \
-mln_pw_essential \
-mln_literal_zero \
-mln_literal_ops \
-mln_literal_origin \
-mln_literal_grays \
-mln_literal_all \
-mln_literal_colors \
-mln_literal_black \
-mln_literal_one \
-mln_literal_white \
-mln_literal_essential \
-mln_registration_get_rtransf \
-mln_registration_internal_rms \
-mln_registration_get_rot \
-mln_registration_all \
-mln_registration_multiscale \
-mln_registration_registration \
-mln_registration_essential \
-mln_registration_icp \
-mln_util_graph \
+mln_util_nil \
+mln_util_ord_pair \
+mln_util_ord \
mln_util_max \
-mln_util_lazy_set \
+mln_util_eat \
+mln_util_tree \
+mln_util_tree_fast_to_image \
+mln_util_tracked_ptr \
+mln_util_dindex \
+mln_util_site_pair \
mln_util_set \
-mln_util_tree_to_image \
-mln_util_lemmings \
mln_util_greater_point \
+mln_util_greater_psite \
+mln_util_ignore \
+mln_util_pix \
+mln_util_lazy_set \
+mln_util_essential \
+mln_util_branch_iter \
+mln_util_graph \
+mln_util_index \
+mln_util_tree_to_fast \
+mln_util_line_graph \
+mln_util_lemmings \
+mln_util_all \
+mln_util_internal_boost_graph_property \
mln_util_internal_graph_iter_base \
-mln_util_internal_boost_graph_access \
+mln_util_internal_boost_graph \
mln_util_internal_boost_graph_structure \
-mln_util_internal_graph_iter \
-mln_util_internal_graph_nbh_iter \
-mln_util_internal_vertex_impl \
-mln_util_internal_edge_impl \
+mln_util_internal_boost_graph_access \
mln_util_internal_graph_base \
-mln_util_internal_boost_graph \
+mln_util_internal_vertex_impl \
+mln_util_internal_graph_nbh_iter \
mln_util_internal_graph_nbh_iter_base \
-mln_util_internal_boost_graph_property \
-mln_util_ord_pair \
-mln_util_edge \
-mln_util_all \
-mln_util_dindex \
-mln_util_tracked_ptr \
-mln_util_ignore \
-mln_util_greater_psite \
-mln_util_timer \
+mln_util_internal_edge_impl \
+mln_util_internal_graph_iter \
mln_util_yes \
-mln_util_line_graph \
-mln_util_ord \
-mln_util_tree_fast_to_image \
-mln_util_tree \
-mln_util_index \
mln_util_multi_site \
-mln_util_branch_iter \
+mln_util_timer \
+mln_util_edge \
+mln_util_tree_fast \
mln_util_branch_iter_ind \
-mln_util_tree_to_fast \
-mln_util_array \
+mln_util_tree_to_image \
mln_util_vertex \
-mln_util_pix \
-mln_util_tree_fast \
-mln_util_site_pair \
-mln_util_nil \
-mln_util_eat \
-mln_util_essential \
-mln_tag_init \
-mln_tag_skeleton \
-mln_tag_all \
-mln_tag_essential \
-mln_trace_entering \
-mln_trace_all \
-mln_trace_warning \
-mln_trace_exiting \
-mln_trace_resume \
-mln_trace_quiet \
-mln_trace_stop \
-mln_trace_essential \
-mln_make_graph \
-mln_make_double_neighb2d \
-mln_make_dpoint2d_h \
-mln_make_w_window \
-mln_make_image \
-mln_make_vec \
-mln_make_all \
-mln_make_dual_neighb \
-mln_make_w_window3d \
-mln_make_mat \
-mln_make_win_chamfer \
-mln_make_w_window2d_int \
-mln_make_box1d \
-mln_make_voronoi \
-mln_make_box2d \
-mln_make_w_window2d \
-mln_make_box3d \
-mln_make_relabelfun \
-mln_make_pixel \
-mln_make_pix \
-mln_make_box2d_h \
-mln_make_w_window1d \
-mln_make_image2d \
-mln_make_w_window_directional \
-mln_make_w_window3d_int \
-mln_make_essential \
-mln_make_w_window1d_int \
-mln_make_point2d_h \
-mln_display_all \
-mln_display_essential \
-mln_extension_adjust \
-mln_extension_duplicate \
-mln_extension_adjust_duplicate \
-mln_extension_all \
-mln_extension_adjust_fill \
-mln_extension_fill \
-mln_extension_essential \
-mln_fun_p2b_chess \
-mln_fun_p2b_all \
-mln_fun_p2b_has \
-mln_fun_p2b_big_chess \
-mln_fun_p2b_essential \
-mln_fun_p2p_mirror \
+mln_util_array \
+mln_fun_c \
+mln_fun_cast \
mln_fun_x2p_closest_point \
-mln_fun_x2p_all \
mln_fun_x2p_essential \
-mln_fun_ops \
-mln_fun_c \
+mln_fun_x2p_all \
+mln_fun_p2v_elifs \
+mln_fun_p2v_iota \
+mln_fun_p2v_essential \
+mln_fun_p2v_all \
+mln_fun_p2v_ternary \
+mln_fun_vv2v_vec \
mln_fun_vv2v_max \
-mln_fun_vv2v_lor \
+mln_fun_vv2v_lxor \
+mln_fun_vv2v_essential \
mln_fun_vv2v_land_not \
-mln_fun_vv2v_vec \
-mln_fun_vv2v_all \
mln_fun_vv2v_macros \
-mln_fun_vv2v_lxor \
+mln_fun_vv2v_all \
+mln_fun_vv2v_min \
mln_fun_vv2v_diff_abs \
mln_fun_vv2v_land \
-mln_fun_vv2v_min \
-mln_fun_vv2v_essential \
-mln_fun_internal_array_base \
-mln_fun_internal_x2x_linear_impl \
-mln_fun_internal_selector \
-mln_fun_p2v_ternary \
-mln_fun_p2v_iota \
-mln_fun_p2v_elifs \
-mln_fun_p2v_all \
-mln_fun_p2v_essential \
-mln_fun_all \
-mln_fun_v2b_lnot \
-mln_fun_v2b_all \
-mln_fun_v2b_threshold \
-mln_fun_v2b_essential \
-mln_fun_v2v_norm \
-mln_fun_v2v_linear \
-mln_fun_v2v_id \
-mln_fun_v2v_saturate \
-mln_fun_v2v_inc \
-mln_fun_v2v_all \
-mln_fun_v2v_dec \
-mln_fun_v2v_abs \
-mln_fun_v2v_cast \
+mln_fun_vv2v_lor \
+mln_fun_x2x_composed \
+mln_fun_x2x_essential \
+mln_fun_x2x_rotation \
+mln_fun_x2x_all \
+mln_fun_x2x_translation \
+mln_fun_essential \
mln_fun_v2v_rgb_to_hsi \
mln_fun_v2v_enc \
+mln_fun_v2v_cast \
+mln_fun_v2v_saturate \
+mln_fun_v2v_norm \
mln_fun_v2v_convert \
+mln_fun_v2v_id \
mln_fun_v2v_essential \
-mln_fun_cast \
+mln_fun_v2v_linear \
+mln_fun_v2v_all \
+mln_fun_v2v_abs \
+mln_fun_v2v_dec \
+mln_fun_v2v_inc \
+mln_fun_i2v_essential \
mln_fun_i2v_all \
-mln_fun_i2v_array \
mln_fun_i2v_all_to \
-mln_fun_i2v_essential \
-mln_fun_l2l_relabel \
-mln_fun_l2l_all \
+mln_fun_i2v_array \
+mln_fun_ops \
+mln_fun_all \
+mln_fun_v2b_essential \
+mln_fun_v2b_lnot \
+mln_fun_v2b_all \
+mln_fun_v2b_threshold \
+mln_fun_internal_selector \
+mln_fun_internal_array_base \
+mln_fun_internal_x2x_linear_impl \
mln_fun_l2l_essential \
-mln_fun_x2x_composed \
-mln_fun_x2x_all \
-mln_fun_x2x_translation \
-mln_fun_x2x_rotation \
-mln_fun_x2x_essential \
+mln_fun_l2l_all \
+mln_fun_l2l_relabel \
+mln_fun_x2v_essential \
mln_fun_x2v_linear \
-mln_fun_x2v_bilinear \
mln_fun_x2v_all \
+mln_fun_x2v_bilinear \
mln_fun_x2v_l1_norm \
mln_fun_x2v_nneighbor \
-mln_fun_x2v_essential \
-mln_fun_essential \
-mln_all \
-mln_convert_to_p_set \
-mln_convert_to \
-mln_convert_to_upper_window \
-mln_convert_to_image \
-mln_convert_to_fun \
-mln_convert_all \
-mln_convert_to_window \
-mln_convert_from_to \
-mln_convert_impl_from_value_to_value \
-mln_convert_impl_all \
-mln_convert_impl_from_image_to_site_set \
-mln_convert_to_dpoint \
-mln_convert_to_p_array \
-mln_convert_to_rgb \
-mln_convert_essential \
-mln_value_float01_f \
-mln_value_float01_16 \
-mln_value_lut_vec \
-mln_value_glf \
-mln_value_other \
-mln_value_graylevel_f \
-mln_value_aliases \
-mln_value_label_16 \
-mln_value_ops \
-mln_value_set \
-mln_value_int_u_sat \
-mln_value_float01_8 \
-mln_value_int_u8 \
-mln_value_equiv \
-mln_value_internal_integer \
-mln_value_internal_gray_f \
-mln_value_internal_all \
-mln_value_internal_value_like \
-mln_value_internal_iterable_set \
-mln_value_internal_encoding \
-mln_value_internal_convert \
-mln_value_internal_gray_ \
-mln_value_internal_essential \
-mln_value_proxy \
-mln_value_viter \
-mln_value_graylevel \
-mln_value_all \
-mln_value_super_value \
-mln_value_builtin_symbolics \
-mln_value_builtin_ops \
-mln_value_builtin_all \
-mln_value_builtin_promotions \
-mln_value_builtin_integers \
-mln_value_builtin_floatings \
-mln_value_builtin_essential \
-mln_value_sign \
-mln_value_hsi \
-mln_value_interval \
-mln_value_gl16 \
-mln_value_scalar \
-mln_value_float01 \
-mln_value_cast \
-mln_value_int_u \
-mln_value_int_s8 \
-mln_value_int_s16 \
-mln_value_int_u16 \
-mln_value_label \
-mln_value_rgb \
-mln_value_stack \
-mln_value_concept_integer \
-mln_value_concept_structured \
-mln_value_concept_built_in \
-mln_value_concept_all \
-mln_value_concept_scalar \
-mln_value_concept_data \
-mln_value_concept_floating \
-mln_value_concept_symbolic \
-mln_value_concept_vectorial \
-mln_value_concept_essential \
-mln_value_int_s \
-mln_value_rgb8 \
-mln_value_int_s32 \
-mln_value_float01_ \
-mln_value_rgb16 \
-mln_value_int_u32 \
-mln_value_gl8 \
-mln_value_label_8 \
-mln_value_essential \
-mln_accu_tuple \
-mln_accu_min_h \
-mln_accu_max \
-mln_accu_lor \
-mln_accu_rank \
-mln_accu_transform_stop \
-mln_accu_maj_h \
-mln_accu_min_max \
-mln_accu_internal_base \
-mln_accu_transform_snake \
-mln_accu_rank_high_quant \
-mln_accu_count \
-mln_accu_median_h \
-mln_accu_all \
-mln_accu_land_basic \
-mln_accu_p \
-mln_accu_transform \
-mln_accu_median_alt \
-mln_accu_volume \
-mln_accu_sum \
-mln_accu_height \
-mln_accu_land \
-mln_accu_take \
-mln_accu_histo \
-mln_accu_pair \
-mln_accu_count_adjacent_vertices \
-mln_accu_convolve \
-mln_accu_v \
-mln_accu_rank_bool \
-mln_accu_min \
-mln_accu_transform_directional \
-mln_accu_compute \
-mln_accu_mean \
-mln_accu_lor_basic \
-mln_accu_transform_diagonal \
-mln_accu_nil \
-mln_accu_bbox \
-mln_accu_center \
-mln_accu_line \
-mln_accu_essential \
-mln_accu_max_h \
-mln_level_compare \
-mln_level_memset_ \
-mln_level_transform_inplace \
-mln_level_replace \
-mln_level_memcpy_ \
-mln_level_apply \
-mln_level_approx_all \
-mln_level_approx_essential \
-mln_level_approx_median \
-mln_level_saturate \
-mln_level_all \
-mln_level_paste \
-mln_level_fast_median \
-mln_level_abs \
-mln_level_fill_with_image \
-mln_level_transform \
-mln_level_fill_with_value \
-mln_level_stretch \
-mln_level_was_median \
-mln_level_compute \
-mln_level_convert \
-mln_level_to_enc \
-mln_level_naive_all \
-mln_level_naive_essential \
-mln_level_naive_median \
-mln_level_sort_psites \
-mln_level_update \
-mln_level_fill \
-mln_level_essential \
-mln_level_assign \
-mln_level_median \
-mln_math_jacobi \
-mln_math_max \
-mln_math_sqr \
-mln_math_all \
-mln_math_sign \
-mln_math_abs \
-mln_math_diff_abs \
-mln_math_round \
-mln_math_min \
-mln_math_sqrt \
-mln_math_essential \
-mln_math_round_sat \
-mln_binarization_includes \
-mln_binarization_all \
-mln_binarization_binarization \
-mln_binarization_threshold \
-mln_binarization_essential \
-mln_trait_site_set_props \
-mln_trait_site_set_print \
-mln_trait_promote \
-mln_trait_solve_binary \
-mln_trait_value_ \
-mln_trait_all \
-mln_trait_value_all \
-mln_trait_value_nature \
-mln_trait_value_quant \
-mln_trait_value_kind \
-mln_trait_value_print \
-mln_trait_value_essential \
+mln_fun_p2p_mirror \
+mln_fun_p2b_essential \
+mln_fun_p2b_has \
+mln_fun_p2b_big_chess \
+mln_fun_p2b_all \
+mln_fun_p2b_chess \
+mln_extension_adjust \
+mln_extension_essential \
+mln_extension_fill \
+mln_extension_adjust_duplicate \
+mln_extension_adjust_fill \
+mln_extension_all \
+mln_extension_duplicate \
+mln_histo_data \
+mln_histo_essential \
+mln_histo_compute \
+mln_histo_all \
+mln_transform_distance_geodesic \
+mln_transform_essential \
+mln_transform_influence_zone_geodesic \
+mln_transform_distance_front \
+mln_transform_all \
+mln_transform_internal_distance_functor \
+mln_transform_internal_all \
+mln_transform_internal_influence_zone_functor \
+mln_transform_influence_zone_front \
+mln_trait_windows \
mln_trait_images \
-mln_trait_window_props \
-mln_trait_window_print \
-mln_trait_ch_value \
mln_trait_solve \
-mln_trait_solve_unary \
-mln_trait_op_postdec \
+mln_trait_window_print \
+mln_trait_window_props \
+mln_trait_image_from_grid \
+mln_trait_site_sets \
+mln_trait_solve_binary \
+mln_trait_value_ \
+mln_trait_promote \
+mln_trait_essential \
+mln_trait_concrete \
+mln_trait_op_ord \
+mln_trait_op_div \
mln_trait_op_mod \
-mln_trait_op_lor \
-mln_trait_op_neq \
-mln_trait_op_plus \
+mln_trait_op_not \
+mln_trait_op_or \
+mln_trait_op_and \
mln_trait_op_xor \
-mln_trait_op_all \
+mln_trait_op_essential \
+mln_trait_op_preinc \
+mln_trait_op_greater \
+mln_trait_op_predec \
+mln_trait_op_neq \
+mln_trait_op_postinc \
+mln_trait_op_uplus \
mln_trait_op_geq \
mln_trait_op_uminus \
-mln_trait_op_not \
-mln_trait_op_times \
+mln_trait_op_all \
+mln_trait_op_plus \
+mln_trait_op_eq \
+mln_trait_op_leq \
mln_trait_op_less \
-mln_trait_op_decl \
-mln_trait_op_ord \
-mln_trait_op_and \
-mln_trait_op_or \
-mln_trait_op_predec \
+mln_trait_op_postdec \
mln_trait_op_minus \
-mln_trait_op_div \
-mln_trait_op_leq \
-mln_trait_op_preinc \
-mln_trait_op_greater \
-mln_trait_op_postinc \
-mln_trait_op_uplus \
-mln_trait_op_essential \
-mln_trait_op_eq \
-mln_trait_concrete \
-mln_trait_windows \
-mln_trait_site_sets \
-mln_trait_image_from_grid \
+mln_trait_op_times \
+mln_trait_op_decl \
+mln_trait_op_lor \
+mln_trait_all \
mln_trait_undef \
-mln_trait_image_props \
mln_trait_image_print \
+mln_trait_image_props \
+mln_trait_solve_unary \
+mln_trait_site_set_print \
+mln_trait_site_set_props \
mln_trait_neighborhood \
-mln_trait_essential \
-mln_canvas_labeling \
-mln_canvas_browsing_hyper_directional \
-mln_canvas_browsing_snake_generic \
-mln_canvas_browsing_backdiagonal2d \
-mln_canvas_browsing_snake_vert \
-mln_canvas_browsing_snake_fwd \
-mln_canvas_browsing_all \
-mln_canvas_browsing_diagonal2d \
-mln_canvas_browsing_fwd \
-mln_canvas_browsing_dir_struct_elt_incr_update \
-mln_canvas_browsing_depth_first_search \
-mln_canvas_browsing_directional \
-mln_canvas_browsing_essential \
-mln_canvas_chamfer \
-mln_canvas_distance_geodesic \
-mln_canvas_all \
-mln_canvas_distance_front \
-mln_canvas_morpho_all \
-mln_canvas_morpho_algebraic_union_find \
-mln_canvas_morpho_essential \
-mln_canvas_essential \
-mln_metal_is_const \
-mln_metal_none \
-mln_metal_equal \
-mln_metal_unptr \
-mln_metal_not_equal \
-mln_metal_is_ref \
-mln_metal_ret \
-mln_metal_unqualif \
-mln_metal_is_not \
-mln_metal_vec \
-mln_metal_is \
-mln_metal_bool \
-mln_metal_all \
-mln_metal_math_pow \
-mln_metal_math_max \
-mln_metal_math_all \
-mln_metal_math_root \
-mln_metal_math_sqrt \
-mln_metal_mat \
-mln_metal_is_not_const \
-mln_metal_fix_return \
-mln_metal_ands \
-mln_metal_const \
-mln_metal_is_unqualif \
-mln_metal_unconst \
-mln_metal_bexpr \
-mln_metal_array2d \
-mln_metal_is_not_a \
-mln_metal_is_a \
-mln_metal_array1d \
-mln_metal_if \
-mln_metal_unref \
-mln_metal_array \
-mln_metal_ref \
-mln_metal_same_point \
-mln_metal_int \
-mln_metal_abort \
-mln_metal_same_coord \
-mln_metal_templated_by \
-mln_metal_has_neighborhood \
-mln_metal_goes_to \
-mln_metal_is_not_ref \
-mln_metal_converts_to \
-mln_metal_essential \
-mln_metal_array3d \
-mln_algebra_vec \
-mln_algebra_all \
-mln_algebra_h_vec \
-mln_algebra_mat \
-mln_algebra_h_mat \
-mln_algebra_quat \
-mln_algebra_essential \
-mln_linear_convolve_2x1d \
-mln_linear_all \
-mln_linear_ch_convolve \
-mln_linear_gaussian \
-mln_linear_convolve \
-mln_linear_sobel_2d \
-mln_linear_local_convolve \
-mln_linear_lap \
-mln_linear_convolve_directional \
-mln_linear_log \
-mln_linear_essential \
-mln_morpho_thinning \
-mln_morpho_meyer_wst \
-mln_morpho_opening \
-mln_morpho_includes \
-mln_morpho_elementary_opening \
-mln_morpho_elementary_gradient_internal \
-mln_morpho_elementary_dilation \
-mln_morpho_elementary_laplacian \
-mln_morpho_elementary_all \
-mln_morpho_elementary_gradient_external \
-mln_morpho_elementary_like_ero_fun \
-mln_morpho_elementary_gradient \
-mln_morpho_elementary_like_ero_set \
-mln_morpho_elementary_closing \
-mln_morpho_elementary_top_hat \
-mln_morpho_elementary_erosion \
-mln_morpho_elementary_essential \
-mln_morpho_thin_fit \
-mln_morpho_skeleton_constrained \
-mln_morpho_complementation \
-mln_morpho_line_gradient \
-mln_morpho_hit_or_miss \
-mln_morpho_closing_height \
-mln_morpho_plus \
-mln_morpho_general \
-mln_morpho_internal_elementary \
-mln_morpho_contrast \
-mln_morpho_opening_area \
-mln_morpho_opening_height \
-mln_morpho_thickening \
-mln_morpho_dilation \
-mln_morpho_laplacian \
-mln_morpho_all \
-mln_morpho_opening_attribute \
-mln_morpho_opening_volume \
-mln_morpho_closing_area_on_vertices \
-mln_morpho_closing_volume \
-mln_morpho_minus \
-mln_morpho_gradient \
-mln_morpho_tree_max \
-mln_morpho_tree_compute_parent \
-mln_morpho_tree_all \
-mln_morpho_tree_utils \
-mln_morpho_tree_data \
-mln_morpho_tree_compute_attribute_image \
-mln_morpho_opening_area_on_vertices \
-mln_morpho_min \
-mln_morpho_closing \
-mln_morpho_top_hat \
-mln_morpho_erosion \
-mln_morpho_Rd \
-mln_morpho_closing_area \
-mln_morpho_thick_miss \
-mln_morpho_closing_attribute \
-mln_morpho_rank_filter \
-mln_morpho_essential \
-mln_topo_n_face_iter \
-mln_topo_face_iter \
-mln_topo_is_simple_2d \
-mln_topo_centered_iter_adapter \
-mln_topo_internal_complex_set_iterator_base \
-mln_topo_internal_complex_iterator_base \
-mln_topo_internal_complex_relative_iterator_base \
-mln_topo_internal_complex_relative_iterator_sequence \
-mln_topo_algebraic_n_face \
-mln_topo_attic_faces_iter \
-mln_topo_adj_lower_dim_connected_n_face_iter \
-mln_topo_n_face \
-mln_topo_adj_lower_higher_face_iter \
-mln_topo_all \
-mln_topo_face_data \
-mln_topo_static_n_face_iter \
-mln_topo_face \
-mln_topo_adj_m_face_iter \
-mln_topo_complex \
-mln_topo_adj_higher_face_iter \
-mln_topo_adj_lower_face_iter \
-mln_topo_complex_iterators \
-mln_topo_center_only_iter \
-mln_topo_adj_higher_dim_connected_n_face_iter \
-mln_topo_algebraic_face \
-mln_topo_n_faces_set \
-mln_topo_essential \
-mln_essential_1d \
-mln_essential_routine \
-mln_essential_3d \
-mln_essential_2d \
-mln_win_inter \
-mln_win_backdiag2d \
-mln_win_segment1d \
+mln_trait_ch_value \
+mln_trait_value_print \
+mln_trait_value_nature \
+mln_trait_value_kind \
+mln_trait_value_quant \
+mln_trait_value_essential \
+mln_trait_value_all \
+mln_win_disk2d \
mln_win_cuboid3d \
-mln_win_vline2d \
+mln_win_segment1d \
mln_win_octagon2d \
-mln_win_all \
-mln_win_multiple_size \
-mln_win_cube3d \
+mln_win_backdiag2d \
+mln_win_diag2d \
+mln_win_vline2d \
+mln_win_essential \
mln_win_shift \
mln_win_sym \
+mln_win_hline2d \
+mln_win_inter \
+mln_win_all \
mln_win_diff \
-mln_win_multiple \
-mln_win_diag2d \
-mln_win_disk2d \
mln_win_rectangle2d \
-mln_win_hline2d \
+mln_win_multiple \
mln_win_line \
-mln_win_essential \
-mln_core_clock_neighb \
-mln_core_pixter2d \
+mln_win_multiple_size \
+mln_win_cube3d \
+mln_core_category \
+mln_core_pixter1d \
+mln_core_routine_init \
+mln_core_routine_essential \
+mln_core_routine_primary \
+mln_core_routine_clone \
+mln_core_routine_ops \
+mln_core_routine_all \
+mln_core_routine_initialize \
+mln_core_routine_extend \
+mln_core_routine_exact \
+mln_core_trait_qlf_value \
+mln_core_trait_op_mult \
+mln_core_trait_essential \
+mln_core_trait_pixter \
+mln_core_trait_all \
+mln_core_a_point_of \
+mln_core_def_coordf \
mln_core_def_low_quant_nbits \
+mln_core_def_essential \
mln_core_def_all \
-mln_core_def_coordf \
mln_core_def_coord \
-mln_core_def_essential \
-mln_core_site_set_box \
-mln_core_site_set_p_vertices \
-mln_core_site_set_p_vaccess \
-mln_core_site_set_p_if_piter \
-mln_core_site_set_p_run_piter \
-mln_core_site_set_p_key \
-mln_core_site_set_p_double \
-mln_core_site_set_p_complex_piter \
-mln_core_site_set_p_complex \
-mln_core_site_set_p_image \
-mln_core_site_set_attic_p_complex_faces_piter \
-mln_core_site_set_attic_p_faces_piter \
-mln_core_site_set_p_priority \
-mln_core_site_set_p_set_of \
-mln_core_site_set_all \
-mln_core_site_set_p_edges \
-mln_core_site_set_box_piter \
-mln_core_site_set_p_faces \
-mln_core_site_set_p_set \
-mln_core_site_set_p_queue \
-mln_core_site_set_p_if \
-mln_core_site_set_operators \
-mln_core_site_set_p_mutable_array_of \
-mln_core_site_set_p_edges_psite \
-mln_core_site_set_complex_psite \
-mln_core_site_set_p_run \
-mln_core_site_set_p_n_faces_piter \
-mln_core_site_set_p_centered \
-mln_core_site_set_p_bgraph \
-mln_core_site_set_p_bgraph_piter \
-mln_core_site_set_p_array \
-mln_core_site_set_p_vertices_psite \
-mln_core_site_set_p_line2d \
-mln_core_site_set_p_queue_fast \
-mln_core_site_set_p_graph_piter \
-mln_core_site_set_essential \
+mln_core_dpoints_pixter \
mln_core_dpsites_piter \
+mln_core_tags \
+mln_core_window \
+mln_core_pixter2d \
+mln_core_essential \
mln_core_w_window \
-mln_core_grids \
-mln_core_dpoints_pixter \
+mln_core_alias_point2d \
+mln_core_alias_box2d_h \
+mln_core_alias_box2d \
+mln_core_alias_point2d_h \
+mln_core_alias_neighb3d \
+mln_core_alias_window1d \
+mln_core_alias_point3df \
+mln_core_alias_w_window2d_int \
+mln_core_alias_point1d \
+mln_core_alias_w_window3d_float \
+mln_core_alias_w_window1d_int \
+mln_core_alias_dpoint2d_h \
+mln_core_alias_dpoint1d \
+mln_core_alias_complex_image \
+mln_core_alias_complex_geometry \
+mln_core_alias_p_run2d \
+mln_core_alias_w_window1d_float \
+mln_core_alias_w_window3d_int \
+mln_core_alias_box3d \
+mln_core_alias_neighb1d \
+mln_core_alias_neighb2d \
+mln_core_alias_w_window2d_float \
+mln_core_alias_window2d \
+mln_core_alias_window3d \
+mln_core_alias_point3d \
+mln_core_alias_dpoint3d \
+mln_core_alias_dpoint2d \
+mln_core_alias_box1d \
+mln_core_alias_p_runs2d \
+mln_core_point \
+mln_core_clock_neighb \
+mln_core_neighb \
+mln_core_dpoint \
+mln_core_var \
+mln_core_faces_psite \
+mln_core_contract \
+mln_core_macros \
+mln_core_all \
+mln_core_internal_image_primary \
+mln_core_internal_window_base \
mln_core_internal_graph_psite_base \
-mln_core_internal_run_image \
-mln_core_internal_pixel_impl \
-mln_core_internal_site_set_base \
-mln_core_internal_image_value_morpher \
-mln_core_internal_site_iterator_base \
-mln_core_internal_complex_neighborhood_base \
-mln_core_internal_site_relative_iterator_base \
+mln_core_internal_data \
mln_core_internal_site_set_impl \
-mln_core_internal_exact \
+mln_core_internal_piter_adaptor \
+mln_core_internal_image_morpher \
+mln_core_internal_image_value_morpher \
+mln_core_internal_complex_window_p_base \
mln_core_internal_p_complex_piter_base \
+mln_core_internal_site_set_base \
mln_core_internal_neighb_niter_impl \
-mln_core_internal_pixel_iterator_base \
-mln_core_internal_classical_window_base \
-mln_core_internal_data \
-mln_core_internal_force_exact \
-mln_core_internal_image_base \
+mln_core_internal_site_set_iterator_base \
+mln_core_internal_set_of \
mln_core_internal_check_image_fastest \
mln_core_internal_check_image_all \
+mln_core_internal_classical_window_base \
+mln_core_internal_force_exact \
+mln_core_internal_pixel_iterator_base \
+mln_core_internal_coord_impl \
+mln_core_internal_pixel_impl \
+mln_core_internal_site_iterator_base \
+mln_core_internal_run_image \
mln_core_internal_fixme \
+mln_core_internal_pseudo_site_base \
mln_core_internal_morpher_lvalue \
mln_core_internal_image_domain_morpher \
-mln_core_internal_image_primary \
-mln_core_internal_set_of \
-mln_core_internal_complex_window_p_base \
+mln_core_internal_complex_neighborhood_base \
mln_core_internal_graph_window_base \
-mln_core_internal_piter_adaptor \
+mln_core_internal_image_identity \
+mln_core_internal_geom_bbox \
mln_core_internal_weighted_window_base \
mln_core_internal_neighborhood_base \
-mln_core_internal_image_morpher \
-mln_core_internal_coord_impl \
-mln_core_internal_geom_bbox \
-mln_core_internal_image_identity \
-mln_core_internal_pseudo_site_base \
-mln_core_internal_window_base \
+mln_core_internal_site_relative_iterator_base \
+mln_core_internal_exact \
mln_core_internal_box_impl \
-mln_core_internal_site_set_iterator_base \
-mln_core_contract \
-mln_core_all \
-mln_core_point \
-mln_core_neighb \
-mln_core_routine_initialize \
-mln_core_routine_primary \
-mln_core_routine_init \
-mln_core_routine_ops \
-mln_core_routine_all \
-mln_core_routine_clone \
-mln_core_routine_exact \
-mln_core_routine_extend \
-mln_core_routine_essential \
-mln_core_trait_op_mult \
-mln_core_trait_all \
-mln_core_trait_pixter \
-mln_core_trait_qlf_value \
-mln_core_trait_essential \
-mln_core_pixter1d \
-mln_core_category \
-mln_core_macros \
-mln_core_box_runstart_piter \
-mln_core_tags \
-mln_core_dpoint \
-mln_core_alias_dpoint2d_h \
-mln_core_alias_p_run2d \
-mln_core_alias_point3d \
-mln_core_alias_neighb3d \
-mln_core_alias_window3d \
-mln_core_alias_neighb2d \
-mln_core_alias_complex_image \
-mln_core_alias_w_window1d_float \
-mln_core_alias_neighb1d \
-mln_core_alias_w_window2d_float \
-mln_core_alias_w_window2d_int \
-mln_core_alias_box1d \
-mln_core_alias_box2d \
-mln_core_alias_window1d \
-mln_core_alias_point1d \
-mln_core_alias_box3d \
-mln_core_alias_dpoint3d \
-mln_core_alias_complex_geometry \
-mln_core_alias_w_window3d_float \
-mln_core_alias_box2d_h \
-mln_core_alias_point2d \
-mln_core_alias_window2d \
-mln_core_alias_p_runs2d \
-mln_core_alias_point3df \
-mln_core_alias_dpoint1d \
-mln_core_alias_w_window3d_int \
-mln_core_alias_dpoint2d \
-mln_core_alias_w_window1d_int \
-mln_core_alias_point2d_h \
-mln_core_window \
-mln_core_concept_site_proxy \
-mln_core_concept_point_site \
-mln_core_concept_box \
-mln_core_concept_generalized_pixel \
-mln_core_concept_graph \
-mln_core_concept_iterator \
-mln_core_concept_doc_point_site \
-mln_core_concept_doc_box \
-mln_core_concept_doc_generalized_pixel \
-mln_core_concept_doc_iterator \
-mln_core_concept_doc_image_fastest \
-mln_core_concept_doc_image \
-mln_core_concept_doc_value_set \
-mln_core_concept_doc_weighted_window \
-mln_core_concept_doc_pixel_iterator \
-mln_core_concept_doc_value_iterator \
-mln_core_concept_doc_dpoint \
-mln_core_concept_doc_window \
-mln_core_concept_doc_accumulator \
-mln_core_concept_doc_site_set \
-mln_core_concept_doc_object \
-mln_core_concept_doc_neighborhood \
-mln_core_concept_doc_point_iterator \
-mln_core_concept_pseudo_site \
-mln_core_concept_image \
-mln_core_concept_value_set \
-mln_core_concept_proxy \
-mln_core_concept_site \
-mln_core_concept_weighted_window \
-mln_core_concept_all \
-mln_core_concept_gpoint \
-mln_core_concept_site_iterator \
-mln_core_concept_point \
-mln_core_concept_literal \
-mln_core_concept_pixel_iterator \
-mln_core_concept_value_iterator \
-mln_core_concept_meta_accumulator \
-mln_core_concept_gdpoint \
-mln_core_concept_regular_grid \
-mln_core_concept_mesh \
-mln_core_concept_dpoint \
-mln_core_concept_function \
-mln_core_concept_window \
-mln_core_concept_value \
-mln_core_concept_accumulator \
-mln_core_concept_site_set \
-mln_core_concept_object \
-mln_core_concept_delta_point_site \
-mln_core_concept_neighborhood \
-mln_core_concept_browsing \
-mln_core_pixel \
+mln_core_internal_image_base \
mln_core_clock_neighb2d \
-mln_core_pixter3d \
mln_core_image_obased_rle_encode \
mln_core_image_plain \
-mln_core_image_graph_image \
-mln_core_image_image3d \
mln_core_image_decorated_image \
-mln_core_image_extension_ima \
-mln_core_image_flat_image \
+mln_core_image_graph_image \
mln_core_image_complex_neighborhood_piter \
-mln_core_image_tr_mesh \
-mln_core_image_graph_elt_window \
-mln_core_image_obased_rle_image \
-mln_core_image_mono_obased_rle_image \
-mln_core_image_interpolated \
-mln_core_image_lazy_image \
-mln_core_image_t_image \
+mln_core_image_graph_window_piter \
mln_core_image_hexa_piter \
-mln_core_image_value_enc_image \
-mln_core_image_sub_image_if \
-mln_core_image_all \
-mln_core_image_mono_rle_image \
-mln_core_image_complex_image \
-mln_core_image_cast_image \
mln_core_image_rle_encode \
-mln_core_image_complex_window_piter \
+mln_core_image_extension_val \
mln_core_image_tr_image \
-mln_core_image_sub_image \
-mln_core_image_rle_image \
-mln_core_image_line_graph_elt_window \
-mln_core_image_mono_rle_encode \
-mln_core_image_bgraph_psite \
-mln_core_image_sparse_image \
-mln_core_image_bgraph_image \
-mln_core_image_complex_neighborhoods \
-mln_core_image_graph_window_piter \
+mln_core_image_fi_adaptor \
+mln_core_image_extension_ima \
mln_core_image_sparse_encode \
-mln_core_image_safe \
-mln_core_image_extension_fun \
-mln_core_image_image1d \
-mln_core_image_extension_val \
-mln_core_image_image_if \
+mln_core_image_lazy_image \
mln_core_image_hexa \
-mln_core_image_extended \
+mln_core_image_flat_image \
+mln_core_image_essential \
+mln_core_image_value_enc_image \
+mln_core_image_image_if \
+mln_core_image_complex_image \
mln_core_image_image2d_h \
+mln_core_image_rle_image \
+mln_core_image_complex_window_piter \
+mln_core_image_mono_rle_image \
+mln_core_image_graph_elt_window \
+mln_core_image_interpolated \
+mln_core_image_image1d \
+mln_core_image_value_encode \
+mln_core_image_mono_obased_rle_image \
+mln_core_image_t_image \
mln_core_image_image2d \
-mln_core_image_ch_piter \
+mln_core_image_cast_image \
+mln_core_image_obased_rle_image \
+mln_core_image_all \
mln_core_image_complex_windows \
-mln_core_image_fi_adaptor \
+mln_core_image_safe \
+mln_core_image_extended \
+mln_core_image_sparse_image \
+mln_core_image_bgraph_image \
+mln_core_image_image3d \
+mln_core_image_bgraph_psite \
+mln_core_image_sub_image_if \
+mln_core_image_line_graph_elt_window \
+mln_core_image_tr_mesh \
+mln_core_image_sub_image \
+mln_core_image_ch_piter \
+mln_core_image_extension_fun \
mln_core_image_mono_obased_rle_encode \
mln_core_image_line_graph_image \
-mln_core_image_value_encode \
-mln_core_image_essential \
-mln_core_a_point_of \
-mln_core_var \
-mln_core_essential \
-mln_core_faces_psite \
-mln_labeling_blobs \
-mln_labeling_background \
-mln_labeling_relabel \
-mln_labeling_all \
-mln_labeling_level \
-mln_labeling_flat_zones \
-mln_labeling_foreground \
-mln_labeling_regional_maxima \
-mln_labeling_compute \
-mln_labeling_regional_minima \
-mln_labeling_essential \
-mln_test_predicate \
-mln_test_all \
-mln_test_positive \
-mln_test_essential \
-mln_transform_distance_geodesic \
-mln_transform_internal_all \
-mln_transform_internal_distance_functor \
-mln_transform_internal_influence_zone_functor \
-mln_transform_all \
-mln_transform_influence_zone_front \
-mln_transform_distance_front \
-mln_transform_influence_zone_geodesic \
-mln_transform_essential \
-mln_arith_includes \
-mln_arith_plus \
-mln_arith_all \
-mln_arith_times \
-mln_arith_diff_abs \
-mln_arith_minus \
-mln_arith_min \
-mln_arith_revert \
-mln_arith_essential \
-mln_io_pgm_load \
-mln_io_pgm_all \
-mln_io_pgm_save \
-mln_io_ppm_load \
-mln_io_ppm_all \
-mln_io_ppm_save \
-mln_io_pfm_load \
+mln_core_image_mono_rle_encode \
+mln_core_image_complex_neighborhoods \
+mln_core_pixter3d \
+mln_core_concept_site \
+mln_core_concept_value \
+mln_core_concept_gdpoint \
+mln_core_concept_pseudo_site \
+mln_core_concept_delta_point_site \
+mln_core_concept_site_set \
+mln_core_concept_value_set \
+mln_core_concept_gpoint \
+mln_core_concept_site_proxy \
+mln_core_concept_window \
+mln_core_concept_mesh \
+mln_core_concept_box \
+mln_core_concept_graph \
+mln_core_concept_point \
+mln_core_concept_value_iterator \
+mln_core_concept_doc_site_set \
+mln_core_concept_doc_image_fastest \
+mln_core_concept_doc_value_set \
+mln_core_concept_doc_window \
+mln_core_concept_doc_box \
+mln_core_concept_doc_value_iterator \
+mln_core_concept_doc_weighted_window \
+mln_core_concept_doc_image \
+mln_core_concept_doc_dpoint \
+mln_core_concept_doc_iterator \
+mln_core_concept_doc_accumulator \
+mln_core_concept_doc_neighborhood \
+mln_core_concept_doc_pixel_iterator \
+mln_core_concept_doc_point_iterator \
+mln_core_concept_doc_object \
+mln_core_concept_doc_generalized_pixel \
+mln_core_concept_doc_point_site \
+mln_core_concept_weighted_window \
+mln_core_concept_image \
+mln_core_concept_function \
+mln_core_concept_browsing \
+mln_core_concept_dpoint \
+mln_core_concept_iterator \
+mln_core_concept_meta_accumulator \
+mln_core_concept_accumulator \
+mln_core_concept_all \
+mln_core_concept_proxy \
+mln_core_concept_neighborhood \
+mln_core_concept_pixel_iterator \
+mln_core_concept_literal \
+mln_core_concept_site_iterator \
+mln_core_concept_regular_grid \
+mln_core_concept_object \
+mln_core_concept_generalized_pixel \
+mln_core_concept_point_site \
+mln_core_site_set_p_array \
+mln_core_site_set_p_priority \
+mln_core_site_set_p_bgraph \
+mln_core_site_set_p_queue \
+mln_core_site_set_p_double \
+mln_core_site_set_p_set \
+mln_core_site_set_p_complex \
+mln_core_site_set_p_graph_piter \
+mln_core_site_set_p_n_faces_piter \
+mln_core_site_set_p_set_of \
+mln_core_site_set_p_vaccess \
+mln_core_site_set_box_piter \
+mln_core_site_set_p_vertices_psite \
+mln_core_site_set_complex_psite \
+mln_core_site_set_p_run \
+mln_core_site_set_essential \
+mln_core_site_set_box \
+mln_core_site_set_p_line2d \
+mln_core_site_set_p_edges_psite \
+mln_core_site_set_p_mutable_array_of \
+mln_core_site_set_p_run_piter \
+mln_core_site_set_p_faces \
+mln_core_site_set_operators \
+mln_core_site_set_p_if_piter \
+mln_core_site_set_all \
+mln_core_site_set_p_edges \
+mln_core_site_set_p_bgraph_piter \
+mln_core_site_set_p_centered \
+mln_core_site_set_p_key \
+mln_core_site_set_p_vertices \
+mln_core_site_set_p_if \
+mln_core_site_set_p_queue_fast \
+mln_core_site_set_p_image \
+mln_core_site_set_p_complex_piter \
+mln_core_site_set_attic_p_faces_piter \
+mln_core_site_set_attic_p_complex_faces_piter \
+mln_core_pixel \
+mln_core_box_runstart_piter \
+mln_core_grids \
+mln_io_abort \
+mln_io_pbm_all \
+mln_io_pbm_load \
+mln_io_pbm_save \
+mln_io_essential \
+mln_io_off_all \
+mln_io_off_load \
+mln_io_off_save \
mln_io_pfm_all \
+mln_io_pfm_load \
mln_io_pfm_save \
+mln_io_pgm_all \
+mln_io_pgm_load \
+mln_io_pgm_save \
mln_io_all \
-mln_io_pbm_load \
-mln_io_pbm_all \
-mln_io_pbm_save \
+mln_io_fits_all \
+mln_io_fits_load \
mln_io_pnm_max_component \
+mln_io_pnm_save_header \
+mln_io_pnm_macros \
+mln_io_pnm_all \
mln_io_pnm_load \
mln_io_pnm_load_header \
-mln_io_pnm_all \
-mln_io_pnm_macros \
mln_io_pnm_save \
-mln_io_pnm_save_header \
+mln_io_ppm_all \
+mln_io_ppm_load \
+mln_io_ppm_save \
mln_io_txt_all \
mln_io_txt_save \
-mln_io_abort \
-mln_io_fits_load \
-mln_io_fits_all \
-mln_io_off_load \
-mln_io_off_all \
-mln_io_off_save \
-mln_io_essential \
-mln_logical_includes \
-mln_logical_and_not \
-mln_logical_xor \
-mln_logical_all \
-mln_logical_not \
-mln_logical_and \
-mln_logical_or \
-mln_logical_essential \
-mln_norm_all \
-mln_norm_l1 \
-mln_norm_l2 \
-mln_norm_linfty \
-mln_norm_essential \
-mln_debug_iota \
-mln_debug_all \
-mln_debug_println_with_border \
-mln_debug_colorize \
-mln_debug_draw_graph \
-mln_debug_put_word \
-mln_debug_format \
-mln_debug_println \
-mln_debug_essential \
-mln_estim_min_max \
-mln_estim_all \
-mln_estim_sum \
-mln_estim_mean \
-mln_estim_essential \
-mln_set_uni \
-mln_set_inter \
-mln_set_all \
-mln_set_get \
-mln_set_sym_diff \
-mln_set_has \
-mln_set_diff \
-mln_set_compute \
-mln_set_essential \
+mln_make_vec \
+mln_make_box2d_h \
+mln_make_box2d \
+mln_make_point2d_h \
+mln_make_double_neighb2d \
+mln_make_w_window2d_int \
+mln_make_w_window1d \
+mln_make_relabelfun \
+mln_make_pix \
+mln_make_w_window1d_int \
+mln_make_dpoint2d_h \
+mln_make_essential \
+mln_make_graph \
+mln_make_w_window \
+mln_make_image \
+mln_make_w_window3d_int \
+mln_make_box3d \
+mln_make_image2d \
+mln_make_all \
+mln_make_dual_neighb \
+mln_make_win_chamfer \
+mln_make_pixel \
+mln_make_w_window2d \
+mln_make_w_window_directional \
+mln_make_box1d \
+mln_make_mat \
+mln_make_voronoi \
+mln_make_w_window3d \
+mln_topo_adj_lower_face_iter \
+mln_topo_adj_lower_dim_connected_n_face_iter \
+mln_topo_face_iter \
+mln_topo_algebraic_n_face \
+mln_topo_complex \
+mln_topo_face_data \
+mln_topo_adj_higher_dim_connected_n_face_iter \
+mln_topo_essential \
+mln_topo_static_n_face_iter \
+mln_topo_n_faces_set \
+mln_topo_adj_higher_face_iter \
+mln_topo_all \
+mln_topo_internal_complex_iterator_base \
+mln_topo_internal_complex_relative_iterator_sequence \
+mln_topo_internal_complex_relative_iterator_base \
+mln_topo_internal_complex_set_iterator_base \
+mln_topo_adj_m_face_iter \
+mln_topo_n_face \
+mln_topo_complex_iterators \
+mln_topo_adj_lower_higher_face_iter \
+mln_topo_is_simple_2d \
+mln_topo_face \
+mln_topo_center_only_iter \
+mln_topo_centered_iter_adapter \
+mln_topo_algebraic_face \
+mln_topo_n_face_iter \
+mln_topo_attic_faces_iter \
+mln_subsampling_essential \
+mln_subsampling_subsampling \
+mln_subsampling_all \
+mln_subsampling_gaussian_subsampling \
+mln_canvas_distance_geodesic \
+mln_canvas_labeling \
+mln_canvas_essential \
+mln_canvas_distance_front \
+mln_canvas_morpho_algebraic_union_find \
+mln_canvas_morpho_essential \
+mln_canvas_morpho_all \
+mln_canvas_all \
+mln_canvas_chamfer \
+mln_canvas_browsing_directional \
+mln_canvas_browsing_fwd \
+mln_canvas_browsing_essential \
+mln_canvas_browsing_snake_vert \
+mln_canvas_browsing_snake_fwd \
+mln_canvas_browsing_backdiagonal2d \
+mln_canvas_browsing_snake_generic \
+mln_canvas_browsing_all \
+mln_canvas_browsing_hyper_directional \
+mln_canvas_browsing_depth_first_search \
+mln_canvas_browsing_dir_struct_elt_incr_update \
+mln_canvas_browsing_diagonal2d \
+mln_estim_mean \
+mln_estim_essential \
+mln_estim_all \
+mln_estim_min_max \
+mln_estim_sum \
+mln_arith_essential \
+mln_arith_includes \
+mln_arith_all \
+mln_arith_plus \
+mln_arith_min \
+mln_arith_minus \
+mln_arith_revert \
+mln_arith_times \
+mln_arith_diff_abs \
+mln_algebra_vec \
+mln_algebra_h_mat \
+mln_algebra_quat \
+mln_algebra_essential \
+mln_algebra_all \
+mln_algebra_h_vec \
+mln_algebra_mat \
+mln_display_essential \
+mln_display_all \
+mln_test_positive \
+mln_test_essential \
+mln_test_all \
+mln_test_predicate \
+mln_border_mirror \
mln_border_adjust \
-mln_border_duplicate \
mln_border_find \
-mln_border_thickness \
-mln_border_all \
-mln_border_mirror \
-mln_border_get \
+mln_border_essential \
mln_border_equalize \
-mln_border_resize \
mln_border_fill \
-mln_border_essential \
-mln_subsampling_gaussian_subsampling \
-mln_subsampling_all \
-mln_subsampling_subsampling \
-mln_subsampling_essential
-
-mln_histo_all_SOURCES = mln_histo_all.cc
-mln_histo_data_SOURCES = mln_histo_data.cc
-mln_histo_compute_SOURCES = mln_histo_compute.cc
-mln_histo_essential_SOURCES = mln_histo_essential.cc
-mln_geom_pmin_pmax_SOURCES = mln_geom_pmin_pmax.cc
-mln_geom_max_row_SOURCES = mln_geom_max_row.cc
-mln_geom_chamfer_SOURCES = mln_geom_chamfer.cc
-mln_geom_min_row_SOURCES = mln_geom_min_row.cc
-mln_geom_seeds2tiling_SOURCES = mln_geom_seeds2tiling.cc
-mln_geom_size1d_SOURCES = mln_geom_size1d.cc
-mln_geom_all_SOURCES = mln_geom_all.cc
-mln_geom_size2d_SOURCES = mln_geom_size2d.cc
-mln_geom_max_ind_SOURCES = mln_geom_max_ind.cc
-mln_geom_max_col_SOURCES = mln_geom_max_col.cc
-mln_geom_size3d_SOURCES = mln_geom_size3d.cc
-mln_geom_ninds_SOURCES = mln_geom_ninds.cc
-mln_geom_nslis_SOURCES = mln_geom_nslis.cc
-mln_geom_delta_SOURCES = mln_geom_delta.cc
-mln_geom_resize_SOURCES = mln_geom_resize.cc
-mln_geom_nsites_SOURCES = mln_geom_nsites.cc
-mln_geom_min_col_SOURCES = mln_geom_min_col.cc
-mln_geom_complex_geometry_SOURCES = mln_geom_complex_geometry.cc
-mln_geom_ncols_SOURCES = mln_geom_ncols.cc
-mln_geom_nrows_SOURCES = mln_geom_nrows.cc
-mln_geom_min_ind_SOURCES = mln_geom_min_ind.cc
-mln_geom_bbox_SOURCES = mln_geom_bbox.cc
-mln_geom_seeds2tiling_roundness_SOURCES = mln_geom_seeds2tiling_roundness.cc
-mln_geom_min_sli_SOURCES = mln_geom_min_sli.cc
-mln_geom_essential_SOURCES = mln_geom_essential.cc
-mln_geom_max_sli_SOURCES = mln_geom_max_sli.cc
-mln_draw_box_SOURCES = mln_draw_box.cc
-mln_draw_all_SOURCES = mln_draw_all.cc
-mln_draw_plot_SOURCES = mln_draw_plot.cc
-mln_draw_line_SOURCES = mln_draw_line.cc
-mln_draw_essential_SOURCES = mln_draw_essential.cc
-mln_pw_image_SOURCES = mln_pw_image.cc
-mln_pw_all_SOURCES = mln_pw_all.cc
-mln_pw_value_SOURCES = mln_pw_value.cc
-mln_pw_cst_SOURCES = mln_pw_cst.cc
-mln_pw_var_SOURCES = mln_pw_var.cc
-mln_pw_essential_SOURCES = mln_pw_essential.cc
-mln_literal_zero_SOURCES = mln_literal_zero.cc
-mln_literal_ops_SOURCES = mln_literal_ops.cc
-mln_literal_origin_SOURCES = mln_literal_origin.cc
-mln_literal_grays_SOURCES = mln_literal_grays.cc
-mln_literal_all_SOURCES = mln_literal_all.cc
-mln_literal_colors_SOURCES = mln_literal_colors.cc
-mln_literal_black_SOURCES = mln_literal_black.cc
-mln_literal_one_SOURCES = mln_literal_one.cc
-mln_literal_white_SOURCES = mln_literal_white.cc
-mln_literal_essential_SOURCES = mln_literal_essential.cc
-mln_registration_get_rtransf_SOURCES = mln_registration_get_rtransf.cc
-mln_registration_internal_rms_SOURCES = mln_registration_internal_rms.cc
-mln_registration_get_rot_SOURCES = mln_registration_get_rot.cc
-mln_registration_all_SOURCES = mln_registration_all.cc
-mln_registration_multiscale_SOURCES = mln_registration_multiscale.cc
-mln_registration_registration_SOURCES = mln_registration_registration.cc
-mln_registration_essential_SOURCES = mln_registration_essential.cc
-mln_registration_icp_SOURCES = mln_registration_icp.cc
-mln_util_graph_SOURCES = mln_util_graph.cc
-mln_util_max_SOURCES = mln_util_max.cc
-mln_util_lazy_set_SOURCES = mln_util_lazy_set.cc
-mln_util_set_SOURCES = mln_util_set.cc
-mln_util_tree_to_image_SOURCES = mln_util_tree_to_image.cc
-mln_util_lemmings_SOURCES = mln_util_lemmings.cc
-mln_util_greater_point_SOURCES = mln_util_greater_point.cc
-mln_util_internal_graph_iter_base_SOURCES = mln_util_internal_graph_iter_base.cc
-mln_util_internal_boost_graph_access_SOURCES = mln_util_internal_boost_graph_access.cc
-mln_util_internal_boost_graph_structure_SOURCES = mln_util_internal_boost_graph_structure.cc
-mln_util_internal_graph_iter_SOURCES = mln_util_internal_graph_iter.cc
-mln_util_internal_graph_nbh_iter_SOURCES = mln_util_internal_graph_nbh_iter.cc
-mln_util_internal_vertex_impl_SOURCES = mln_util_internal_vertex_impl.cc
-mln_util_internal_edge_impl_SOURCES = mln_util_internal_edge_impl.cc
-mln_util_internal_graph_base_SOURCES = mln_util_internal_graph_base.cc
-mln_util_internal_boost_graph_SOURCES = mln_util_internal_boost_graph.cc
-mln_util_internal_graph_nbh_iter_base_SOURCES = mln_util_internal_graph_nbh_iter_base.cc
-mln_util_internal_boost_graph_property_SOURCES = mln_util_internal_boost_graph_property.cc
-mln_util_ord_pair_SOURCES = mln_util_ord_pair.cc
-mln_util_edge_SOURCES = mln_util_edge.cc
-mln_util_all_SOURCES = mln_util_all.cc
-mln_util_dindex_SOURCES = mln_util_dindex.cc
-mln_util_tracked_ptr_SOURCES = mln_util_tracked_ptr.cc
-mln_util_ignore_SOURCES = mln_util_ignore.cc
-mln_util_greater_psite_SOURCES = mln_util_greater_psite.cc
-mln_util_timer_SOURCES = mln_util_timer.cc
-mln_util_yes_SOURCES = mln_util_yes.cc
-mln_util_line_graph_SOURCES = mln_util_line_graph.cc
-mln_util_ord_SOURCES = mln_util_ord.cc
-mln_util_tree_fast_to_image_SOURCES = mln_util_tree_fast_to_image.cc
-mln_util_tree_SOURCES = mln_util_tree.cc
-mln_util_index_SOURCES = mln_util_index.cc
-mln_util_multi_site_SOURCES = mln_util_multi_site.cc
-mln_util_branch_iter_SOURCES = mln_util_branch_iter.cc
-mln_util_branch_iter_ind_SOURCES = mln_util_branch_iter_ind.cc
-mln_util_tree_to_fast_SOURCES = mln_util_tree_to_fast.cc
-mln_util_array_SOURCES = mln_util_array.cc
-mln_util_vertex_SOURCES = mln_util_vertex.cc
-mln_util_pix_SOURCES = mln_util_pix.cc
-mln_util_tree_fast_SOURCES = mln_util_tree_fast.cc
-mln_util_site_pair_SOURCES = mln_util_site_pair.cc
-mln_util_nil_SOURCES = mln_util_nil.cc
-mln_util_eat_SOURCES = mln_util_eat.cc
-mln_util_essential_SOURCES = mln_util_essential.cc
-mln_tag_init_SOURCES = mln_tag_init.cc
-mln_tag_skeleton_SOURCES = mln_tag_skeleton.cc
-mln_tag_all_SOURCES = mln_tag_all.cc
-mln_tag_essential_SOURCES = mln_tag_essential.cc
-mln_trace_entering_SOURCES = mln_trace_entering.cc
-mln_trace_all_SOURCES = mln_trace_all.cc
-mln_trace_warning_SOURCES = mln_trace_warning.cc
-mln_trace_exiting_SOURCES = mln_trace_exiting.cc
-mln_trace_resume_SOURCES = mln_trace_resume.cc
-mln_trace_quiet_SOURCES = mln_trace_quiet.cc
-mln_trace_stop_SOURCES = mln_trace_stop.cc
-mln_trace_essential_SOURCES = mln_trace_essential.cc
-mln_make_graph_SOURCES = mln_make_graph.cc
-mln_make_double_neighb2d_SOURCES = mln_make_double_neighb2d.cc
-mln_make_dpoint2d_h_SOURCES = mln_make_dpoint2d_h.cc
-mln_make_w_window_SOURCES = mln_make_w_window.cc
-mln_make_image_SOURCES = mln_make_image.cc
-mln_make_vec_SOURCES = mln_make_vec.cc
-mln_make_all_SOURCES = mln_make_all.cc
-mln_make_dual_neighb_SOURCES = mln_make_dual_neighb.cc
-mln_make_w_window3d_SOURCES = mln_make_w_window3d.cc
-mln_make_mat_SOURCES = mln_make_mat.cc
-mln_make_win_chamfer_SOURCES = mln_make_win_chamfer.cc
-mln_make_w_window2d_int_SOURCES = mln_make_w_window2d_int.cc
-mln_make_box1d_SOURCES = mln_make_box1d.cc
-mln_make_voronoi_SOURCES = mln_make_voronoi.cc
-mln_make_box2d_SOURCES = mln_make_box2d.cc
-mln_make_w_window2d_SOURCES = mln_make_w_window2d.cc
-mln_make_box3d_SOURCES = mln_make_box3d.cc
-mln_make_relabelfun_SOURCES = mln_make_relabelfun.cc
-mln_make_pixel_SOURCES = mln_make_pixel.cc
-mln_make_pix_SOURCES = mln_make_pix.cc
-mln_make_box2d_h_SOURCES = mln_make_box2d_h.cc
-mln_make_w_window1d_SOURCES = mln_make_w_window1d.cc
-mln_make_image2d_SOURCES = mln_make_image2d.cc
-mln_make_w_window_directional_SOURCES = mln_make_w_window_directional.cc
-mln_make_w_window3d_int_SOURCES = mln_make_w_window3d_int.cc
-mln_make_essential_SOURCES = mln_make_essential.cc
-mln_make_w_window1d_int_SOURCES = mln_make_w_window1d_int.cc
-mln_make_point2d_h_SOURCES = mln_make_point2d_h.cc
-mln_display_all_SOURCES = mln_display_all.cc
-mln_display_essential_SOURCES = mln_display_essential.cc
-mln_extension_adjust_SOURCES = mln_extension_adjust.cc
-mln_extension_duplicate_SOURCES = mln_extension_duplicate.cc
-mln_extension_adjust_duplicate_SOURCES = mln_extension_adjust_duplicate.cc
-mln_extension_all_SOURCES = mln_extension_all.cc
-mln_extension_adjust_fill_SOURCES = mln_extension_adjust_fill.cc
-mln_extension_fill_SOURCES = mln_extension_fill.cc
-mln_extension_essential_SOURCES = mln_extension_essential.cc
-mln_fun_p2b_chess_SOURCES = mln_fun_p2b_chess.cc
-mln_fun_p2b_all_SOURCES = mln_fun_p2b_all.cc
-mln_fun_p2b_has_SOURCES = mln_fun_p2b_has.cc
-mln_fun_p2b_big_chess_SOURCES = mln_fun_p2b_big_chess.cc
-mln_fun_p2b_essential_SOURCES = mln_fun_p2b_essential.cc
-mln_fun_p2p_mirror_SOURCES = mln_fun_p2p_mirror.cc
-mln_fun_x2p_closest_point_SOURCES = mln_fun_x2p_closest_point.cc
-mln_fun_x2p_all_SOURCES = mln_fun_x2p_all.cc
-mln_fun_x2p_essential_SOURCES = mln_fun_x2p_essential.cc
-mln_fun_ops_SOURCES = mln_fun_ops.cc
-mln_fun_c_SOURCES = mln_fun_c.cc
-mln_fun_vv2v_max_SOURCES = mln_fun_vv2v_max.cc
-mln_fun_vv2v_lor_SOURCES = mln_fun_vv2v_lor.cc
-mln_fun_vv2v_land_not_SOURCES = mln_fun_vv2v_land_not.cc
-mln_fun_vv2v_vec_SOURCES = mln_fun_vv2v_vec.cc
-mln_fun_vv2v_all_SOURCES = mln_fun_vv2v_all.cc
-mln_fun_vv2v_macros_SOURCES = mln_fun_vv2v_macros.cc
-mln_fun_vv2v_lxor_SOURCES = mln_fun_vv2v_lxor.cc
-mln_fun_vv2v_diff_abs_SOURCES = mln_fun_vv2v_diff_abs.cc
-mln_fun_vv2v_land_SOURCES = mln_fun_vv2v_land.cc
-mln_fun_vv2v_min_SOURCES = mln_fun_vv2v_min.cc
-mln_fun_vv2v_essential_SOURCES = mln_fun_vv2v_essential.cc
-mln_fun_internal_array_base_SOURCES = mln_fun_internal_array_base.cc
-mln_fun_internal_x2x_linear_impl_SOURCES = mln_fun_internal_x2x_linear_impl.cc
-mln_fun_internal_selector_SOURCES = mln_fun_internal_selector.cc
-mln_fun_p2v_ternary_SOURCES = mln_fun_p2v_ternary.cc
-mln_fun_p2v_iota_SOURCES = mln_fun_p2v_iota.cc
-mln_fun_p2v_elifs_SOURCES = mln_fun_p2v_elifs.cc
-mln_fun_p2v_all_SOURCES = mln_fun_p2v_all.cc
-mln_fun_p2v_essential_SOURCES = mln_fun_p2v_essential.cc
-mln_fun_all_SOURCES = mln_fun_all.cc
-mln_fun_v2b_lnot_SOURCES = mln_fun_v2b_lnot.cc
-mln_fun_v2b_all_SOURCES = mln_fun_v2b_all.cc
-mln_fun_v2b_threshold_SOURCES = mln_fun_v2b_threshold.cc
-mln_fun_v2b_essential_SOURCES = mln_fun_v2b_essential.cc
-mln_fun_v2v_norm_SOURCES = mln_fun_v2v_norm.cc
-mln_fun_v2v_linear_SOURCES = mln_fun_v2v_linear.cc
-mln_fun_v2v_id_SOURCES = mln_fun_v2v_id.cc
-mln_fun_v2v_saturate_SOURCES = mln_fun_v2v_saturate.cc
-mln_fun_v2v_inc_SOURCES = mln_fun_v2v_inc.cc
-mln_fun_v2v_all_SOURCES = mln_fun_v2v_all.cc
-mln_fun_v2v_dec_SOURCES = mln_fun_v2v_dec.cc
-mln_fun_v2v_abs_SOURCES = mln_fun_v2v_abs.cc
-mln_fun_v2v_cast_SOURCES = mln_fun_v2v_cast.cc
-mln_fun_v2v_rgb_to_hsi_SOURCES = mln_fun_v2v_rgb_to_hsi.cc
-mln_fun_v2v_enc_SOURCES = mln_fun_v2v_enc.cc
-mln_fun_v2v_convert_SOURCES = mln_fun_v2v_convert.cc
-mln_fun_v2v_essential_SOURCES = mln_fun_v2v_essential.cc
-mln_fun_cast_SOURCES = mln_fun_cast.cc
-mln_fun_i2v_all_SOURCES = mln_fun_i2v_all.cc
-mln_fun_i2v_array_SOURCES = mln_fun_i2v_array.cc
-mln_fun_i2v_all_to_SOURCES = mln_fun_i2v_all_to.cc
-mln_fun_i2v_essential_SOURCES = mln_fun_i2v_essential.cc
-mln_fun_l2l_relabel_SOURCES = mln_fun_l2l_relabel.cc
-mln_fun_l2l_all_SOURCES = mln_fun_l2l_all.cc
-mln_fun_l2l_essential_SOURCES = mln_fun_l2l_essential.cc
-mln_fun_x2x_composed_SOURCES = mln_fun_x2x_composed.cc
-mln_fun_x2x_all_SOURCES = mln_fun_x2x_all.cc
-mln_fun_x2x_translation_SOURCES = mln_fun_x2x_translation.cc
-mln_fun_x2x_rotation_SOURCES = mln_fun_x2x_rotation.cc
-mln_fun_x2x_essential_SOURCES = mln_fun_x2x_essential.cc
-mln_fun_x2v_linear_SOURCES = mln_fun_x2v_linear.cc
-mln_fun_x2v_bilinear_SOURCES = mln_fun_x2v_bilinear.cc
-mln_fun_x2v_all_SOURCES = mln_fun_x2v_all.cc
-mln_fun_x2v_l1_norm_SOURCES = mln_fun_x2v_l1_norm.cc
-mln_fun_x2v_nneighbor_SOURCES = mln_fun_x2v_nneighbor.cc
-mln_fun_x2v_essential_SOURCES = mln_fun_x2v_essential.cc
-mln_fun_essential_SOURCES = mln_fun_essential.cc
-mln_all_SOURCES = mln_all.cc
-mln_convert_to_p_set_SOURCES = mln_convert_to_p_set.cc
-mln_convert_to_SOURCES = mln_convert_to.cc
-mln_convert_to_upper_window_SOURCES = mln_convert_to_upper_window.cc
-mln_convert_to_image_SOURCES = mln_convert_to_image.cc
-mln_convert_to_fun_SOURCES = mln_convert_to_fun.cc
-mln_convert_all_SOURCES = mln_convert_all.cc
-mln_convert_to_window_SOURCES = mln_convert_to_window.cc
-mln_convert_from_to_SOURCES = mln_convert_from_to.cc
-mln_convert_impl_from_value_to_value_SOURCES = mln_convert_impl_from_value_to_value.cc
-mln_convert_impl_all_SOURCES = mln_convert_impl_all.cc
-mln_convert_impl_from_image_to_site_set_SOURCES = mln_convert_impl_from_image_to_site_set.cc
-mln_convert_to_dpoint_SOURCES = mln_convert_to_dpoint.cc
-mln_convert_to_p_array_SOURCES = mln_convert_to_p_array.cc
-mln_convert_to_rgb_SOURCES = mln_convert_to_rgb.cc
-mln_convert_essential_SOURCES = mln_convert_essential.cc
-mln_value_float01_f_SOURCES = mln_value_float01_f.cc
-mln_value_float01_16_SOURCES = mln_value_float01_16.cc
-mln_value_lut_vec_SOURCES = mln_value_lut_vec.cc
-mln_value_glf_SOURCES = mln_value_glf.cc
-mln_value_other_SOURCES = mln_value_other.cc
-mln_value_graylevel_f_SOURCES = mln_value_graylevel_f.cc
-mln_value_aliases_SOURCES = mln_value_aliases.cc
-mln_value_label_16_SOURCES = mln_value_label_16.cc
-mln_value_ops_SOURCES = mln_value_ops.cc
-mln_value_set_SOURCES = mln_value_set.cc
-mln_value_int_u_sat_SOURCES = mln_value_int_u_sat.cc
-mln_value_float01_8_SOURCES = mln_value_float01_8.cc
-mln_value_int_u8_SOURCES = mln_value_int_u8.cc
-mln_value_equiv_SOURCES = mln_value_equiv.cc
-mln_value_internal_integer_SOURCES = mln_value_internal_integer.cc
-mln_value_internal_gray_f_SOURCES = mln_value_internal_gray_f.cc
-mln_value_internal_all_SOURCES = mln_value_internal_all.cc
-mln_value_internal_value_like_SOURCES = mln_value_internal_value_like.cc
-mln_value_internal_iterable_set_SOURCES = mln_value_internal_iterable_set.cc
-mln_value_internal_encoding_SOURCES = mln_value_internal_encoding.cc
-mln_value_internal_convert_SOURCES = mln_value_internal_convert.cc
-mln_value_internal_gray__SOURCES = mln_value_internal_gray_.cc
-mln_value_internal_essential_SOURCES = mln_value_internal_essential.cc
-mln_value_proxy_SOURCES = mln_value_proxy.cc
-mln_value_viter_SOURCES = mln_value_viter.cc
-mln_value_graylevel_SOURCES = mln_value_graylevel.cc
-mln_value_all_SOURCES = mln_value_all.cc
-mln_value_super_value_SOURCES = mln_value_super_value.cc
-mln_value_builtin_symbolics_SOURCES = mln_value_builtin_symbolics.cc
-mln_value_builtin_ops_SOURCES = mln_value_builtin_ops.cc
-mln_value_builtin_all_SOURCES = mln_value_builtin_all.cc
-mln_value_builtin_promotions_SOURCES = mln_value_builtin_promotions.cc
-mln_value_builtin_integers_SOURCES = mln_value_builtin_integers.cc
-mln_value_builtin_floatings_SOURCES = mln_value_builtin_floatings.cc
-mln_value_builtin_essential_SOURCES = mln_value_builtin_essential.cc
-mln_value_sign_SOURCES = mln_value_sign.cc
-mln_value_hsi_SOURCES = mln_value_hsi.cc
-mln_value_interval_SOURCES = mln_value_interval.cc
-mln_value_gl16_SOURCES = mln_value_gl16.cc
-mln_value_scalar_SOURCES = mln_value_scalar.cc
-mln_value_float01_SOURCES = mln_value_float01.cc
-mln_value_cast_SOURCES = mln_value_cast.cc
-mln_value_int_u_SOURCES = mln_value_int_u.cc
-mln_value_int_s8_SOURCES = mln_value_int_s8.cc
-mln_value_int_s16_SOURCES = mln_value_int_s16.cc
-mln_value_int_u16_SOURCES = mln_value_int_u16.cc
-mln_value_label_SOURCES = mln_value_label.cc
-mln_value_rgb_SOURCES = mln_value_rgb.cc
-mln_value_stack_SOURCES = mln_value_stack.cc
-mln_value_concept_integer_SOURCES = mln_value_concept_integer.cc
-mln_value_concept_structured_SOURCES = mln_value_concept_structured.cc
-mln_value_concept_built_in_SOURCES = mln_value_concept_built_in.cc
-mln_value_concept_all_SOURCES = mln_value_concept_all.cc
-mln_value_concept_scalar_SOURCES = mln_value_concept_scalar.cc
-mln_value_concept_data_SOURCES = mln_value_concept_data.cc
-mln_value_concept_floating_SOURCES = mln_value_concept_floating.cc
-mln_value_concept_symbolic_SOURCES = mln_value_concept_symbolic.cc
-mln_value_concept_vectorial_SOURCES = mln_value_concept_vectorial.cc
-mln_value_concept_essential_SOURCES = mln_value_concept_essential.cc
-mln_value_int_s_SOURCES = mln_value_int_s.cc
-mln_value_rgb8_SOURCES = mln_value_rgb8.cc
-mln_value_int_s32_SOURCES = mln_value_int_s32.cc
-mln_value_float01__SOURCES = mln_value_float01_.cc
-mln_value_rgb16_SOURCES = mln_value_rgb16.cc
-mln_value_int_u32_SOURCES = mln_value_int_u32.cc
-mln_value_gl8_SOURCES = mln_value_gl8.cc
-mln_value_label_8_SOURCES = mln_value_label_8.cc
-mln_value_essential_SOURCES = mln_value_essential.cc
-mln_accu_tuple_SOURCES = mln_accu_tuple.cc
-mln_accu_min_h_SOURCES = mln_accu_min_h.cc
-mln_accu_max_SOURCES = mln_accu_max.cc
-mln_accu_lor_SOURCES = mln_accu_lor.cc
-mln_accu_rank_SOURCES = mln_accu_rank.cc
-mln_accu_transform_stop_SOURCES = mln_accu_transform_stop.cc
-mln_accu_maj_h_SOURCES = mln_accu_maj_h.cc
-mln_accu_min_max_SOURCES = mln_accu_min_max.cc
-mln_accu_internal_base_SOURCES = mln_accu_internal_base.cc
-mln_accu_transform_snake_SOURCES = mln_accu_transform_snake.cc
-mln_accu_rank_high_quant_SOURCES = mln_accu_rank_high_quant.cc
-mln_accu_count_SOURCES = mln_accu_count.cc
-mln_accu_median_h_SOURCES = mln_accu_median_h.cc
-mln_accu_all_SOURCES = mln_accu_all.cc
-mln_accu_land_basic_SOURCES = mln_accu_land_basic.cc
-mln_accu_p_SOURCES = mln_accu_p.cc
-mln_accu_transform_SOURCES = mln_accu_transform.cc
-mln_accu_median_alt_SOURCES = mln_accu_median_alt.cc
-mln_accu_volume_SOURCES = mln_accu_volume.cc
-mln_accu_sum_SOURCES = mln_accu_sum.cc
-mln_accu_height_SOURCES = mln_accu_height.cc
-mln_accu_land_SOURCES = mln_accu_land.cc
-mln_accu_take_SOURCES = mln_accu_take.cc
-mln_accu_histo_SOURCES = mln_accu_histo.cc
-mln_accu_pair_SOURCES = mln_accu_pair.cc
-mln_accu_count_adjacent_vertices_SOURCES = mln_accu_count_adjacent_vertices.cc
-mln_accu_convolve_SOURCES = mln_accu_convolve.cc
-mln_accu_v_SOURCES = mln_accu_v.cc
-mln_accu_rank_bool_SOURCES = mln_accu_rank_bool.cc
-mln_accu_min_SOURCES = mln_accu_min.cc
-mln_accu_transform_directional_SOURCES = mln_accu_transform_directional.cc
-mln_accu_compute_SOURCES = mln_accu_compute.cc
-mln_accu_mean_SOURCES = mln_accu_mean.cc
-mln_accu_lor_basic_SOURCES = mln_accu_lor_basic.cc
-mln_accu_transform_diagonal_SOURCES = mln_accu_transform_diagonal.cc
-mln_accu_nil_SOURCES = mln_accu_nil.cc
-mln_accu_bbox_SOURCES = mln_accu_bbox.cc
-mln_accu_center_SOURCES = mln_accu_center.cc
-mln_accu_line_SOURCES = mln_accu_line.cc
-mln_accu_essential_SOURCES = mln_accu_essential.cc
-mln_accu_max_h_SOURCES = mln_accu_max_h.cc
-mln_level_compare_SOURCES = mln_level_compare.cc
-mln_level_memset__SOURCES = mln_level_memset_.cc
-mln_level_transform_inplace_SOURCES = mln_level_transform_inplace.cc
-mln_level_replace_SOURCES = mln_level_replace.cc
-mln_level_memcpy__SOURCES = mln_level_memcpy_.cc
-mln_level_apply_SOURCES = mln_level_apply.cc
-mln_level_approx_all_SOURCES = mln_level_approx_all.cc
-mln_level_approx_essential_SOURCES = mln_level_approx_essential.cc
-mln_level_approx_median_SOURCES = mln_level_approx_median.cc
-mln_level_saturate_SOURCES = mln_level_saturate.cc
-mln_level_all_SOURCES = mln_level_all.cc
-mln_level_paste_SOURCES = mln_level_paste.cc
-mln_level_fast_median_SOURCES = mln_level_fast_median.cc
-mln_level_abs_SOURCES = mln_level_abs.cc
-mln_level_fill_with_image_SOURCES = mln_level_fill_with_image.cc
-mln_level_transform_SOURCES = mln_level_transform.cc
-mln_level_fill_with_value_SOURCES = mln_level_fill_with_value.cc
-mln_level_stretch_SOURCES = mln_level_stretch.cc
-mln_level_was_median_SOURCES = mln_level_was_median.cc
-mln_level_compute_SOURCES = mln_level_compute.cc
-mln_level_convert_SOURCES = mln_level_convert.cc
-mln_level_to_enc_SOURCES = mln_level_to_enc.cc
-mln_level_naive_all_SOURCES = mln_level_naive_all.cc
-mln_level_naive_essential_SOURCES = mln_level_naive_essential.cc
-mln_level_naive_median_SOURCES = mln_level_naive_median.cc
-mln_level_sort_psites_SOURCES = mln_level_sort_psites.cc
-mln_level_update_SOURCES = mln_level_update.cc
-mln_level_fill_SOURCES = mln_level_fill.cc
-mln_level_essential_SOURCES = mln_level_essential.cc
-mln_level_assign_SOURCES = mln_level_assign.cc
-mln_level_median_SOURCES = mln_level_median.cc
-mln_math_jacobi_SOURCES = mln_math_jacobi.cc
-mln_math_max_SOURCES = mln_math_max.cc
-mln_math_sqr_SOURCES = mln_math_sqr.cc
-mln_math_all_SOURCES = mln_math_all.cc
-mln_math_sign_SOURCES = mln_math_sign.cc
-mln_math_abs_SOURCES = mln_math_abs.cc
-mln_math_diff_abs_SOURCES = mln_math_diff_abs.cc
-mln_math_round_SOURCES = mln_math_round.cc
-mln_math_min_SOURCES = mln_math_min.cc
-mln_math_sqrt_SOURCES = mln_math_sqrt.cc
-mln_math_essential_SOURCES = mln_math_essential.cc
-mln_math_round_sat_SOURCES = mln_math_round_sat.cc
-mln_binarization_includes_SOURCES = mln_binarization_includes.cc
-mln_binarization_all_SOURCES = mln_binarization_all.cc
-mln_binarization_binarization_SOURCES = mln_binarization_binarization.cc
-mln_binarization_threshold_SOURCES = mln_binarization_threshold.cc
-mln_binarization_essential_SOURCES = mln_binarization_essential.cc
-mln_trait_site_set_props_SOURCES = mln_trait_site_set_props.cc
-mln_trait_site_set_print_SOURCES = mln_trait_site_set_print.cc
-mln_trait_promote_SOURCES = mln_trait_promote.cc
-mln_trait_solve_binary_SOURCES = mln_trait_solve_binary.cc
-mln_trait_value__SOURCES = mln_trait_value_.cc
-mln_trait_all_SOURCES = mln_trait_all.cc
-mln_trait_value_all_SOURCES = mln_trait_value_all.cc
-mln_trait_value_nature_SOURCES = mln_trait_value_nature.cc
-mln_trait_value_quant_SOURCES = mln_trait_value_quant.cc
-mln_trait_value_kind_SOURCES = mln_trait_value_kind.cc
-mln_trait_value_print_SOURCES = mln_trait_value_print.cc
-mln_trait_value_essential_SOURCES = mln_trait_value_essential.cc
-mln_trait_images_SOURCES = mln_trait_images.cc
-mln_trait_window_props_SOURCES = mln_trait_window_props.cc
-mln_trait_window_print_SOURCES = mln_trait_window_print.cc
-mln_trait_ch_value_SOURCES = mln_trait_ch_value.cc
-mln_trait_solve_SOURCES = mln_trait_solve.cc
-mln_trait_solve_unary_SOURCES = mln_trait_solve_unary.cc
-mln_trait_op_postdec_SOURCES = mln_trait_op_postdec.cc
-mln_trait_op_mod_SOURCES = mln_trait_op_mod.cc
-mln_trait_op_lor_SOURCES = mln_trait_op_lor.cc
-mln_trait_op_neq_SOURCES = mln_trait_op_neq.cc
-mln_trait_op_plus_SOURCES = mln_trait_op_plus.cc
-mln_trait_op_xor_SOURCES = mln_trait_op_xor.cc
-mln_trait_op_all_SOURCES = mln_trait_op_all.cc
-mln_trait_op_geq_SOURCES = mln_trait_op_geq.cc
-mln_trait_op_uminus_SOURCES = mln_trait_op_uminus.cc
-mln_trait_op_not_SOURCES = mln_trait_op_not.cc
-mln_trait_op_times_SOURCES = mln_trait_op_times.cc
-mln_trait_op_less_SOURCES = mln_trait_op_less.cc
-mln_trait_op_decl_SOURCES = mln_trait_op_decl.cc
-mln_trait_op_ord_SOURCES = mln_trait_op_ord.cc
-mln_trait_op_and_SOURCES = mln_trait_op_and.cc
-mln_trait_op_or_SOURCES = mln_trait_op_or.cc
-mln_trait_op_predec_SOURCES = mln_trait_op_predec.cc
-mln_trait_op_minus_SOURCES = mln_trait_op_minus.cc
-mln_trait_op_div_SOURCES = mln_trait_op_div.cc
-mln_trait_op_leq_SOURCES = mln_trait_op_leq.cc
-mln_trait_op_preinc_SOURCES = mln_trait_op_preinc.cc
-mln_trait_op_greater_SOURCES = mln_trait_op_greater.cc
-mln_trait_op_postinc_SOURCES = mln_trait_op_postinc.cc
-mln_trait_op_uplus_SOURCES = mln_trait_op_uplus.cc
-mln_trait_op_essential_SOURCES = mln_trait_op_essential.cc
-mln_trait_op_eq_SOURCES = mln_trait_op_eq.cc
-mln_trait_concrete_SOURCES = mln_trait_concrete.cc
-mln_trait_windows_SOURCES = mln_trait_windows.cc
-mln_trait_site_sets_SOURCES = mln_trait_site_sets.cc
-mln_trait_image_from_grid_SOURCES = mln_trait_image_from_grid.cc
-mln_trait_undef_SOURCES = mln_trait_undef.cc
-mln_trait_image_props_SOURCES = mln_trait_image_props.cc
-mln_trait_image_print_SOURCES = mln_trait_image_print.cc
-mln_trait_neighborhood_SOURCES = mln_trait_neighborhood.cc
-mln_trait_essential_SOURCES = mln_trait_essential.cc
-mln_canvas_labeling_SOURCES = mln_canvas_labeling.cc
-mln_canvas_browsing_hyper_directional_SOURCES = mln_canvas_browsing_hyper_directional.cc
-mln_canvas_browsing_snake_generic_SOURCES = mln_canvas_browsing_snake_generic.cc
-mln_canvas_browsing_backdiagonal2d_SOURCES = mln_canvas_browsing_backdiagonal2d.cc
-mln_canvas_browsing_snake_vert_SOURCES = mln_canvas_browsing_snake_vert.cc
-mln_canvas_browsing_snake_fwd_SOURCES = mln_canvas_browsing_snake_fwd.cc
-mln_canvas_browsing_all_SOURCES = mln_canvas_browsing_all.cc
-mln_canvas_browsing_diagonal2d_SOURCES = mln_canvas_browsing_diagonal2d.cc
-mln_canvas_browsing_fwd_SOURCES = mln_canvas_browsing_fwd.cc
-mln_canvas_browsing_dir_struct_elt_incr_update_SOURCES = mln_canvas_browsing_dir_struct_elt_incr_update.cc
-mln_canvas_browsing_depth_first_search_SOURCES = mln_canvas_browsing_depth_first_search.cc
-mln_canvas_browsing_directional_SOURCES = mln_canvas_browsing_directional.cc
-mln_canvas_browsing_essential_SOURCES = mln_canvas_browsing_essential.cc
-mln_canvas_chamfer_SOURCES = mln_canvas_chamfer.cc
-mln_canvas_distance_geodesic_SOURCES = mln_canvas_distance_geodesic.cc
-mln_canvas_all_SOURCES = mln_canvas_all.cc
-mln_canvas_distance_front_SOURCES = mln_canvas_distance_front.cc
-mln_canvas_morpho_all_SOURCES = mln_canvas_morpho_all.cc
-mln_canvas_morpho_algebraic_union_find_SOURCES = mln_canvas_morpho_algebraic_union_find.cc
-mln_canvas_morpho_essential_SOURCES = mln_canvas_morpho_essential.cc
-mln_canvas_essential_SOURCES = mln_canvas_essential.cc
-mln_metal_is_const_SOURCES = mln_metal_is_const.cc
-mln_metal_none_SOURCES = mln_metal_none.cc
-mln_metal_equal_SOURCES = mln_metal_equal.cc
-mln_metal_unptr_SOURCES = mln_metal_unptr.cc
-mln_metal_not_equal_SOURCES = mln_metal_not_equal.cc
-mln_metal_is_ref_SOURCES = mln_metal_is_ref.cc
-mln_metal_ret_SOURCES = mln_metal_ret.cc
-mln_metal_unqualif_SOURCES = mln_metal_unqualif.cc
-mln_metal_is_not_SOURCES = mln_metal_is_not.cc
-mln_metal_vec_SOURCES = mln_metal_vec.cc
-mln_metal_is_SOURCES = mln_metal_is.cc
-mln_metal_bool_SOURCES = mln_metal_bool.cc
-mln_metal_all_SOURCES = mln_metal_all.cc
-mln_metal_math_pow_SOURCES = mln_metal_math_pow.cc
-mln_metal_math_max_SOURCES = mln_metal_math_max.cc
-mln_metal_math_all_SOURCES = mln_metal_math_all.cc
-mln_metal_math_root_SOURCES = mln_metal_math_root.cc
-mln_metal_math_sqrt_SOURCES = mln_metal_math_sqrt.cc
-mln_metal_mat_SOURCES = mln_metal_mat.cc
-mln_metal_is_not_const_SOURCES = mln_metal_is_not_const.cc
-mln_metal_fix_return_SOURCES = mln_metal_fix_return.cc
-mln_metal_ands_SOURCES = mln_metal_ands.cc
-mln_metal_const_SOURCES = mln_metal_const.cc
-mln_metal_is_unqualif_SOURCES = mln_metal_is_unqualif.cc
-mln_metal_unconst_SOURCES = mln_metal_unconst.cc
-mln_metal_bexpr_SOURCES = mln_metal_bexpr.cc
-mln_metal_array2d_SOURCES = mln_metal_array2d.cc
-mln_metal_is_not_a_SOURCES = mln_metal_is_not_a.cc
-mln_metal_is_a_SOURCES = mln_metal_is_a.cc
-mln_metal_array1d_SOURCES = mln_metal_array1d.cc
-mln_metal_if_SOURCES = mln_metal_if.cc
-mln_metal_unref_SOURCES = mln_metal_unref.cc
-mln_metal_array_SOURCES = mln_metal_array.cc
-mln_metal_ref_SOURCES = mln_metal_ref.cc
-mln_metal_same_point_SOURCES = mln_metal_same_point.cc
-mln_metal_int_SOURCES = mln_metal_int.cc
-mln_metal_abort_SOURCES = mln_metal_abort.cc
-mln_metal_same_coord_SOURCES = mln_metal_same_coord.cc
-mln_metal_templated_by_SOURCES = mln_metal_templated_by.cc
-mln_metal_has_neighborhood_SOURCES = mln_metal_has_neighborhood.cc
-mln_metal_goes_to_SOURCES = mln_metal_goes_to.cc
-mln_metal_is_not_ref_SOURCES = mln_metal_is_not_ref.cc
-mln_metal_converts_to_SOURCES = mln_metal_converts_to.cc
-mln_metal_essential_SOURCES = mln_metal_essential.cc
-mln_metal_array3d_SOURCES = mln_metal_array3d.cc
-mln_algebra_vec_SOURCES = mln_algebra_vec.cc
-mln_algebra_all_SOURCES = mln_algebra_all.cc
-mln_algebra_h_vec_SOURCES = mln_algebra_h_vec.cc
-mln_algebra_mat_SOURCES = mln_algebra_mat.cc
-mln_algebra_h_mat_SOURCES = mln_algebra_h_mat.cc
-mln_algebra_quat_SOURCES = mln_algebra_quat.cc
-mln_algebra_essential_SOURCES = mln_algebra_essential.cc
-mln_linear_convolve_2x1d_SOURCES = mln_linear_convolve_2x1d.cc
-mln_linear_all_SOURCES = mln_linear_all.cc
-mln_linear_ch_convolve_SOURCES = mln_linear_ch_convolve.cc
-mln_linear_gaussian_SOURCES = mln_linear_gaussian.cc
-mln_linear_convolve_SOURCES = mln_linear_convolve.cc
-mln_linear_sobel_2d_SOURCES = mln_linear_sobel_2d.cc
-mln_linear_local_convolve_SOURCES = mln_linear_local_convolve.cc
-mln_linear_lap_SOURCES = mln_linear_lap.cc
-mln_linear_convolve_directional_SOURCES = mln_linear_convolve_directional.cc
-mln_linear_log_SOURCES = mln_linear_log.cc
-mln_linear_essential_SOURCES = mln_linear_essential.cc
-mln_morpho_thinning_SOURCES = mln_morpho_thinning.cc
-mln_morpho_meyer_wst_SOURCES = mln_morpho_meyer_wst.cc
-mln_morpho_opening_SOURCES = mln_morpho_opening.cc
-mln_morpho_includes_SOURCES = mln_morpho_includes.cc
-mln_morpho_elementary_opening_SOURCES = mln_morpho_elementary_opening.cc
-mln_morpho_elementary_gradient_internal_SOURCES = mln_morpho_elementary_gradient_internal.cc
-mln_morpho_elementary_dilation_SOURCES = mln_morpho_elementary_dilation.cc
-mln_morpho_elementary_laplacian_SOURCES = mln_morpho_elementary_laplacian.cc
-mln_morpho_elementary_all_SOURCES = mln_morpho_elementary_all.cc
-mln_morpho_elementary_gradient_external_SOURCES = mln_morpho_elementary_gradient_external.cc
-mln_morpho_elementary_like_ero_fun_SOURCES = mln_morpho_elementary_like_ero_fun.cc
-mln_morpho_elementary_gradient_SOURCES = mln_morpho_elementary_gradient.cc
-mln_morpho_elementary_like_ero_set_SOURCES = mln_morpho_elementary_like_ero_set.cc
-mln_morpho_elementary_closing_SOURCES = mln_morpho_elementary_closing.cc
-mln_morpho_elementary_top_hat_SOURCES = mln_morpho_elementary_top_hat.cc
-mln_morpho_elementary_erosion_SOURCES = mln_morpho_elementary_erosion.cc
-mln_morpho_elementary_essential_SOURCES = mln_morpho_elementary_essential.cc
-mln_morpho_thin_fit_SOURCES = mln_morpho_thin_fit.cc
-mln_morpho_skeleton_constrained_SOURCES = mln_morpho_skeleton_constrained.cc
-mln_morpho_complementation_SOURCES = mln_morpho_complementation.cc
-mln_morpho_line_gradient_SOURCES = mln_morpho_line_gradient.cc
-mln_morpho_hit_or_miss_SOURCES = mln_morpho_hit_or_miss.cc
-mln_morpho_closing_height_SOURCES = mln_morpho_closing_height.cc
-mln_morpho_plus_SOURCES = mln_morpho_plus.cc
-mln_morpho_general_SOURCES = mln_morpho_general.cc
-mln_morpho_internal_elementary_SOURCES = mln_morpho_internal_elementary.cc
-mln_morpho_contrast_SOURCES = mln_morpho_contrast.cc
-mln_morpho_opening_area_SOURCES = mln_morpho_opening_area.cc
-mln_morpho_opening_height_SOURCES = mln_morpho_opening_height.cc
-mln_morpho_thickening_SOURCES = mln_morpho_thickening.cc
-mln_morpho_dilation_SOURCES = mln_morpho_dilation.cc
-mln_morpho_laplacian_SOURCES = mln_morpho_laplacian.cc
-mln_morpho_all_SOURCES = mln_morpho_all.cc
-mln_morpho_opening_attribute_SOURCES = mln_morpho_opening_attribute.cc
-mln_morpho_opening_volume_SOURCES = mln_morpho_opening_volume.cc
-mln_morpho_closing_area_on_vertices_SOURCES = mln_morpho_closing_area_on_vertices.cc
-mln_morpho_closing_volume_SOURCES = mln_morpho_closing_volume.cc
-mln_morpho_minus_SOURCES = mln_morpho_minus.cc
-mln_morpho_gradient_SOURCES = mln_morpho_gradient.cc
-mln_morpho_tree_max_SOURCES = mln_morpho_tree_max.cc
-mln_morpho_tree_compute_parent_SOURCES = mln_morpho_tree_compute_parent.cc
-mln_morpho_tree_all_SOURCES = mln_morpho_tree_all.cc
-mln_morpho_tree_utils_SOURCES = mln_morpho_tree_utils.cc
-mln_morpho_tree_data_SOURCES = mln_morpho_tree_data.cc
-mln_morpho_tree_compute_attribute_image_SOURCES = mln_morpho_tree_compute_attribute_image.cc
-mln_morpho_opening_area_on_vertices_SOURCES = mln_morpho_opening_area_on_vertices.cc
-mln_morpho_min_SOURCES = mln_morpho_min.cc
-mln_morpho_closing_SOURCES = mln_morpho_closing.cc
-mln_morpho_top_hat_SOURCES = mln_morpho_top_hat.cc
-mln_morpho_erosion_SOURCES = mln_morpho_erosion.cc
-mln_morpho_Rd_SOURCES = mln_morpho_Rd.cc
-mln_morpho_closing_area_SOURCES = mln_morpho_closing_area.cc
-mln_morpho_thick_miss_SOURCES = mln_morpho_thick_miss.cc
-mln_morpho_closing_attribute_SOURCES = mln_morpho_closing_attribute.cc
-mln_morpho_rank_filter_SOURCES = mln_morpho_rank_filter.cc
-mln_morpho_essential_SOURCES = mln_morpho_essential.cc
-mln_topo_n_face_iter_SOURCES = mln_topo_n_face_iter.cc
-mln_topo_face_iter_SOURCES = mln_topo_face_iter.cc
-mln_topo_is_simple_2d_SOURCES = mln_topo_is_simple_2d.cc
-mln_topo_centered_iter_adapter_SOURCES = mln_topo_centered_iter_adapter.cc
-mln_topo_internal_complex_set_iterator_base_SOURCES = mln_topo_internal_complex_set_iterator_base.cc
-mln_topo_internal_complex_iterator_base_SOURCES = mln_topo_internal_complex_iterator_base.cc
-mln_topo_internal_complex_relative_iterator_base_SOURCES = mln_topo_internal_complex_relative_iterator_base.cc
-mln_topo_internal_complex_relative_iterator_sequence_SOURCES = mln_topo_internal_complex_relative_iterator_sequence.cc
-mln_topo_algebraic_n_face_SOURCES = mln_topo_algebraic_n_face.cc
-mln_topo_attic_faces_iter_SOURCES = mln_topo_attic_faces_iter.cc
-mln_topo_adj_lower_dim_connected_n_face_iter_SOURCES = mln_topo_adj_lower_dim_connected_n_face_iter.cc
-mln_topo_n_face_SOURCES = mln_topo_n_face.cc
-mln_topo_adj_lower_higher_face_iter_SOURCES = mln_topo_adj_lower_higher_face_iter.cc
-mln_topo_all_SOURCES = mln_topo_all.cc
-mln_topo_face_data_SOURCES = mln_topo_face_data.cc
-mln_topo_static_n_face_iter_SOURCES = mln_topo_static_n_face_iter.cc
-mln_topo_face_SOURCES = mln_topo_face.cc
-mln_topo_adj_m_face_iter_SOURCES = mln_topo_adj_m_face_iter.cc
-mln_topo_complex_SOURCES = mln_topo_complex.cc
-mln_topo_adj_higher_face_iter_SOURCES = mln_topo_adj_higher_face_iter.cc
-mln_topo_adj_lower_face_iter_SOURCES = mln_topo_adj_lower_face_iter.cc
-mln_topo_complex_iterators_SOURCES = mln_topo_complex_iterators.cc
-mln_topo_center_only_iter_SOURCES = mln_topo_center_only_iter.cc
-mln_topo_adj_higher_dim_connected_n_face_iter_SOURCES = mln_topo_adj_higher_dim_connected_n_face_iter.cc
-mln_topo_algebraic_face_SOURCES = mln_topo_algebraic_face.cc
-mln_topo_n_faces_set_SOURCES = mln_topo_n_faces_set.cc
-mln_topo_essential_SOURCES = mln_topo_essential.cc
-mln_essential_1d_SOURCES = mln_essential_1d.cc
-mln_essential_routine_SOURCES = mln_essential_routine.cc
-mln_essential_3d_SOURCES = mln_essential_3d.cc
-mln_essential_2d_SOURCES = mln_essential_2d.cc
-mln_win_inter_SOURCES = mln_win_inter.cc
-mln_win_backdiag2d_SOURCES = mln_win_backdiag2d.cc
-mln_win_segment1d_SOURCES = mln_win_segment1d.cc
+mln_border_resize \
+mln_border_all \
+mln_border_duplicate \
+mln_border_thickness \
+mln_border_get \
+mln_trace_exiting \
+mln_trace_entering \
+mln_trace_resume \
+mln_trace_stop \
+mln_trace_essential \
+mln_trace_quiet \
+mln_trace_all \
+mln_trace_warning \
+mln_debug_println_with_border \
+mln_debug_draw_graph \
+mln_debug_iota \
+mln_debug_colorize \
+mln_debug_essential \
+mln_debug_format \
+mln_debug_all \
+mln_debug_println \
+mln_debug_put_word \
+mln_morpho_thick_miss \
+mln_morpho_opening_volume \
+mln_morpho_gradient \
+mln_morpho_closing_area_on_vertices \
+mln_morpho_meyer_wst \
+mln_morpho_closing_area \
+mln_morpho_Rd \
+mln_morpho_complementation \
+mln_morpho_opening_area_on_vertices \
+mln_morpho_thinning \
+mln_morpho_contrast \
+mln_morpho_opening_height \
+mln_morpho_erosion \
+mln_morpho_essential \
+mln_morpho_elementary_gradient \
+mln_morpho_elementary_erosion \
+mln_morpho_elementary_essential \
+mln_morpho_elementary_all \
+mln_morpho_elementary_like_ero_fun \
+mln_morpho_elementary_dilation \
+mln_morpho_elementary_opening \
+mln_morpho_elementary_closing \
+mln_morpho_elementary_like_ero_set \
+mln_morpho_elementary_laplacian \
+mln_morpho_elementary_gradient_internal \
+mln_morpho_elementary_gradient_external \
+mln_morpho_elementary_top_hat \
+mln_morpho_includes \
+mln_morpho_thickening \
+mln_morpho_opening_attribute \
+mln_morpho_closing_height \
+mln_morpho_line_gradient \
+mln_morpho_thin_fit \
+mln_morpho_opening_area \
+mln_morpho_all \
+mln_morpho_hit_or_miss \
+mln_morpho_internal_elementary \
+mln_morpho_plus \
+mln_morpho_dilation \
+mln_morpho_closing_attribute \
+mln_morpho_opening \
+mln_morpho_min \
+mln_morpho_minus \
+mln_morpho_closing_volume \
+mln_morpho_general \
+mln_morpho_skeleton_constrained \
+mln_morpho_tree_max \
+mln_morpho_tree_data \
+mln_morpho_tree_compute_parent \
+mln_morpho_tree_utils \
+mln_morpho_tree_compute_attribute_image \
+mln_morpho_tree_all \
+mln_morpho_rank_filter \
+mln_morpho_closing \
+mln_morpho_laplacian \
+mln_morpho_top_hat \
+mln_accu_nil \
+mln_accu_transform_stop \
+mln_accu_max \
+mln_accu_max_h \
+mln_accu_histo \
+mln_accu_center \
+mln_accu_rank_bool \
+mln_accu_mean \
+mln_accu_median_alt \
+mln_accu_convolve \
+mln_accu_essential \
+mln_accu_min_h \
+mln_accu_compute \
+mln_accu_take \
+mln_accu_transform_directional \
+mln_accu_pair \
+mln_accu_land_basic \
+mln_accu_all \
+mln_accu_height \
+mln_accu_internal_base \
+mln_accu_transform_diagonal \
+mln_accu_v \
+mln_accu_count \
+mln_accu_volume \
+mln_accu_lor_basic \
+mln_accu_tuple \
+mln_accu_min \
+mln_accu_median_h \
+mln_accu_transform_snake \
+mln_accu_line \
+mln_accu_count_adjacent_vertices \
+mln_accu_transform \
+mln_accu_min_max \
+mln_accu_land \
+mln_accu_bbox \
+mln_accu_sum \
+mln_accu_lor \
+mln_accu_rank_high_quant \
+mln_accu_p \
+mln_accu_rank \
+mln_accu_maj_h \
+mln_registration_get_rtransf \
+mln_registration_icp \
+mln_registration_essential \
+mln_registration_multiscale \
+mln_registration_all \
+mln_registration_internal_rms \
+mln_registration_get_rot \
+mln_registration_registration \
+mln_all \
+mln_pw_value \
+mln_pw_cst \
+mln_pw_essential \
+mln_pw_image \
+mln_pw_var \
+mln_pw_all \
+mln_binarization_essential \
+mln_binarization_includes \
+mln_binarization_all \
+mln_binarization_binarization \
+mln_binarization_threshold \
+mln_linear_log \
+mln_linear_ch_convolve \
+mln_linear_sobel_2d \
+mln_linear_local_convolve \
+mln_linear_convolve \
+mln_linear_essential \
+mln_linear_lap \
+mln_linear_convolve_directional \
+mln_linear_convolve_2x1d \
+mln_linear_all \
+mln_linear_gaussian \
+mln_essential_1d \
+mln_essential_2d \
+mln_essential_routine \
+mln_essential_3d \
+mln_metal_vec \
+mln_metal_is_not_ref \
+mln_metal_unconst \
+mln_metal_array3d \
+mln_metal_abort \
+mln_metal_has_neighborhood \
+mln_metal_ref \
+mln_metal_is_const \
+mln_metal_same_point \
+mln_metal_int \
+mln_metal_is \
+mln_metal_essential \
+mln_metal_unref \
+mln_metal_is_a \
+mln_metal_not_equal \
+mln_metal_none \
+mln_metal_is_unqualif \
+mln_metal_is_not \
+mln_metal_unptr \
+mln_metal_array1d \
+mln_metal_if \
+mln_metal_is_ref \
+mln_metal_is_not_a \
+mln_metal_all \
+mln_metal_same_coord \
+mln_metal_ands \
+mln_metal_array2d \
+mln_metal_templated_by \
+mln_metal_ret \
+mln_metal_is_not_const \
+mln_metal_math_root \
+mln_metal_math_max \
+mln_metal_math_all \
+mln_metal_math_pow \
+mln_metal_math_sqrt \
+mln_metal_bexpr \
+mln_metal_bool \
+mln_metal_fix_return \
+mln_metal_converts_to \
+mln_metal_goes_to \
+mln_metal_equal \
+mln_metal_unqualif \
+mln_metal_mat \
+mln_metal_array \
+mln_metal_const \
+mln_set_sym_diff \
+mln_set_essential \
+mln_set_compute \
+mln_set_has \
+mln_set_inter \
+mln_set_all \
+mln_set_diff \
+mln_set_uni \
+mln_set_get \
+mln_convert_to_p_array \
+mln_convert_to_fun \
+mln_convert_to \
+mln_convert_to_image \
+mln_convert_to_p_set \
+mln_convert_impl_from_image_to_site_set \
+mln_convert_impl_all \
+mln_convert_impl_from_value_to_value \
+mln_convert_essential \
+mln_convert_all \
+mln_convert_to_upper_window \
+mln_convert_to_dpoint \
+mln_convert_to_rgb \
+mln_convert_from_to \
+mln_convert_to_window \
+mln_geom_nslis \
+mln_geom_size2d \
+mln_geom_max_row \
+mln_geom_size3d \
+mln_geom_seeds2tiling_roundness \
+mln_geom_delta \
+mln_geom_essential \
+mln_geom_max_ind \
+mln_geom_min_col \
+mln_geom_complex_geometry \
+mln_geom_nrows \
+mln_geom_seeds2tiling \
+mln_geom_min_sli \
+mln_geom_nsites \
+mln_geom_min_ind \
+mln_geom_ninds \
+mln_geom_resize \
+mln_geom_min_row \
+mln_geom_all \
+mln_geom_chamfer \
+mln_geom_ncols \
+mln_geom_pmin_pmax \
+mln_geom_size1d \
+mln_geom_max_sli \
+mln_geom_bbox \
+mln_geom_max_col \
+mln_literal_black \
+mln_literal_zero \
+mln_literal_essential \
+mln_literal_grays \
+mln_literal_ops \
+mln_literal_all \
+mln_literal_white \
+mln_literal_one \
+mln_literal_colors \
+mln_literal_origin \
+mln_level_compare \
+mln_level_saturate \
+mln_level_fill_with_image \
+mln_level_was_median \
+mln_level_convert \
+mln_level_sort_psites \
+mln_level_essential \
+mln_level_fill \
+mln_level_compute \
+mln_level_replace \
+mln_level_approx_essential \
+mln_level_approx_all \
+mln_level_approx_median \
+mln_level_stretch \
+mln_level_paste \
+mln_level_transform_inplace \
+mln_level_to_enc \
+mln_level_apply \
+mln_level_all \
+mln_level_update \
+mln_level_median \
+mln_level_memset_ \
+mln_level_assign \
+mln_level_memcpy_ \
+mln_level_fast_median \
+mln_level_transform \
+mln_level_abs \
+mln_level_naive_essential \
+mln_level_naive_all \
+mln_level_naive_median \
+mln_level_fill_with_value \
+mln_math_jacobi \
+mln_math_max \
+mln_math_round_sat \
+mln_math_round \
+mln_math_essential \
+mln_math_sqr \
+mln_math_all \
+mln_math_sign \
+mln_math_min \
+mln_math_abs \
+mln_math_diff_abs \
+mln_math_sqrt \
+mln_norm_l2 \
+mln_norm_linfty \
+mln_norm_essential \
+mln_norm_all \
+mln_norm_l1 \
+mln_logical_not \
+mln_logical_or \
+mln_logical_and \
+mln_logical_xor \
+mln_logical_essential \
+mln_logical_includes \
+mln_logical_all \
+mln_logical_and_not \
+mln_draw_essential \
+mln_draw_box \
+mln_draw_all \
+mln_draw_plot \
+mln_draw_line \
+mln_value_int_s16 \
+mln_value_cast \
+mln_value_builtin_floatings \
+mln_value_builtin_promotions \
+mln_value_builtin_integers \
+mln_value_builtin_essential \
+mln_value_builtin_ops \
+mln_value_builtin_all \
+mln_value_builtin_symbolics \
+mln_value_label_8 \
+mln_value_int_s \
+mln_value_rgb \
+mln_value_viter \
+mln_value_lut_vec \
+mln_value_set \
+mln_value_hsi \
+mln_value_int_u16 \
+mln_value_glf \
+mln_value_stack \
+mln_value_gl8 \
+mln_value_essential \
+mln_value_graylevel_f \
+mln_value_super_value \
+mln_value_equiv \
+mln_value_rgb16 \
+mln_value_float01_16 \
+mln_value_rgb8 \
+mln_value_int_s32 \
+mln_value_int_s8 \
+mln_value_int_u8 \
+mln_value_int_u32 \
+mln_value_float01 \
+mln_value_int_u \
+mln_value_ops \
+mln_value_interval \
+mln_value_int_u_sat \
+mln_value_all \
+mln_value_internal_encoding \
+mln_value_internal_convert \
+mln_value_internal_gray_f \
+mln_value_internal_essential \
+mln_value_internal_gray_ \
+mln_value_internal_integer \
+mln_value_internal_value_like \
+mln_value_internal_all \
+mln_value_internal_iterable_set \
+mln_value_proxy \
+mln_value_sign \
+mln_value_gl16 \
+mln_value_aliases \
+mln_value_float01_f \
+mln_value_float01_8 \
+mln_value_concept_structured \
+mln_value_concept_vectorial \
+mln_value_concept_data \
+mln_value_concept_built_in \
+mln_value_concept_essential \
+mln_value_concept_integer \
+mln_value_concept_floating \
+mln_value_concept_all \
+mln_value_concept_scalar \
+mln_value_concept_symbolic \
+mln_value_label_16 \
+mln_value_label \
+mln_value_float01_ \
+mln_value_other \
+mln_value_scalar \
+mln_value_graylevel \
+mln_tag_skeleton \
+mln_tag_init \
+mln_tag_essential \
+mln_tag_all \
+mln_labeling_regional_maxima \
+mln_labeling_background \
+mln_labeling_level \
+mln_labeling_flat_zones \
+mln_labeling_regional_minima \
+mln_labeling_essential \
+mln_labeling_compute \
+mln_labeling_blobs \
+mln_labeling_all \
+mln_labeling_foreground \
+mln_labeling_relabel
+
+mln_util_nil_SOURCES = mln_util_nil.cc
+mln_util_ord_pair_SOURCES = mln_util_ord_pair.cc
+mln_util_ord_SOURCES = mln_util_ord.cc
+mln_util_max_SOURCES = mln_util_max.cc
+mln_util_eat_SOURCES = mln_util_eat.cc
+mln_util_tree_SOURCES = mln_util_tree.cc
+mln_util_tree_fast_to_image_SOURCES = mln_util_tree_fast_to_image.cc
+mln_util_tracked_ptr_SOURCES = mln_util_tracked_ptr.cc
+mln_util_dindex_SOURCES = mln_util_dindex.cc
+mln_util_site_pair_SOURCES = mln_util_site_pair.cc
+mln_util_set_SOURCES = mln_util_set.cc
+mln_util_greater_point_SOURCES = mln_util_greater_point.cc
+mln_util_greater_psite_SOURCES = mln_util_greater_psite.cc
+mln_util_ignore_SOURCES = mln_util_ignore.cc
+mln_util_pix_SOURCES = mln_util_pix.cc
+mln_util_lazy_set_SOURCES = mln_util_lazy_set.cc
+mln_util_essential_SOURCES = mln_util_essential.cc
+mln_util_branch_iter_SOURCES = mln_util_branch_iter.cc
+mln_util_graph_SOURCES = mln_util_graph.cc
+mln_util_index_SOURCES = mln_util_index.cc
+mln_util_tree_to_fast_SOURCES = mln_util_tree_to_fast.cc
+mln_util_line_graph_SOURCES = mln_util_line_graph.cc
+mln_util_lemmings_SOURCES = mln_util_lemmings.cc
+mln_util_all_SOURCES = mln_util_all.cc
+mln_util_internal_boost_graph_property_SOURCES = mln_util_internal_boost_graph_property.cc
+mln_util_internal_graph_iter_base_SOURCES = mln_util_internal_graph_iter_base.cc
+mln_util_internal_boost_graph_SOURCES = mln_util_internal_boost_graph.cc
+mln_util_internal_boost_graph_structure_SOURCES = mln_util_internal_boost_graph_structure.cc
+mln_util_internal_boost_graph_access_SOURCES = mln_util_internal_boost_graph_access.cc
+mln_util_internal_graph_base_SOURCES = mln_util_internal_graph_base.cc
+mln_util_internal_vertex_impl_SOURCES = mln_util_internal_vertex_impl.cc
+mln_util_internal_graph_nbh_iter_SOURCES = mln_util_internal_graph_nbh_iter.cc
+mln_util_internal_graph_nbh_iter_base_SOURCES = mln_util_internal_graph_nbh_iter_base.cc
+mln_util_internal_edge_impl_SOURCES = mln_util_internal_edge_impl.cc
+mln_util_internal_graph_iter_SOURCES = mln_util_internal_graph_iter.cc
+mln_util_yes_SOURCES = mln_util_yes.cc
+mln_util_multi_site_SOURCES = mln_util_multi_site.cc
+mln_util_timer_SOURCES = mln_util_timer.cc
+mln_util_edge_SOURCES = mln_util_edge.cc
+mln_util_tree_fast_SOURCES = mln_util_tree_fast.cc
+mln_util_branch_iter_ind_SOURCES = mln_util_branch_iter_ind.cc
+mln_util_tree_to_image_SOURCES = mln_util_tree_to_image.cc
+mln_util_vertex_SOURCES = mln_util_vertex.cc
+mln_util_array_SOURCES = mln_util_array.cc
+mln_fun_c_SOURCES = mln_fun_c.cc
+mln_fun_cast_SOURCES = mln_fun_cast.cc
+mln_fun_x2p_closest_point_SOURCES = mln_fun_x2p_closest_point.cc
+mln_fun_x2p_essential_SOURCES = mln_fun_x2p_essential.cc
+mln_fun_x2p_all_SOURCES = mln_fun_x2p_all.cc
+mln_fun_p2v_elifs_SOURCES = mln_fun_p2v_elifs.cc
+mln_fun_p2v_iota_SOURCES = mln_fun_p2v_iota.cc
+mln_fun_p2v_essential_SOURCES = mln_fun_p2v_essential.cc
+mln_fun_p2v_all_SOURCES = mln_fun_p2v_all.cc
+mln_fun_p2v_ternary_SOURCES = mln_fun_p2v_ternary.cc
+mln_fun_vv2v_vec_SOURCES = mln_fun_vv2v_vec.cc
+mln_fun_vv2v_max_SOURCES = mln_fun_vv2v_max.cc
+mln_fun_vv2v_lxor_SOURCES = mln_fun_vv2v_lxor.cc
+mln_fun_vv2v_essential_SOURCES = mln_fun_vv2v_essential.cc
+mln_fun_vv2v_land_not_SOURCES = mln_fun_vv2v_land_not.cc
+mln_fun_vv2v_macros_SOURCES = mln_fun_vv2v_macros.cc
+mln_fun_vv2v_all_SOURCES = mln_fun_vv2v_all.cc
+mln_fun_vv2v_min_SOURCES = mln_fun_vv2v_min.cc
+mln_fun_vv2v_diff_abs_SOURCES = mln_fun_vv2v_diff_abs.cc
+mln_fun_vv2v_land_SOURCES = mln_fun_vv2v_land.cc
+mln_fun_vv2v_lor_SOURCES = mln_fun_vv2v_lor.cc
+mln_fun_x2x_composed_SOURCES = mln_fun_x2x_composed.cc
+mln_fun_x2x_essential_SOURCES = mln_fun_x2x_essential.cc
+mln_fun_x2x_rotation_SOURCES = mln_fun_x2x_rotation.cc
+mln_fun_x2x_all_SOURCES = mln_fun_x2x_all.cc
+mln_fun_x2x_translation_SOURCES = mln_fun_x2x_translation.cc
+mln_fun_essential_SOURCES = mln_fun_essential.cc
+mln_fun_v2v_rgb_to_hsi_SOURCES = mln_fun_v2v_rgb_to_hsi.cc
+mln_fun_v2v_enc_SOURCES = mln_fun_v2v_enc.cc
+mln_fun_v2v_cast_SOURCES = mln_fun_v2v_cast.cc
+mln_fun_v2v_saturate_SOURCES = mln_fun_v2v_saturate.cc
+mln_fun_v2v_norm_SOURCES = mln_fun_v2v_norm.cc
+mln_fun_v2v_convert_SOURCES = mln_fun_v2v_convert.cc
+mln_fun_v2v_id_SOURCES = mln_fun_v2v_id.cc
+mln_fun_v2v_essential_SOURCES = mln_fun_v2v_essential.cc
+mln_fun_v2v_linear_SOURCES = mln_fun_v2v_linear.cc
+mln_fun_v2v_all_SOURCES = mln_fun_v2v_all.cc
+mln_fun_v2v_abs_SOURCES = mln_fun_v2v_abs.cc
+mln_fun_v2v_dec_SOURCES = mln_fun_v2v_dec.cc
+mln_fun_v2v_inc_SOURCES = mln_fun_v2v_inc.cc
+mln_fun_i2v_essential_SOURCES = mln_fun_i2v_essential.cc
+mln_fun_i2v_all_SOURCES = mln_fun_i2v_all.cc
+mln_fun_i2v_all_to_SOURCES = mln_fun_i2v_all_to.cc
+mln_fun_i2v_array_SOURCES = mln_fun_i2v_array.cc
+mln_fun_ops_SOURCES = mln_fun_ops.cc
+mln_fun_all_SOURCES = mln_fun_all.cc
+mln_fun_v2b_essential_SOURCES = mln_fun_v2b_essential.cc
+mln_fun_v2b_lnot_SOURCES = mln_fun_v2b_lnot.cc
+mln_fun_v2b_all_SOURCES = mln_fun_v2b_all.cc
+mln_fun_v2b_threshold_SOURCES = mln_fun_v2b_threshold.cc
+mln_fun_internal_selector_SOURCES = mln_fun_internal_selector.cc
+mln_fun_internal_array_base_SOURCES = mln_fun_internal_array_base.cc
+mln_fun_internal_x2x_linear_impl_SOURCES = mln_fun_internal_x2x_linear_impl.cc
+mln_fun_l2l_essential_SOURCES = mln_fun_l2l_essential.cc
+mln_fun_l2l_all_SOURCES = mln_fun_l2l_all.cc
+mln_fun_l2l_relabel_SOURCES = mln_fun_l2l_relabel.cc
+mln_fun_x2v_essential_SOURCES = mln_fun_x2v_essential.cc
+mln_fun_x2v_linear_SOURCES = mln_fun_x2v_linear.cc
+mln_fun_x2v_all_SOURCES = mln_fun_x2v_all.cc
+mln_fun_x2v_bilinear_SOURCES = mln_fun_x2v_bilinear.cc
+mln_fun_x2v_l1_norm_SOURCES = mln_fun_x2v_l1_norm.cc
+mln_fun_x2v_nneighbor_SOURCES = mln_fun_x2v_nneighbor.cc
+mln_fun_p2p_mirror_SOURCES = mln_fun_p2p_mirror.cc
+mln_fun_p2b_essential_SOURCES = mln_fun_p2b_essential.cc
+mln_fun_p2b_has_SOURCES = mln_fun_p2b_has.cc
+mln_fun_p2b_big_chess_SOURCES = mln_fun_p2b_big_chess.cc
+mln_fun_p2b_all_SOURCES = mln_fun_p2b_all.cc
+mln_fun_p2b_chess_SOURCES = mln_fun_p2b_chess.cc
+mln_extension_adjust_SOURCES = mln_extension_adjust.cc
+mln_extension_essential_SOURCES = mln_extension_essential.cc
+mln_extension_fill_SOURCES = mln_extension_fill.cc
+mln_extension_adjust_duplicate_SOURCES = mln_extension_adjust_duplicate.cc
+mln_extension_adjust_fill_SOURCES = mln_extension_adjust_fill.cc
+mln_extension_all_SOURCES = mln_extension_all.cc
+mln_extension_duplicate_SOURCES = mln_extension_duplicate.cc
+mln_histo_data_SOURCES = mln_histo_data.cc
+mln_histo_essential_SOURCES = mln_histo_essential.cc
+mln_histo_compute_SOURCES = mln_histo_compute.cc
+mln_histo_all_SOURCES = mln_histo_all.cc
+mln_transform_distance_geodesic_SOURCES = mln_transform_distance_geodesic.cc
+mln_transform_essential_SOURCES = mln_transform_essential.cc
+mln_transform_influence_zone_geodesic_SOURCES = mln_transform_influence_zone_geodesic.cc
+mln_transform_distance_front_SOURCES = mln_transform_distance_front.cc
+mln_transform_all_SOURCES = mln_transform_all.cc
+mln_transform_internal_distance_functor_SOURCES = mln_transform_internal_distance_functor.cc
+mln_transform_internal_all_SOURCES = mln_transform_internal_all.cc
+mln_transform_internal_influence_zone_functor_SOURCES = mln_transform_internal_influence_zone_functor.cc
+mln_transform_influence_zone_front_SOURCES = mln_transform_influence_zone_front.cc
+mln_trait_windows_SOURCES = mln_trait_windows.cc
+mln_trait_images_SOURCES = mln_trait_images.cc
+mln_trait_solve_SOURCES = mln_trait_solve.cc
+mln_trait_window_print_SOURCES = mln_trait_window_print.cc
+mln_trait_window_props_SOURCES = mln_trait_window_props.cc
+mln_trait_image_from_grid_SOURCES = mln_trait_image_from_grid.cc
+mln_trait_site_sets_SOURCES = mln_trait_site_sets.cc
+mln_trait_solve_binary_SOURCES = mln_trait_solve_binary.cc
+mln_trait_value__SOURCES = mln_trait_value_.cc
+mln_trait_promote_SOURCES = mln_trait_promote.cc
+mln_trait_essential_SOURCES = mln_trait_essential.cc
+mln_trait_concrete_SOURCES = mln_trait_concrete.cc
+mln_trait_op_ord_SOURCES = mln_trait_op_ord.cc
+mln_trait_op_div_SOURCES = mln_trait_op_div.cc
+mln_trait_op_mod_SOURCES = mln_trait_op_mod.cc
+mln_trait_op_not_SOURCES = mln_trait_op_not.cc
+mln_trait_op_or_SOURCES = mln_trait_op_or.cc
+mln_trait_op_and_SOURCES = mln_trait_op_and.cc
+mln_trait_op_xor_SOURCES = mln_trait_op_xor.cc
+mln_trait_op_essential_SOURCES = mln_trait_op_essential.cc
+mln_trait_op_preinc_SOURCES = mln_trait_op_preinc.cc
+mln_trait_op_greater_SOURCES = mln_trait_op_greater.cc
+mln_trait_op_predec_SOURCES = mln_trait_op_predec.cc
+mln_trait_op_neq_SOURCES = mln_trait_op_neq.cc
+mln_trait_op_postinc_SOURCES = mln_trait_op_postinc.cc
+mln_trait_op_uplus_SOURCES = mln_trait_op_uplus.cc
+mln_trait_op_geq_SOURCES = mln_trait_op_geq.cc
+mln_trait_op_uminus_SOURCES = mln_trait_op_uminus.cc
+mln_trait_op_all_SOURCES = mln_trait_op_all.cc
+mln_trait_op_plus_SOURCES = mln_trait_op_plus.cc
+mln_trait_op_eq_SOURCES = mln_trait_op_eq.cc
+mln_trait_op_leq_SOURCES = mln_trait_op_leq.cc
+mln_trait_op_less_SOURCES = mln_trait_op_less.cc
+mln_trait_op_postdec_SOURCES = mln_trait_op_postdec.cc
+mln_trait_op_minus_SOURCES = mln_trait_op_minus.cc
+mln_trait_op_times_SOURCES = mln_trait_op_times.cc
+mln_trait_op_decl_SOURCES = mln_trait_op_decl.cc
+mln_trait_op_lor_SOURCES = mln_trait_op_lor.cc
+mln_trait_all_SOURCES = mln_trait_all.cc
+mln_trait_undef_SOURCES = mln_trait_undef.cc
+mln_trait_image_print_SOURCES = mln_trait_image_print.cc
+mln_trait_image_props_SOURCES = mln_trait_image_props.cc
+mln_trait_solve_unary_SOURCES = mln_trait_solve_unary.cc
+mln_trait_site_set_print_SOURCES = mln_trait_site_set_print.cc
+mln_trait_site_set_props_SOURCES = mln_trait_site_set_props.cc
+mln_trait_neighborhood_SOURCES = mln_trait_neighborhood.cc
+mln_trait_ch_value_SOURCES = mln_trait_ch_value.cc
+mln_trait_value_print_SOURCES = mln_trait_value_print.cc
+mln_trait_value_nature_SOURCES = mln_trait_value_nature.cc
+mln_trait_value_kind_SOURCES = mln_trait_value_kind.cc
+mln_trait_value_quant_SOURCES = mln_trait_value_quant.cc
+mln_trait_value_essential_SOURCES = mln_trait_value_essential.cc
+mln_trait_value_all_SOURCES = mln_trait_value_all.cc
+mln_win_disk2d_SOURCES = mln_win_disk2d.cc
mln_win_cuboid3d_SOURCES = mln_win_cuboid3d.cc
-mln_win_vline2d_SOURCES = mln_win_vline2d.cc
+mln_win_segment1d_SOURCES = mln_win_segment1d.cc
mln_win_octagon2d_SOURCES = mln_win_octagon2d.cc
-mln_win_all_SOURCES = mln_win_all.cc
-mln_win_multiple_size_SOURCES = mln_win_multiple_size.cc
-mln_win_cube3d_SOURCES = mln_win_cube3d.cc
+mln_win_backdiag2d_SOURCES = mln_win_backdiag2d.cc
+mln_win_diag2d_SOURCES = mln_win_diag2d.cc
+mln_win_vline2d_SOURCES = mln_win_vline2d.cc
+mln_win_essential_SOURCES = mln_win_essential.cc
mln_win_shift_SOURCES = mln_win_shift.cc
mln_win_sym_SOURCES = mln_win_sym.cc
+mln_win_hline2d_SOURCES = mln_win_hline2d.cc
+mln_win_inter_SOURCES = mln_win_inter.cc
+mln_win_all_SOURCES = mln_win_all.cc
mln_win_diff_SOURCES = mln_win_diff.cc
-mln_win_multiple_SOURCES = mln_win_multiple.cc
-mln_win_diag2d_SOURCES = mln_win_diag2d.cc
-mln_win_disk2d_SOURCES = mln_win_disk2d.cc
mln_win_rectangle2d_SOURCES = mln_win_rectangle2d.cc
-mln_win_hline2d_SOURCES = mln_win_hline2d.cc
+mln_win_multiple_SOURCES = mln_win_multiple.cc
mln_win_line_SOURCES = mln_win_line.cc
-mln_win_essential_SOURCES = mln_win_essential.cc
-mln_core_clock_neighb_SOURCES = mln_core_clock_neighb.cc
-mln_core_pixter2d_SOURCES = mln_core_pixter2d.cc
-mln_core_def_low_quant_nbits_SOURCES = mln_core_def_low_quant_nbits.cc
-mln_core_def_all_SOURCES = mln_core_def_all.cc
-mln_core_def_coordf_SOURCES = mln_core_def_coordf.cc
-mln_core_def_coord_SOURCES = mln_core_def_coord.cc
-mln_core_def_essential_SOURCES = mln_core_def_essential.cc
-mln_core_site_set_box_SOURCES = mln_core_site_set_box.cc
-mln_core_site_set_p_vertices_SOURCES = mln_core_site_set_p_vertices.cc
-mln_core_site_set_p_vaccess_SOURCES = mln_core_site_set_p_vaccess.cc
-mln_core_site_set_p_if_piter_SOURCES = mln_core_site_set_p_if_piter.cc
-mln_core_site_set_p_run_piter_SOURCES = mln_core_site_set_p_run_piter.cc
-mln_core_site_set_p_key_SOURCES = mln_core_site_set_p_key.cc
-mln_core_site_set_p_double_SOURCES = mln_core_site_set_p_double.cc
-mln_core_site_set_p_complex_piter_SOURCES = mln_core_site_set_p_complex_piter.cc
-mln_core_site_set_p_complex_SOURCES = mln_core_site_set_p_complex.cc
-mln_core_site_set_p_image_SOURCES = mln_core_site_set_p_image.cc
-mln_core_site_set_attic_p_complex_faces_piter_SOURCES = mln_core_site_set_attic_p_complex_faces_piter.cc
-mln_core_site_set_attic_p_faces_piter_SOURCES = mln_core_site_set_attic_p_faces_piter.cc
-mln_core_site_set_p_priority_SOURCES = mln_core_site_set_p_priority.cc
-mln_core_site_set_p_set_of_SOURCES = mln_core_site_set_p_set_of.cc
-mln_core_site_set_all_SOURCES = mln_core_site_set_all.cc
-mln_core_site_set_p_edges_SOURCES = mln_core_site_set_p_edges.cc
-mln_core_site_set_box_piter_SOURCES = mln_core_site_set_box_piter.cc
-mln_core_site_set_p_faces_SOURCES = mln_core_site_set_p_faces.cc
-mln_core_site_set_p_set_SOURCES = mln_core_site_set_p_set.cc
-mln_core_site_set_p_queue_SOURCES = mln_core_site_set_p_queue.cc
-mln_core_site_set_p_if_SOURCES = mln_core_site_set_p_if.cc
-mln_core_site_set_operators_SOURCES = mln_core_site_set_operators.cc
-mln_core_site_set_p_mutable_array_of_SOURCES = mln_core_site_set_p_mutable_array_of.cc
-mln_core_site_set_p_edges_psite_SOURCES = mln_core_site_set_p_edges_psite.cc
-mln_core_site_set_complex_psite_SOURCES = mln_core_site_set_complex_psite.cc
-mln_core_site_set_p_run_SOURCES = mln_core_site_set_p_run.cc
-mln_core_site_set_p_n_faces_piter_SOURCES = mln_core_site_set_p_n_faces_piter.cc
-mln_core_site_set_p_centered_SOURCES = mln_core_site_set_p_centered.cc
-mln_core_site_set_p_bgraph_SOURCES = mln_core_site_set_p_bgraph.cc
-mln_core_site_set_p_bgraph_piter_SOURCES = mln_core_site_set_p_bgraph_piter.cc
-mln_core_site_set_p_array_SOURCES = mln_core_site_set_p_array.cc
-mln_core_site_set_p_vertices_psite_SOURCES = mln_core_site_set_p_vertices_psite.cc
-mln_core_site_set_p_line2d_SOURCES = mln_core_site_set_p_line2d.cc
-mln_core_site_set_p_queue_fast_SOURCES = mln_core_site_set_p_queue_fast.cc
-mln_core_site_set_p_graph_piter_SOURCES = mln_core_site_set_p_graph_piter.cc
-mln_core_site_set_essential_SOURCES = mln_core_site_set_essential.cc
+mln_win_multiple_size_SOURCES = mln_win_multiple_size.cc
+mln_win_cube3d_SOURCES = mln_win_cube3d.cc
+mln_core_category_SOURCES = mln_core_category.cc
+mln_core_pixter1d_SOURCES = mln_core_pixter1d.cc
+mln_core_routine_init_SOURCES = mln_core_routine_init.cc
+mln_core_routine_essential_SOURCES = mln_core_routine_essential.cc
+mln_core_routine_primary_SOURCES = mln_core_routine_primary.cc
+mln_core_routine_clone_SOURCES = mln_core_routine_clone.cc
+mln_core_routine_ops_SOURCES = mln_core_routine_ops.cc
+mln_core_routine_all_SOURCES = mln_core_routine_all.cc
+mln_core_routine_initialize_SOURCES = mln_core_routine_initialize.cc
+mln_core_routine_extend_SOURCES = mln_core_routine_extend.cc
+mln_core_routine_exact_SOURCES = mln_core_routine_exact.cc
+mln_core_trait_qlf_value_SOURCES = mln_core_trait_qlf_value.cc
+mln_core_trait_op_mult_SOURCES = mln_core_trait_op_mult.cc
+mln_core_trait_essential_SOURCES = mln_core_trait_essential.cc
+mln_core_trait_pixter_SOURCES = mln_core_trait_pixter.cc
+mln_core_trait_all_SOURCES = mln_core_trait_all.cc
+mln_core_a_point_of_SOURCES = mln_core_a_point_of.cc
+mln_core_def_coordf_SOURCES = mln_core_def_coordf.cc
+mln_core_def_low_quant_nbits_SOURCES = mln_core_def_low_quant_nbits.cc
+mln_core_def_essential_SOURCES = mln_core_def_essential.cc
+mln_core_def_all_SOURCES = mln_core_def_all.cc
+mln_core_def_coord_SOURCES = mln_core_def_coord.cc
+mln_core_dpoints_pixter_SOURCES = mln_core_dpoints_pixter.cc
mln_core_dpsites_piter_SOURCES = mln_core_dpsites_piter.cc
+mln_core_tags_SOURCES = mln_core_tags.cc
+mln_core_window_SOURCES = mln_core_window.cc
+mln_core_pixter2d_SOURCES = mln_core_pixter2d.cc
+mln_core_essential_SOURCES = mln_core_essential.cc
mln_core_w_window_SOURCES = mln_core_w_window.cc
-mln_core_grids_SOURCES = mln_core_grids.cc
-mln_core_dpoints_pixter_SOURCES = mln_core_dpoints_pixter.cc
+mln_core_alias_point2d_SOURCES = mln_core_alias_point2d.cc
+mln_core_alias_box2d_h_SOURCES = mln_core_alias_box2d_h.cc
+mln_core_alias_box2d_SOURCES = mln_core_alias_box2d.cc
+mln_core_alias_point2d_h_SOURCES = mln_core_alias_point2d_h.cc
+mln_core_alias_neighb3d_SOURCES = mln_core_alias_neighb3d.cc
+mln_core_alias_window1d_SOURCES = mln_core_alias_window1d.cc
+mln_core_alias_point3df_SOURCES = mln_core_alias_point3df.cc
+mln_core_alias_w_window2d_int_SOURCES = mln_core_alias_w_window2d_int.cc
+mln_core_alias_point1d_SOURCES = mln_core_alias_point1d.cc
+mln_core_alias_w_window3d_float_SOURCES = mln_core_alias_w_window3d_float.cc
+mln_core_alias_w_window1d_int_SOURCES = mln_core_alias_w_window1d_int.cc
+mln_core_alias_dpoint2d_h_SOURCES = mln_core_alias_dpoint2d_h.cc
+mln_core_alias_dpoint1d_SOURCES = mln_core_alias_dpoint1d.cc
+mln_core_alias_complex_image_SOURCES = mln_core_alias_complex_image.cc
+mln_core_alias_complex_geometry_SOURCES = mln_core_alias_complex_geometry.cc
+mln_core_alias_p_run2d_SOURCES = mln_core_alias_p_run2d.cc
+mln_core_alias_w_window1d_float_SOURCES = mln_core_alias_w_window1d_float.cc
+mln_core_alias_w_window3d_int_SOURCES = mln_core_alias_w_window3d_int.cc
+mln_core_alias_box3d_SOURCES = mln_core_alias_box3d.cc
+mln_core_alias_neighb1d_SOURCES = mln_core_alias_neighb1d.cc
+mln_core_alias_neighb2d_SOURCES = mln_core_alias_neighb2d.cc
+mln_core_alias_w_window2d_float_SOURCES = mln_core_alias_w_window2d_float.cc
+mln_core_alias_window2d_SOURCES = mln_core_alias_window2d.cc
+mln_core_alias_window3d_SOURCES = mln_core_alias_window3d.cc
+mln_core_alias_point3d_SOURCES = mln_core_alias_point3d.cc
+mln_core_alias_dpoint3d_SOURCES = mln_core_alias_dpoint3d.cc
+mln_core_alias_dpoint2d_SOURCES = mln_core_alias_dpoint2d.cc
+mln_core_alias_box1d_SOURCES = mln_core_alias_box1d.cc
+mln_core_alias_p_runs2d_SOURCES = mln_core_alias_p_runs2d.cc
+mln_core_point_SOURCES = mln_core_point.cc
+mln_core_clock_neighb_SOURCES = mln_core_clock_neighb.cc
+mln_core_neighb_SOURCES = mln_core_neighb.cc
+mln_core_dpoint_SOURCES = mln_core_dpoint.cc
+mln_core_var_SOURCES = mln_core_var.cc
+mln_core_faces_psite_SOURCES = mln_core_faces_psite.cc
+mln_core_contract_SOURCES = mln_core_contract.cc
+mln_core_macros_SOURCES = mln_core_macros.cc
+mln_core_all_SOURCES = mln_core_all.cc
+mln_core_internal_image_primary_SOURCES = mln_core_internal_image_primary.cc
+mln_core_internal_window_base_SOURCES = mln_core_internal_window_base.cc
mln_core_internal_graph_psite_base_SOURCES = mln_core_internal_graph_psite_base.cc
-mln_core_internal_run_image_SOURCES = mln_core_internal_run_image.cc
-mln_core_internal_pixel_impl_SOURCES = mln_core_internal_pixel_impl.cc
-mln_core_internal_site_set_base_SOURCES = mln_core_internal_site_set_base.cc
-mln_core_internal_image_value_morpher_SOURCES = mln_core_internal_image_value_morpher.cc
-mln_core_internal_site_iterator_base_SOURCES = mln_core_internal_site_iterator_base.cc
-mln_core_internal_complex_neighborhood_base_SOURCES = mln_core_internal_complex_neighborhood_base.cc
-mln_core_internal_site_relative_iterator_base_SOURCES = mln_core_internal_site_relative_iterator_base.cc
+mln_core_internal_data_SOURCES = mln_core_internal_data.cc
mln_core_internal_site_set_impl_SOURCES = mln_core_internal_site_set_impl.cc
-mln_core_internal_exact_SOURCES = mln_core_internal_exact.cc
+mln_core_internal_piter_adaptor_SOURCES = mln_core_internal_piter_adaptor.cc
+mln_core_internal_image_morpher_SOURCES = mln_core_internal_image_morpher.cc
+mln_core_internal_image_value_morpher_SOURCES = mln_core_internal_image_value_morpher.cc
+mln_core_internal_complex_window_p_base_SOURCES = mln_core_internal_complex_window_p_base.cc
mln_core_internal_p_complex_piter_base_SOURCES = mln_core_internal_p_complex_piter_base.cc
+mln_core_internal_site_set_base_SOURCES = mln_core_internal_site_set_base.cc
mln_core_internal_neighb_niter_impl_SOURCES = mln_core_internal_neighb_niter_impl.cc
-mln_core_internal_pixel_iterator_base_SOURCES = mln_core_internal_pixel_iterator_base.cc
-mln_core_internal_classical_window_base_SOURCES = mln_core_internal_classical_window_base.cc
-mln_core_internal_data_SOURCES = mln_core_internal_data.cc
-mln_core_internal_force_exact_SOURCES = mln_core_internal_force_exact.cc
-mln_core_internal_image_base_SOURCES = mln_core_internal_image_base.cc
+mln_core_internal_site_set_iterator_base_SOURCES = mln_core_internal_site_set_iterator_base.cc
+mln_core_internal_set_of_SOURCES = mln_core_internal_set_of.cc
mln_core_internal_check_image_fastest_SOURCES = mln_core_internal_check_image_fastest.cc
mln_core_internal_check_image_all_SOURCES = mln_core_internal_check_image_all.cc
+mln_core_internal_classical_window_base_SOURCES = mln_core_internal_classical_window_base.cc
+mln_core_internal_force_exact_SOURCES = mln_core_internal_force_exact.cc
+mln_core_internal_pixel_iterator_base_SOURCES = mln_core_internal_pixel_iterator_base.cc
+mln_core_internal_coord_impl_SOURCES = mln_core_internal_coord_impl.cc
+mln_core_internal_pixel_impl_SOURCES = mln_core_internal_pixel_impl.cc
+mln_core_internal_site_iterator_base_SOURCES = mln_core_internal_site_iterator_base.cc
+mln_core_internal_run_image_SOURCES = mln_core_internal_run_image.cc
mln_core_internal_fixme_SOURCES = mln_core_internal_fixme.cc
+mln_core_internal_pseudo_site_base_SOURCES = mln_core_internal_pseudo_site_base.cc
mln_core_internal_morpher_lvalue_SOURCES = mln_core_internal_morpher_lvalue.cc
mln_core_internal_image_domain_morpher_SOURCES = mln_core_internal_image_domain_morpher.cc
-mln_core_internal_image_primary_SOURCES = mln_core_internal_image_primary.cc
-mln_core_internal_set_of_SOURCES = mln_core_internal_set_of.cc
-mln_core_internal_complex_window_p_base_SOURCES = mln_core_internal_complex_window_p_base.cc
+mln_core_internal_complex_neighborhood_base_SOURCES = mln_core_internal_complex_neighborhood_base.cc
mln_core_internal_graph_window_base_SOURCES = mln_core_internal_graph_window_base.cc
-mln_core_internal_piter_adaptor_SOURCES = mln_core_internal_piter_adaptor.cc
+mln_core_internal_image_identity_SOURCES = mln_core_internal_image_identity.cc
+mln_core_internal_geom_bbox_SOURCES = mln_core_internal_geom_bbox.cc
mln_core_internal_weighted_window_base_SOURCES = mln_core_internal_weighted_window_base.cc
mln_core_internal_neighborhood_base_SOURCES = mln_core_internal_neighborhood_base.cc
-mln_core_internal_image_morpher_SOURCES = mln_core_internal_image_morpher.cc
-mln_core_internal_coord_impl_SOURCES = mln_core_internal_coord_impl.cc
-mln_core_internal_geom_bbox_SOURCES = mln_core_internal_geom_bbox.cc
-mln_core_internal_image_identity_SOURCES = mln_core_internal_image_identity.cc
-mln_core_internal_pseudo_site_base_SOURCES = mln_core_internal_pseudo_site_base.cc
-mln_core_internal_window_base_SOURCES = mln_core_internal_window_base.cc
+mln_core_internal_site_relative_iterator_base_SOURCES = mln_core_internal_site_relative_iterator_base.cc
+mln_core_internal_exact_SOURCES = mln_core_internal_exact.cc
mln_core_internal_box_impl_SOURCES = mln_core_internal_box_impl.cc
-mln_core_internal_site_set_iterator_base_SOURCES = mln_core_internal_site_set_iterator_base.cc
-mln_core_contract_SOURCES = mln_core_contract.cc
-mln_core_all_SOURCES = mln_core_all.cc
-mln_core_point_SOURCES = mln_core_point.cc
-mln_core_neighb_SOURCES = mln_core_neighb.cc
-mln_core_routine_initialize_SOURCES = mln_core_routine_initialize.cc
-mln_core_routine_primary_SOURCES = mln_core_routine_primary.cc
-mln_core_routine_init_SOURCES = mln_core_routine_init.cc
-mln_core_routine_ops_SOURCES = mln_core_routine_ops.cc
-mln_core_routine_all_SOURCES = mln_core_routine_all.cc
-mln_core_routine_clone_SOURCES = mln_core_routine_clone.cc
-mln_core_routine_exact_SOURCES = mln_core_routine_exact.cc
-mln_core_routine_extend_SOURCES = mln_core_routine_extend.cc
-mln_core_routine_essential_SOURCES = mln_core_routine_essential.cc
-mln_core_trait_op_mult_SOURCES = mln_core_trait_op_mult.cc
-mln_core_trait_all_SOURCES = mln_core_trait_all.cc
-mln_core_trait_pixter_SOURCES = mln_core_trait_pixter.cc
-mln_core_trait_qlf_value_SOURCES = mln_core_trait_qlf_value.cc
-mln_core_trait_essential_SOURCES = mln_core_trait_essential.cc
-mln_core_pixter1d_SOURCES = mln_core_pixter1d.cc
-mln_core_category_SOURCES = mln_core_category.cc
-mln_core_macros_SOURCES = mln_core_macros.cc
-mln_core_box_runstart_piter_SOURCES = mln_core_box_runstart_piter.cc
-mln_core_tags_SOURCES = mln_core_tags.cc
-mln_core_dpoint_SOURCES = mln_core_dpoint.cc
-mln_core_alias_dpoint2d_h_SOURCES = mln_core_alias_dpoint2d_h.cc
-mln_core_alias_p_run2d_SOURCES = mln_core_alias_p_run2d.cc
-mln_core_alias_point3d_SOURCES = mln_core_alias_point3d.cc
-mln_core_alias_neighb3d_SOURCES = mln_core_alias_neighb3d.cc
-mln_core_alias_window3d_SOURCES = mln_core_alias_window3d.cc
-mln_core_alias_neighb2d_SOURCES = mln_core_alias_neighb2d.cc
-mln_core_alias_complex_image_SOURCES = mln_core_alias_complex_image.cc
-mln_core_alias_w_window1d_float_SOURCES = mln_core_alias_w_window1d_float.cc
-mln_core_alias_neighb1d_SOURCES = mln_core_alias_neighb1d.cc
-mln_core_alias_w_window2d_float_SOURCES = mln_core_alias_w_window2d_float.cc
-mln_core_alias_w_window2d_int_SOURCES = mln_core_alias_w_window2d_int.cc
-mln_core_alias_box1d_SOURCES = mln_core_alias_box1d.cc
-mln_core_alias_box2d_SOURCES = mln_core_alias_box2d.cc
-mln_core_alias_window1d_SOURCES = mln_core_alias_window1d.cc
-mln_core_alias_point1d_SOURCES = mln_core_alias_point1d.cc
-mln_core_alias_box3d_SOURCES = mln_core_alias_box3d.cc
-mln_core_alias_dpoint3d_SOURCES = mln_core_alias_dpoint3d.cc
-mln_core_alias_complex_geometry_SOURCES = mln_core_alias_complex_geometry.cc
-mln_core_alias_w_window3d_float_SOURCES = mln_core_alias_w_window3d_float.cc
-mln_core_alias_box2d_h_SOURCES = mln_core_alias_box2d_h.cc
-mln_core_alias_point2d_SOURCES = mln_core_alias_point2d.cc
-mln_core_alias_window2d_SOURCES = mln_core_alias_window2d.cc
-mln_core_alias_p_runs2d_SOURCES = mln_core_alias_p_runs2d.cc
-mln_core_alias_point3df_SOURCES = mln_core_alias_point3df.cc
-mln_core_alias_dpoint1d_SOURCES = mln_core_alias_dpoint1d.cc
-mln_core_alias_w_window3d_int_SOURCES = mln_core_alias_w_window3d_int.cc
-mln_core_alias_dpoint2d_SOURCES = mln_core_alias_dpoint2d.cc
-mln_core_alias_w_window1d_int_SOURCES = mln_core_alias_w_window1d_int.cc
-mln_core_alias_point2d_h_SOURCES = mln_core_alias_point2d_h.cc
-mln_core_window_SOURCES = mln_core_window.cc
-mln_core_concept_site_proxy_SOURCES = mln_core_concept_site_proxy.cc
-mln_core_concept_point_site_SOURCES = mln_core_concept_point_site.cc
-mln_core_concept_box_SOURCES = mln_core_concept_box.cc
-mln_core_concept_generalized_pixel_SOURCES = mln_core_concept_generalized_pixel.cc
-mln_core_concept_graph_SOURCES = mln_core_concept_graph.cc
-mln_core_concept_iterator_SOURCES = mln_core_concept_iterator.cc
-mln_core_concept_doc_point_site_SOURCES = mln_core_concept_doc_point_site.cc
-mln_core_concept_doc_box_SOURCES = mln_core_concept_doc_box.cc
-mln_core_concept_doc_generalized_pixel_SOURCES = mln_core_concept_doc_generalized_pixel.cc
-mln_core_concept_doc_iterator_SOURCES = mln_core_concept_doc_iterator.cc
-mln_core_concept_doc_image_fastest_SOURCES = mln_core_concept_doc_image_fastest.cc
-mln_core_concept_doc_image_SOURCES = mln_core_concept_doc_image.cc
-mln_core_concept_doc_value_set_SOURCES = mln_core_concept_doc_value_set.cc
-mln_core_concept_doc_weighted_window_SOURCES = mln_core_concept_doc_weighted_window.cc
-mln_core_concept_doc_pixel_iterator_SOURCES = mln_core_concept_doc_pixel_iterator.cc
-mln_core_concept_doc_value_iterator_SOURCES = mln_core_concept_doc_value_iterator.cc
-mln_core_concept_doc_dpoint_SOURCES = mln_core_concept_doc_dpoint.cc
-mln_core_concept_doc_window_SOURCES = mln_core_concept_doc_window.cc
-mln_core_concept_doc_accumulator_SOURCES = mln_core_concept_doc_accumulator.cc
-mln_core_concept_doc_site_set_SOURCES = mln_core_concept_doc_site_set.cc
-mln_core_concept_doc_object_SOURCES = mln_core_concept_doc_object.cc
-mln_core_concept_doc_neighborhood_SOURCES = mln_core_concept_doc_neighborhood.cc
-mln_core_concept_doc_point_iterator_SOURCES = mln_core_concept_doc_point_iterator.cc
-mln_core_concept_pseudo_site_SOURCES = mln_core_concept_pseudo_site.cc
-mln_core_concept_image_SOURCES = mln_core_concept_image.cc
-mln_core_concept_value_set_SOURCES = mln_core_concept_value_set.cc
-mln_core_concept_proxy_SOURCES = mln_core_concept_proxy.cc
-mln_core_concept_site_SOURCES = mln_core_concept_site.cc
-mln_core_concept_weighted_window_SOURCES = mln_core_concept_weighted_window.cc
-mln_core_concept_all_SOURCES = mln_core_concept_all.cc
-mln_core_concept_gpoint_SOURCES = mln_core_concept_gpoint.cc
-mln_core_concept_site_iterator_SOURCES = mln_core_concept_site_iterator.cc
-mln_core_concept_point_SOURCES = mln_core_concept_point.cc
-mln_core_concept_literal_SOURCES = mln_core_concept_literal.cc
-mln_core_concept_pixel_iterator_SOURCES = mln_core_concept_pixel_iterator.cc
-mln_core_concept_value_iterator_SOURCES = mln_core_concept_value_iterator.cc
-mln_core_concept_meta_accumulator_SOURCES = mln_core_concept_meta_accumulator.cc
-mln_core_concept_gdpoint_SOURCES = mln_core_concept_gdpoint.cc
-mln_core_concept_regular_grid_SOURCES = mln_core_concept_regular_grid.cc
-mln_core_concept_mesh_SOURCES = mln_core_concept_mesh.cc
-mln_core_concept_dpoint_SOURCES = mln_core_concept_dpoint.cc
-mln_core_concept_function_SOURCES = mln_core_concept_function.cc
-mln_core_concept_window_SOURCES = mln_core_concept_window.cc
-mln_core_concept_value_SOURCES = mln_core_concept_value.cc
-mln_core_concept_accumulator_SOURCES = mln_core_concept_accumulator.cc
-mln_core_concept_site_set_SOURCES = mln_core_concept_site_set.cc
-mln_core_concept_object_SOURCES = mln_core_concept_object.cc
-mln_core_concept_delta_point_site_SOURCES = mln_core_concept_delta_point_site.cc
-mln_core_concept_neighborhood_SOURCES = mln_core_concept_neighborhood.cc
-mln_core_concept_browsing_SOURCES = mln_core_concept_browsing.cc
-mln_core_pixel_SOURCES = mln_core_pixel.cc
+mln_core_internal_image_base_SOURCES = mln_core_internal_image_base.cc
mln_core_clock_neighb2d_SOURCES = mln_core_clock_neighb2d.cc
-mln_core_pixter3d_SOURCES = mln_core_pixter3d.cc
mln_core_image_obased_rle_encode_SOURCES = mln_core_image_obased_rle_encode.cc
mln_core_image_plain_SOURCES = mln_core_image_plain.cc
-mln_core_image_graph_image_SOURCES = mln_core_image_graph_image.cc
-mln_core_image_image3d_SOURCES = mln_core_image_image3d.cc
mln_core_image_decorated_image_SOURCES = mln_core_image_decorated_image.cc
-mln_core_image_extension_ima_SOURCES = mln_core_image_extension_ima.cc
-mln_core_image_flat_image_SOURCES = mln_core_image_flat_image.cc
+mln_core_image_graph_image_SOURCES = mln_core_image_graph_image.cc
mln_core_image_complex_neighborhood_piter_SOURCES = mln_core_image_complex_neighborhood_piter.cc
-mln_core_image_tr_mesh_SOURCES = mln_core_image_tr_mesh.cc
-mln_core_image_graph_elt_window_SOURCES = mln_core_image_graph_elt_window.cc
-mln_core_image_obased_rle_image_SOURCES = mln_core_image_obased_rle_image.cc
-mln_core_image_mono_obased_rle_image_SOURCES = mln_core_image_mono_obased_rle_image.cc
-mln_core_image_interpolated_SOURCES = mln_core_image_interpolated.cc
-mln_core_image_lazy_image_SOURCES = mln_core_image_lazy_image.cc
-mln_core_image_t_image_SOURCES = mln_core_image_t_image.cc
+mln_core_image_graph_window_piter_SOURCES = mln_core_image_graph_window_piter.cc
mln_core_image_hexa_piter_SOURCES = mln_core_image_hexa_piter.cc
-mln_core_image_value_enc_image_SOURCES = mln_core_image_value_enc_image.cc
-mln_core_image_sub_image_if_SOURCES = mln_core_image_sub_image_if.cc
-mln_core_image_all_SOURCES = mln_core_image_all.cc
-mln_core_image_mono_rle_image_SOURCES = mln_core_image_mono_rle_image.cc
-mln_core_image_complex_image_SOURCES = mln_core_image_complex_image.cc
-mln_core_image_cast_image_SOURCES = mln_core_image_cast_image.cc
mln_core_image_rle_encode_SOURCES = mln_core_image_rle_encode.cc
-mln_core_image_complex_window_piter_SOURCES = mln_core_image_complex_window_piter.cc
+mln_core_image_extension_val_SOURCES = mln_core_image_extension_val.cc
mln_core_image_tr_image_SOURCES = mln_core_image_tr_image.cc
-mln_core_image_sub_image_SOURCES = mln_core_image_sub_image.cc
-mln_core_image_rle_image_SOURCES = mln_core_image_rle_image.cc
-mln_core_image_line_graph_elt_window_SOURCES = mln_core_image_line_graph_elt_window.cc
-mln_core_image_mono_rle_encode_SOURCES = mln_core_image_mono_rle_encode.cc
-mln_core_image_bgraph_psite_SOURCES = mln_core_image_bgraph_psite.cc
-mln_core_image_sparse_image_SOURCES = mln_core_image_sparse_image.cc
-mln_core_image_bgraph_image_SOURCES = mln_core_image_bgraph_image.cc
-mln_core_image_complex_neighborhoods_SOURCES = mln_core_image_complex_neighborhoods.cc
-mln_core_image_graph_window_piter_SOURCES = mln_core_image_graph_window_piter.cc
+mln_core_image_fi_adaptor_SOURCES = mln_core_image_fi_adaptor.cc
+mln_core_image_extension_ima_SOURCES = mln_core_image_extension_ima.cc
mln_core_image_sparse_encode_SOURCES = mln_core_image_sparse_encode.cc
+mln_core_image_lazy_image_SOURCES = mln_core_image_lazy_image.cc
+mln_core_image_hexa_SOURCES = mln_core_image_hexa.cc
+mln_core_image_flat_image_SOURCES = mln_core_image_flat_image.cc
+mln_core_image_essential_SOURCES = mln_core_image_essential.cc
+mln_core_image_value_enc_image_SOURCES = mln_core_image_value_enc_image.cc
+mln_core_image_image_if_SOURCES = mln_core_image_image_if.cc
+mln_core_image_complex_image_SOURCES = mln_core_image_complex_image.cc
+mln_core_image_image2d_h_SOURCES = mln_core_image_image2d_h.cc
+mln_core_image_rle_image_SOURCES = mln_core_image_rle_image.cc
+mln_core_image_complex_window_piter_SOURCES = mln_core_image_complex_window_piter.cc
+mln_core_image_mono_rle_image_SOURCES = mln_core_image_mono_rle_image.cc
+mln_core_image_graph_elt_window_SOURCES = mln_core_image_graph_elt_window.cc
+mln_core_image_interpolated_SOURCES = mln_core_image_interpolated.cc
+mln_core_image_image1d_SOURCES = mln_core_image_image1d.cc
+mln_core_image_value_encode_SOURCES = mln_core_image_value_encode.cc
+mln_core_image_mono_obased_rle_image_SOURCES = mln_core_image_mono_obased_rle_image.cc
+mln_core_image_t_image_SOURCES = mln_core_image_t_image.cc
+mln_core_image_image2d_SOURCES = mln_core_image_image2d.cc
+mln_core_image_cast_image_SOURCES = mln_core_image_cast_image.cc
+mln_core_image_obased_rle_image_SOURCES = mln_core_image_obased_rle_image.cc
+mln_core_image_all_SOURCES = mln_core_image_all.cc
+mln_core_image_complex_windows_SOURCES = mln_core_image_complex_windows.cc
mln_core_image_safe_SOURCES = mln_core_image_safe.cc
-mln_core_image_extension_fun_SOURCES = mln_core_image_extension_fun.cc
-mln_core_image_image1d_SOURCES = mln_core_image_image1d.cc
-mln_core_image_extension_val_SOURCES = mln_core_image_extension_val.cc
-mln_core_image_image_if_SOURCES = mln_core_image_image_if.cc
-mln_core_image_hexa_SOURCES = mln_core_image_hexa.cc
mln_core_image_extended_SOURCES = mln_core_image_extended.cc
-mln_core_image_image2d_h_SOURCES = mln_core_image_image2d_h.cc
-mln_core_image_image2d_SOURCES = mln_core_image_image2d.cc
+mln_core_image_sparse_image_SOURCES = mln_core_image_sparse_image.cc
+mln_core_image_bgraph_image_SOURCES = mln_core_image_bgraph_image.cc
+mln_core_image_image3d_SOURCES = mln_core_image_image3d.cc
+mln_core_image_bgraph_psite_SOURCES = mln_core_image_bgraph_psite.cc
+mln_core_image_sub_image_if_SOURCES = mln_core_image_sub_image_if.cc
+mln_core_image_line_graph_elt_window_SOURCES = mln_core_image_line_graph_elt_window.cc
+mln_core_image_tr_mesh_SOURCES = mln_core_image_tr_mesh.cc
+mln_core_image_sub_image_SOURCES = mln_core_image_sub_image.cc
mln_core_image_ch_piter_SOURCES = mln_core_image_ch_piter.cc
-mln_core_image_complex_windows_SOURCES = mln_core_image_complex_windows.cc
-mln_core_image_fi_adaptor_SOURCES = mln_core_image_fi_adaptor.cc
+mln_core_image_extension_fun_SOURCES = mln_core_image_extension_fun.cc
mln_core_image_mono_obased_rle_encode_SOURCES = mln_core_image_mono_obased_rle_encode.cc
mln_core_image_line_graph_image_SOURCES = mln_core_image_line_graph_image.cc
-mln_core_image_value_encode_SOURCES = mln_core_image_value_encode.cc
-mln_core_image_essential_SOURCES = mln_core_image_essential.cc
-mln_core_a_point_of_SOURCES = mln_core_a_point_of.cc
-mln_core_var_SOURCES = mln_core_var.cc
-mln_core_essential_SOURCES = mln_core_essential.cc
-mln_core_faces_psite_SOURCES = mln_core_faces_psite.cc
-mln_labeling_blobs_SOURCES = mln_labeling_blobs.cc
+mln_core_image_mono_rle_encode_SOURCES = mln_core_image_mono_rle_encode.cc
+mln_core_image_complex_neighborhoods_SOURCES = mln_core_image_complex_neighborhoods.cc
+mln_core_pixter3d_SOURCES = mln_core_pixter3d.cc
+mln_core_concept_site_SOURCES = mln_core_concept_site.cc
+mln_core_concept_value_SOURCES = mln_core_concept_value.cc
+mln_core_concept_gdpoint_SOURCES = mln_core_concept_gdpoint.cc
+mln_core_concept_pseudo_site_SOURCES = mln_core_concept_pseudo_site.cc
+mln_core_concept_delta_point_site_SOURCES = mln_core_concept_delta_point_site.cc
+mln_core_concept_site_set_SOURCES = mln_core_concept_site_set.cc
+mln_core_concept_value_set_SOURCES = mln_core_concept_value_set.cc
+mln_core_concept_gpoint_SOURCES = mln_core_concept_gpoint.cc
+mln_core_concept_site_proxy_SOURCES = mln_core_concept_site_proxy.cc
+mln_core_concept_window_SOURCES = mln_core_concept_window.cc
+mln_core_concept_mesh_SOURCES = mln_core_concept_mesh.cc
+mln_core_concept_box_SOURCES = mln_core_concept_box.cc
+mln_core_concept_graph_SOURCES = mln_core_concept_graph.cc
+mln_core_concept_point_SOURCES = mln_core_concept_point.cc
+mln_core_concept_value_iterator_SOURCES = mln_core_concept_value_iterator.cc
+mln_core_concept_doc_site_set_SOURCES = mln_core_concept_doc_site_set.cc
+mln_core_concept_doc_image_fastest_SOURCES = mln_core_concept_doc_image_fastest.cc
+mln_core_concept_doc_value_set_SOURCES = mln_core_concept_doc_value_set.cc
+mln_core_concept_doc_window_SOURCES = mln_core_concept_doc_window.cc
+mln_core_concept_doc_box_SOURCES = mln_core_concept_doc_box.cc
+mln_core_concept_doc_value_iterator_SOURCES = mln_core_concept_doc_value_iterator.cc
+mln_core_concept_doc_weighted_window_SOURCES = mln_core_concept_doc_weighted_window.cc
+mln_core_concept_doc_image_SOURCES = mln_core_concept_doc_image.cc
+mln_core_concept_doc_dpoint_SOURCES = mln_core_concept_doc_dpoint.cc
+mln_core_concept_doc_iterator_SOURCES = mln_core_concept_doc_iterator.cc
+mln_core_concept_doc_accumulator_SOURCES = mln_core_concept_doc_accumulator.cc
+mln_core_concept_doc_neighborhood_SOURCES = mln_core_concept_doc_neighborhood.cc
+mln_core_concept_doc_pixel_iterator_SOURCES = mln_core_concept_doc_pixel_iterator.cc
+mln_core_concept_doc_point_iterator_SOURCES = mln_core_concept_doc_point_iterator.cc
+mln_core_concept_doc_object_SOURCES = mln_core_concept_doc_object.cc
+mln_core_concept_doc_generalized_pixel_SOURCES = mln_core_concept_doc_generalized_pixel.cc
+mln_core_concept_doc_point_site_SOURCES = mln_core_concept_doc_point_site.cc
+mln_core_concept_weighted_window_SOURCES = mln_core_concept_weighted_window.cc
+mln_core_concept_image_SOURCES = mln_core_concept_image.cc
+mln_core_concept_function_SOURCES = mln_core_concept_function.cc
+mln_core_concept_browsing_SOURCES = mln_core_concept_browsing.cc
+mln_core_concept_dpoint_SOURCES = mln_core_concept_dpoint.cc
+mln_core_concept_iterator_SOURCES = mln_core_concept_iterator.cc
+mln_core_concept_meta_accumulator_SOURCES = mln_core_concept_meta_accumulator.cc
+mln_core_concept_accumulator_SOURCES = mln_core_concept_accumulator.cc
+mln_core_concept_all_SOURCES = mln_core_concept_all.cc
+mln_core_concept_proxy_SOURCES = mln_core_concept_proxy.cc
+mln_core_concept_neighborhood_SOURCES = mln_core_concept_neighborhood.cc
+mln_core_concept_pixel_iterator_SOURCES = mln_core_concept_pixel_iterator.cc
+mln_core_concept_literal_SOURCES = mln_core_concept_literal.cc
+mln_core_concept_site_iterator_SOURCES = mln_core_concept_site_iterator.cc
+mln_core_concept_regular_grid_SOURCES = mln_core_concept_regular_grid.cc
+mln_core_concept_object_SOURCES = mln_core_concept_object.cc
+mln_core_concept_generalized_pixel_SOURCES = mln_core_concept_generalized_pixel.cc
+mln_core_concept_point_site_SOURCES = mln_core_concept_point_site.cc
+mln_core_site_set_p_array_SOURCES = mln_core_site_set_p_array.cc
+mln_core_site_set_p_priority_SOURCES = mln_core_site_set_p_priority.cc
+mln_core_site_set_p_bgraph_SOURCES = mln_core_site_set_p_bgraph.cc
+mln_core_site_set_p_queue_SOURCES = mln_core_site_set_p_queue.cc
+mln_core_site_set_p_double_SOURCES = mln_core_site_set_p_double.cc
+mln_core_site_set_p_set_SOURCES = mln_core_site_set_p_set.cc
+mln_core_site_set_p_complex_SOURCES = mln_core_site_set_p_complex.cc
+mln_core_site_set_p_graph_piter_SOURCES = mln_core_site_set_p_graph_piter.cc
+mln_core_site_set_p_n_faces_piter_SOURCES = mln_core_site_set_p_n_faces_piter.cc
+mln_core_site_set_p_set_of_SOURCES = mln_core_site_set_p_set_of.cc
+mln_core_site_set_p_vaccess_SOURCES = mln_core_site_set_p_vaccess.cc
+mln_core_site_set_box_piter_SOURCES = mln_core_site_set_box_piter.cc
+mln_core_site_set_p_vertices_psite_SOURCES = mln_core_site_set_p_vertices_psite.cc
+mln_core_site_set_complex_psite_SOURCES = mln_core_site_set_complex_psite.cc
+mln_core_site_set_p_run_SOURCES = mln_core_site_set_p_run.cc
+mln_core_site_set_essential_SOURCES = mln_core_site_set_essential.cc
+mln_core_site_set_box_SOURCES = mln_core_site_set_box.cc
+mln_core_site_set_p_line2d_SOURCES = mln_core_site_set_p_line2d.cc
+mln_core_site_set_p_edges_psite_SOURCES = mln_core_site_set_p_edges_psite.cc
+mln_core_site_set_p_mutable_array_of_SOURCES = mln_core_site_set_p_mutable_array_of.cc
+mln_core_site_set_p_run_piter_SOURCES = mln_core_site_set_p_run_piter.cc
+mln_core_site_set_p_faces_SOURCES = mln_core_site_set_p_faces.cc
+mln_core_site_set_operators_SOURCES = mln_core_site_set_operators.cc
+mln_core_site_set_p_if_piter_SOURCES = mln_core_site_set_p_if_piter.cc
+mln_core_site_set_all_SOURCES = mln_core_site_set_all.cc
+mln_core_site_set_p_edges_SOURCES = mln_core_site_set_p_edges.cc
+mln_core_site_set_p_bgraph_piter_SOURCES = mln_core_site_set_p_bgraph_piter.cc
+mln_core_site_set_p_centered_SOURCES = mln_core_site_set_p_centered.cc
+mln_core_site_set_p_key_SOURCES = mln_core_site_set_p_key.cc
+mln_core_site_set_p_vertices_SOURCES = mln_core_site_set_p_vertices.cc
+mln_core_site_set_p_if_SOURCES = mln_core_site_set_p_if.cc
+mln_core_site_set_p_queue_fast_SOURCES = mln_core_site_set_p_queue_fast.cc
+mln_core_site_set_p_image_SOURCES = mln_core_site_set_p_image.cc
+mln_core_site_set_p_complex_piter_SOURCES = mln_core_site_set_p_complex_piter.cc
+mln_core_site_set_attic_p_faces_piter_SOURCES = mln_core_site_set_attic_p_faces_piter.cc
+mln_core_site_set_attic_p_complex_faces_piter_SOURCES = mln_core_site_set_attic_p_complex_faces_piter.cc
+mln_core_pixel_SOURCES = mln_core_pixel.cc
+mln_core_box_runstart_piter_SOURCES = mln_core_box_runstart_piter.cc
+mln_core_grids_SOURCES = mln_core_grids.cc
+mln_io_abort_SOURCES = mln_io_abort.cc
+mln_io_pbm_all_SOURCES = mln_io_pbm_all.cc
+mln_io_pbm_load_SOURCES = mln_io_pbm_load.cc
+mln_io_pbm_save_SOURCES = mln_io_pbm_save.cc
+mln_io_essential_SOURCES = mln_io_essential.cc
+mln_io_off_all_SOURCES = mln_io_off_all.cc
+mln_io_off_load_SOURCES = mln_io_off_load.cc
+mln_io_off_save_SOURCES = mln_io_off_save.cc
+mln_io_pfm_all_SOURCES = mln_io_pfm_all.cc
+mln_io_pfm_load_SOURCES = mln_io_pfm_load.cc
+mln_io_pfm_save_SOURCES = mln_io_pfm_save.cc
+mln_io_pgm_all_SOURCES = mln_io_pgm_all.cc
+mln_io_pgm_load_SOURCES = mln_io_pgm_load.cc
+mln_io_pgm_save_SOURCES = mln_io_pgm_save.cc
+mln_io_all_SOURCES = mln_io_all.cc
+mln_io_fits_all_SOURCES = mln_io_fits_all.cc
+mln_io_fits_load_SOURCES = mln_io_fits_load.cc
+mln_io_pnm_max_component_SOURCES = mln_io_pnm_max_component.cc
+mln_io_pnm_save_header_SOURCES = mln_io_pnm_save_header.cc
+mln_io_pnm_macros_SOURCES = mln_io_pnm_macros.cc
+mln_io_pnm_all_SOURCES = mln_io_pnm_all.cc
+mln_io_pnm_load_SOURCES = mln_io_pnm_load.cc
+mln_io_pnm_load_header_SOURCES = mln_io_pnm_load_header.cc
+mln_io_pnm_save_SOURCES = mln_io_pnm_save.cc
+mln_io_ppm_all_SOURCES = mln_io_ppm_all.cc
+mln_io_ppm_load_SOURCES = mln_io_ppm_load.cc
+mln_io_ppm_save_SOURCES = mln_io_ppm_save.cc
+mln_io_txt_all_SOURCES = mln_io_txt_all.cc
+mln_io_txt_save_SOURCES = mln_io_txt_save.cc
+mln_make_vec_SOURCES = mln_make_vec.cc
+mln_make_box2d_h_SOURCES = mln_make_box2d_h.cc
+mln_make_box2d_SOURCES = mln_make_box2d.cc
+mln_make_point2d_h_SOURCES = mln_make_point2d_h.cc
+mln_make_double_neighb2d_SOURCES = mln_make_double_neighb2d.cc
+mln_make_w_window2d_int_SOURCES = mln_make_w_window2d_int.cc
+mln_make_w_window1d_SOURCES = mln_make_w_window1d.cc
+mln_make_relabelfun_SOURCES = mln_make_relabelfun.cc
+mln_make_pix_SOURCES = mln_make_pix.cc
+mln_make_w_window1d_int_SOURCES = mln_make_w_window1d_int.cc
+mln_make_dpoint2d_h_SOURCES = mln_make_dpoint2d_h.cc
+mln_make_essential_SOURCES = mln_make_essential.cc
+mln_make_graph_SOURCES = mln_make_graph.cc
+mln_make_w_window_SOURCES = mln_make_w_window.cc
+mln_make_image_SOURCES = mln_make_image.cc
+mln_make_w_window3d_int_SOURCES = mln_make_w_window3d_int.cc
+mln_make_box3d_SOURCES = mln_make_box3d.cc
+mln_make_image2d_SOURCES = mln_make_image2d.cc
+mln_make_all_SOURCES = mln_make_all.cc
+mln_make_dual_neighb_SOURCES = mln_make_dual_neighb.cc
+mln_make_win_chamfer_SOURCES = mln_make_win_chamfer.cc
+mln_make_pixel_SOURCES = mln_make_pixel.cc
+mln_make_w_window2d_SOURCES = mln_make_w_window2d.cc
+mln_make_w_window_directional_SOURCES = mln_make_w_window_directional.cc
+mln_make_box1d_SOURCES = mln_make_box1d.cc
+mln_make_mat_SOURCES = mln_make_mat.cc
+mln_make_voronoi_SOURCES = mln_make_voronoi.cc
+mln_make_w_window3d_SOURCES = mln_make_w_window3d.cc
+mln_topo_adj_lower_face_iter_SOURCES = mln_topo_adj_lower_face_iter.cc
+mln_topo_adj_lower_dim_connected_n_face_iter_SOURCES = mln_topo_adj_lower_dim_connected_n_face_iter.cc
+mln_topo_face_iter_SOURCES = mln_topo_face_iter.cc
+mln_topo_algebraic_n_face_SOURCES = mln_topo_algebraic_n_face.cc
+mln_topo_complex_SOURCES = mln_topo_complex.cc
+mln_topo_face_data_SOURCES = mln_topo_face_data.cc
+mln_topo_adj_higher_dim_connected_n_face_iter_SOURCES = mln_topo_adj_higher_dim_connected_n_face_iter.cc
+mln_topo_essential_SOURCES = mln_topo_essential.cc
+mln_topo_static_n_face_iter_SOURCES = mln_topo_static_n_face_iter.cc
+mln_topo_n_faces_set_SOURCES = mln_topo_n_faces_set.cc
+mln_topo_adj_higher_face_iter_SOURCES = mln_topo_adj_higher_face_iter.cc
+mln_topo_all_SOURCES = mln_topo_all.cc
+mln_topo_internal_complex_iterator_base_SOURCES = mln_topo_internal_complex_iterator_base.cc
+mln_topo_internal_complex_relative_iterator_sequence_SOURCES = mln_topo_internal_complex_relative_iterator_sequence.cc
+mln_topo_internal_complex_relative_iterator_base_SOURCES = mln_topo_internal_complex_relative_iterator_base.cc
+mln_topo_internal_complex_set_iterator_base_SOURCES = mln_topo_internal_complex_set_iterator_base.cc
+mln_topo_adj_m_face_iter_SOURCES = mln_topo_adj_m_face_iter.cc
+mln_topo_n_face_SOURCES = mln_topo_n_face.cc
+mln_topo_complex_iterators_SOURCES = mln_topo_complex_iterators.cc
+mln_topo_adj_lower_higher_face_iter_SOURCES = mln_topo_adj_lower_higher_face_iter.cc
+mln_topo_is_simple_2d_SOURCES = mln_topo_is_simple_2d.cc
+mln_topo_face_SOURCES = mln_topo_face.cc
+mln_topo_center_only_iter_SOURCES = mln_topo_center_only_iter.cc
+mln_topo_centered_iter_adapter_SOURCES = mln_topo_centered_iter_adapter.cc
+mln_topo_algebraic_face_SOURCES = mln_topo_algebraic_face.cc
+mln_topo_n_face_iter_SOURCES = mln_topo_n_face_iter.cc
+mln_topo_attic_faces_iter_SOURCES = mln_topo_attic_faces_iter.cc
+mln_subsampling_essential_SOURCES = mln_subsampling_essential.cc
+mln_subsampling_subsampling_SOURCES = mln_subsampling_subsampling.cc
+mln_subsampling_all_SOURCES = mln_subsampling_all.cc
+mln_subsampling_gaussian_subsampling_SOURCES = mln_subsampling_gaussian_subsampling.cc
+mln_canvas_distance_geodesic_SOURCES = mln_canvas_distance_geodesic.cc
+mln_canvas_labeling_SOURCES = mln_canvas_labeling.cc
+mln_canvas_essential_SOURCES = mln_canvas_essential.cc
+mln_canvas_distance_front_SOURCES = mln_canvas_distance_front.cc
+mln_canvas_morpho_algebraic_union_find_SOURCES = mln_canvas_morpho_algebraic_union_find.cc
+mln_canvas_morpho_essential_SOURCES = mln_canvas_morpho_essential.cc
+mln_canvas_morpho_all_SOURCES = mln_canvas_morpho_all.cc
+mln_canvas_all_SOURCES = mln_canvas_all.cc
+mln_canvas_chamfer_SOURCES = mln_canvas_chamfer.cc
+mln_canvas_browsing_directional_SOURCES = mln_canvas_browsing_directional.cc
+mln_canvas_browsing_fwd_SOURCES = mln_canvas_browsing_fwd.cc
+mln_canvas_browsing_essential_SOURCES = mln_canvas_browsing_essential.cc
+mln_canvas_browsing_snake_vert_SOURCES = mln_canvas_browsing_snake_vert.cc
+mln_canvas_browsing_snake_fwd_SOURCES = mln_canvas_browsing_snake_fwd.cc
+mln_canvas_browsing_backdiagonal2d_SOURCES = mln_canvas_browsing_backdiagonal2d.cc
+mln_canvas_browsing_snake_generic_SOURCES = mln_canvas_browsing_snake_generic.cc
+mln_canvas_browsing_all_SOURCES = mln_canvas_browsing_all.cc
+mln_canvas_browsing_hyper_directional_SOURCES = mln_canvas_browsing_hyper_directional.cc
+mln_canvas_browsing_depth_first_search_SOURCES = mln_canvas_browsing_depth_first_search.cc
+mln_canvas_browsing_dir_struct_elt_incr_update_SOURCES = mln_canvas_browsing_dir_struct_elt_incr_update.cc
+mln_canvas_browsing_diagonal2d_SOURCES = mln_canvas_browsing_diagonal2d.cc
+mln_estim_mean_SOURCES = mln_estim_mean.cc
+mln_estim_essential_SOURCES = mln_estim_essential.cc
+mln_estim_all_SOURCES = mln_estim_all.cc
+mln_estim_min_max_SOURCES = mln_estim_min_max.cc
+mln_estim_sum_SOURCES = mln_estim_sum.cc
+mln_arith_essential_SOURCES = mln_arith_essential.cc
+mln_arith_includes_SOURCES = mln_arith_includes.cc
+mln_arith_all_SOURCES = mln_arith_all.cc
+mln_arith_plus_SOURCES = mln_arith_plus.cc
+mln_arith_min_SOURCES = mln_arith_min.cc
+mln_arith_minus_SOURCES = mln_arith_minus.cc
+mln_arith_revert_SOURCES = mln_arith_revert.cc
+mln_arith_times_SOURCES = mln_arith_times.cc
+mln_arith_diff_abs_SOURCES = mln_arith_diff_abs.cc
+mln_algebra_vec_SOURCES = mln_algebra_vec.cc
+mln_algebra_h_mat_SOURCES = mln_algebra_h_mat.cc
+mln_algebra_quat_SOURCES = mln_algebra_quat.cc
+mln_algebra_essential_SOURCES = mln_algebra_essential.cc
+mln_algebra_all_SOURCES = mln_algebra_all.cc
+mln_algebra_h_vec_SOURCES = mln_algebra_h_vec.cc
+mln_algebra_mat_SOURCES = mln_algebra_mat.cc
+mln_display_essential_SOURCES = mln_display_essential.cc
+mln_display_all_SOURCES = mln_display_all.cc
+mln_test_positive_SOURCES = mln_test_positive.cc
+mln_test_essential_SOURCES = mln_test_essential.cc
+mln_test_all_SOURCES = mln_test_all.cc
+mln_test_predicate_SOURCES = mln_test_predicate.cc
+mln_border_mirror_SOURCES = mln_border_mirror.cc
+mln_border_adjust_SOURCES = mln_border_adjust.cc
+mln_border_find_SOURCES = mln_border_find.cc
+mln_border_essential_SOURCES = mln_border_essential.cc
+mln_border_equalize_SOURCES = mln_border_equalize.cc
+mln_border_fill_SOURCES = mln_border_fill.cc
+mln_border_resize_SOURCES = mln_border_resize.cc
+mln_border_all_SOURCES = mln_border_all.cc
+mln_border_duplicate_SOURCES = mln_border_duplicate.cc
+mln_border_thickness_SOURCES = mln_border_thickness.cc
+mln_border_get_SOURCES = mln_border_get.cc
+mln_trace_exiting_SOURCES = mln_trace_exiting.cc
+mln_trace_entering_SOURCES = mln_trace_entering.cc
+mln_trace_resume_SOURCES = mln_trace_resume.cc
+mln_trace_stop_SOURCES = mln_trace_stop.cc
+mln_trace_essential_SOURCES = mln_trace_essential.cc
+mln_trace_quiet_SOURCES = mln_trace_quiet.cc
+mln_trace_all_SOURCES = mln_trace_all.cc
+mln_trace_warning_SOURCES = mln_trace_warning.cc
+mln_debug_println_with_border_SOURCES = mln_debug_println_with_border.cc
+mln_debug_draw_graph_SOURCES = mln_debug_draw_graph.cc
+mln_debug_iota_SOURCES = mln_debug_iota.cc
+mln_debug_colorize_SOURCES = mln_debug_colorize.cc
+mln_debug_essential_SOURCES = mln_debug_essential.cc
+mln_debug_format_SOURCES = mln_debug_format.cc
+mln_debug_all_SOURCES = mln_debug_all.cc
+mln_debug_println_SOURCES = mln_debug_println.cc
+mln_debug_put_word_SOURCES = mln_debug_put_word.cc
+mln_morpho_thick_miss_SOURCES = mln_morpho_thick_miss.cc
+mln_morpho_opening_volume_SOURCES = mln_morpho_opening_volume.cc
+mln_morpho_gradient_SOURCES = mln_morpho_gradient.cc
+mln_morpho_closing_area_on_vertices_SOURCES = mln_morpho_closing_area_on_vertices.cc
+mln_morpho_meyer_wst_SOURCES = mln_morpho_meyer_wst.cc
+mln_morpho_closing_area_SOURCES = mln_morpho_closing_area.cc
+mln_morpho_Rd_SOURCES = mln_morpho_Rd.cc
+mln_morpho_complementation_SOURCES = mln_morpho_complementation.cc
+mln_morpho_opening_area_on_vertices_SOURCES = mln_morpho_opening_area_on_vertices.cc
+mln_morpho_thinning_SOURCES = mln_morpho_thinning.cc
+mln_morpho_contrast_SOURCES = mln_morpho_contrast.cc
+mln_morpho_opening_height_SOURCES = mln_morpho_opening_height.cc
+mln_morpho_erosion_SOURCES = mln_morpho_erosion.cc
+mln_morpho_essential_SOURCES = mln_morpho_essential.cc
+mln_morpho_elementary_gradient_SOURCES = mln_morpho_elementary_gradient.cc
+mln_morpho_elementary_erosion_SOURCES = mln_morpho_elementary_erosion.cc
+mln_morpho_elementary_essential_SOURCES = mln_morpho_elementary_essential.cc
+mln_morpho_elementary_all_SOURCES = mln_morpho_elementary_all.cc
+mln_morpho_elementary_like_ero_fun_SOURCES = mln_morpho_elementary_like_ero_fun.cc
+mln_morpho_elementary_dilation_SOURCES = mln_morpho_elementary_dilation.cc
+mln_morpho_elementary_opening_SOURCES = mln_morpho_elementary_opening.cc
+mln_morpho_elementary_closing_SOURCES = mln_morpho_elementary_closing.cc
+mln_morpho_elementary_like_ero_set_SOURCES = mln_morpho_elementary_like_ero_set.cc
+mln_morpho_elementary_laplacian_SOURCES = mln_morpho_elementary_laplacian.cc
+mln_morpho_elementary_gradient_internal_SOURCES = mln_morpho_elementary_gradient_internal.cc
+mln_morpho_elementary_gradient_external_SOURCES = mln_morpho_elementary_gradient_external.cc
+mln_morpho_elementary_top_hat_SOURCES = mln_morpho_elementary_top_hat.cc
+mln_morpho_includes_SOURCES = mln_morpho_includes.cc
+mln_morpho_thickening_SOURCES = mln_morpho_thickening.cc
+mln_morpho_opening_attribute_SOURCES = mln_morpho_opening_attribute.cc
+mln_morpho_closing_height_SOURCES = mln_morpho_closing_height.cc
+mln_morpho_line_gradient_SOURCES = mln_morpho_line_gradient.cc
+mln_morpho_thin_fit_SOURCES = mln_morpho_thin_fit.cc
+mln_morpho_opening_area_SOURCES = mln_morpho_opening_area.cc
+mln_morpho_all_SOURCES = mln_morpho_all.cc
+mln_morpho_hit_or_miss_SOURCES = mln_morpho_hit_or_miss.cc
+mln_morpho_internal_elementary_SOURCES = mln_morpho_internal_elementary.cc
+mln_morpho_plus_SOURCES = mln_morpho_plus.cc
+mln_morpho_dilation_SOURCES = mln_morpho_dilation.cc
+mln_morpho_closing_attribute_SOURCES = mln_morpho_closing_attribute.cc
+mln_morpho_opening_SOURCES = mln_morpho_opening.cc
+mln_morpho_min_SOURCES = mln_morpho_min.cc
+mln_morpho_minus_SOURCES = mln_morpho_minus.cc
+mln_morpho_closing_volume_SOURCES = mln_morpho_closing_volume.cc
+mln_morpho_general_SOURCES = mln_morpho_general.cc
+mln_morpho_skeleton_constrained_SOURCES = mln_morpho_skeleton_constrained.cc
+mln_morpho_tree_max_SOURCES = mln_morpho_tree_max.cc
+mln_morpho_tree_data_SOURCES = mln_morpho_tree_data.cc
+mln_morpho_tree_compute_parent_SOURCES = mln_morpho_tree_compute_parent.cc
+mln_morpho_tree_utils_SOURCES = mln_morpho_tree_utils.cc
+mln_morpho_tree_compute_attribute_image_SOURCES = mln_morpho_tree_compute_attribute_image.cc
+mln_morpho_tree_all_SOURCES = mln_morpho_tree_all.cc
+mln_morpho_rank_filter_SOURCES = mln_morpho_rank_filter.cc
+mln_morpho_closing_SOURCES = mln_morpho_closing.cc
+mln_morpho_laplacian_SOURCES = mln_morpho_laplacian.cc
+mln_morpho_top_hat_SOURCES = mln_morpho_top_hat.cc
+mln_accu_nil_SOURCES = mln_accu_nil.cc
+mln_accu_transform_stop_SOURCES = mln_accu_transform_stop.cc
+mln_accu_max_SOURCES = mln_accu_max.cc
+mln_accu_max_h_SOURCES = mln_accu_max_h.cc
+mln_accu_histo_SOURCES = mln_accu_histo.cc
+mln_accu_center_SOURCES = mln_accu_center.cc
+mln_accu_rank_bool_SOURCES = mln_accu_rank_bool.cc
+mln_accu_mean_SOURCES = mln_accu_mean.cc
+mln_accu_median_alt_SOURCES = mln_accu_median_alt.cc
+mln_accu_convolve_SOURCES = mln_accu_convolve.cc
+mln_accu_essential_SOURCES = mln_accu_essential.cc
+mln_accu_min_h_SOURCES = mln_accu_min_h.cc
+mln_accu_compute_SOURCES = mln_accu_compute.cc
+mln_accu_take_SOURCES = mln_accu_take.cc
+mln_accu_transform_directional_SOURCES = mln_accu_transform_directional.cc
+mln_accu_pair_SOURCES = mln_accu_pair.cc
+mln_accu_land_basic_SOURCES = mln_accu_land_basic.cc
+mln_accu_all_SOURCES = mln_accu_all.cc
+mln_accu_height_SOURCES = mln_accu_height.cc
+mln_accu_internal_base_SOURCES = mln_accu_internal_base.cc
+mln_accu_transform_diagonal_SOURCES = mln_accu_transform_diagonal.cc
+mln_accu_v_SOURCES = mln_accu_v.cc
+mln_accu_count_SOURCES = mln_accu_count.cc
+mln_accu_volume_SOURCES = mln_accu_volume.cc
+mln_accu_lor_basic_SOURCES = mln_accu_lor_basic.cc
+mln_accu_tuple_SOURCES = mln_accu_tuple.cc
+mln_accu_min_SOURCES = mln_accu_min.cc
+mln_accu_median_h_SOURCES = mln_accu_median_h.cc
+mln_accu_transform_snake_SOURCES = mln_accu_transform_snake.cc
+mln_accu_line_SOURCES = mln_accu_line.cc
+mln_accu_count_adjacent_vertices_SOURCES = mln_accu_count_adjacent_vertices.cc
+mln_accu_transform_SOURCES = mln_accu_transform.cc
+mln_accu_min_max_SOURCES = mln_accu_min_max.cc
+mln_accu_land_SOURCES = mln_accu_land.cc
+mln_accu_bbox_SOURCES = mln_accu_bbox.cc
+mln_accu_sum_SOURCES = mln_accu_sum.cc
+mln_accu_lor_SOURCES = mln_accu_lor.cc
+mln_accu_rank_high_quant_SOURCES = mln_accu_rank_high_quant.cc
+mln_accu_p_SOURCES = mln_accu_p.cc
+mln_accu_rank_SOURCES = mln_accu_rank.cc
+mln_accu_maj_h_SOURCES = mln_accu_maj_h.cc
+mln_registration_get_rtransf_SOURCES = mln_registration_get_rtransf.cc
+mln_registration_icp_SOURCES = mln_registration_icp.cc
+mln_registration_essential_SOURCES = mln_registration_essential.cc
+mln_registration_multiscale_SOURCES = mln_registration_multiscale.cc
+mln_registration_all_SOURCES = mln_registration_all.cc
+mln_registration_internal_rms_SOURCES = mln_registration_internal_rms.cc
+mln_registration_get_rot_SOURCES = mln_registration_get_rot.cc
+mln_registration_registration_SOURCES = mln_registration_registration.cc
+mln_all_SOURCES = mln_all.cc
+mln_pw_value_SOURCES = mln_pw_value.cc
+mln_pw_cst_SOURCES = mln_pw_cst.cc
+mln_pw_essential_SOURCES = mln_pw_essential.cc
+mln_pw_image_SOURCES = mln_pw_image.cc
+mln_pw_var_SOURCES = mln_pw_var.cc
+mln_pw_all_SOURCES = mln_pw_all.cc
+mln_binarization_essential_SOURCES = mln_binarization_essential.cc
+mln_binarization_includes_SOURCES = mln_binarization_includes.cc
+mln_binarization_all_SOURCES = mln_binarization_all.cc
+mln_binarization_binarization_SOURCES = mln_binarization_binarization.cc
+mln_binarization_threshold_SOURCES = mln_binarization_threshold.cc
+mln_linear_log_SOURCES = mln_linear_log.cc
+mln_linear_ch_convolve_SOURCES = mln_linear_ch_convolve.cc
+mln_linear_sobel_2d_SOURCES = mln_linear_sobel_2d.cc
+mln_linear_local_convolve_SOURCES = mln_linear_local_convolve.cc
+mln_linear_convolve_SOURCES = mln_linear_convolve.cc
+mln_linear_essential_SOURCES = mln_linear_essential.cc
+mln_linear_lap_SOURCES = mln_linear_lap.cc
+mln_linear_convolve_directional_SOURCES = mln_linear_convolve_directional.cc
+mln_linear_convolve_2x1d_SOURCES = mln_linear_convolve_2x1d.cc
+mln_linear_all_SOURCES = mln_linear_all.cc
+mln_linear_gaussian_SOURCES = mln_linear_gaussian.cc
+mln_essential_1d_SOURCES = mln_essential_1d.cc
+mln_essential_2d_SOURCES = mln_essential_2d.cc
+mln_essential_routine_SOURCES = mln_essential_routine.cc
+mln_essential_3d_SOURCES = mln_essential_3d.cc
+mln_metal_vec_SOURCES = mln_metal_vec.cc
+mln_metal_is_not_ref_SOURCES = mln_metal_is_not_ref.cc
+mln_metal_unconst_SOURCES = mln_metal_unconst.cc
+mln_metal_array3d_SOURCES = mln_metal_array3d.cc
+mln_metal_abort_SOURCES = mln_metal_abort.cc
+mln_metal_has_neighborhood_SOURCES = mln_metal_has_neighborhood.cc
+mln_metal_ref_SOURCES = mln_metal_ref.cc
+mln_metal_is_const_SOURCES = mln_metal_is_const.cc
+mln_metal_same_point_SOURCES = mln_metal_same_point.cc
+mln_metal_int_SOURCES = mln_metal_int.cc
+mln_metal_is_SOURCES = mln_metal_is.cc
+mln_metal_essential_SOURCES = mln_metal_essential.cc
+mln_metal_unref_SOURCES = mln_metal_unref.cc
+mln_metal_is_a_SOURCES = mln_metal_is_a.cc
+mln_metal_not_equal_SOURCES = mln_metal_not_equal.cc
+mln_metal_none_SOURCES = mln_metal_none.cc
+mln_metal_is_unqualif_SOURCES = mln_metal_is_unqualif.cc
+mln_metal_is_not_SOURCES = mln_metal_is_not.cc
+mln_metal_unptr_SOURCES = mln_metal_unptr.cc
+mln_metal_array1d_SOURCES = mln_metal_array1d.cc
+mln_metal_if_SOURCES = mln_metal_if.cc
+mln_metal_is_ref_SOURCES = mln_metal_is_ref.cc
+mln_metal_is_not_a_SOURCES = mln_metal_is_not_a.cc
+mln_metal_all_SOURCES = mln_metal_all.cc
+mln_metal_same_coord_SOURCES = mln_metal_same_coord.cc
+mln_metal_ands_SOURCES = mln_metal_ands.cc
+mln_metal_array2d_SOURCES = mln_metal_array2d.cc
+mln_metal_templated_by_SOURCES = mln_metal_templated_by.cc
+mln_metal_ret_SOURCES = mln_metal_ret.cc
+mln_metal_is_not_const_SOURCES = mln_metal_is_not_const.cc
+mln_metal_math_root_SOURCES = mln_metal_math_root.cc
+mln_metal_math_max_SOURCES = mln_metal_math_max.cc
+mln_metal_math_all_SOURCES = mln_metal_math_all.cc
+mln_metal_math_pow_SOURCES = mln_metal_math_pow.cc
+mln_metal_math_sqrt_SOURCES = mln_metal_math_sqrt.cc
+mln_metal_bexpr_SOURCES = mln_metal_bexpr.cc
+mln_metal_bool_SOURCES = mln_metal_bool.cc
+mln_metal_fix_return_SOURCES = mln_metal_fix_return.cc
+mln_metal_converts_to_SOURCES = mln_metal_converts_to.cc
+mln_metal_goes_to_SOURCES = mln_metal_goes_to.cc
+mln_metal_equal_SOURCES = mln_metal_equal.cc
+mln_metal_unqualif_SOURCES = mln_metal_unqualif.cc
+mln_metal_mat_SOURCES = mln_metal_mat.cc
+mln_metal_array_SOURCES = mln_metal_array.cc
+mln_metal_const_SOURCES = mln_metal_const.cc
+mln_set_sym_diff_SOURCES = mln_set_sym_diff.cc
+mln_set_essential_SOURCES = mln_set_essential.cc
+mln_set_compute_SOURCES = mln_set_compute.cc
+mln_set_has_SOURCES = mln_set_has.cc
+mln_set_inter_SOURCES = mln_set_inter.cc
+mln_set_all_SOURCES = mln_set_all.cc
+mln_set_diff_SOURCES = mln_set_diff.cc
+mln_set_uni_SOURCES = mln_set_uni.cc
+mln_set_get_SOURCES = mln_set_get.cc
+mln_convert_to_p_array_SOURCES = mln_convert_to_p_array.cc
+mln_convert_to_fun_SOURCES = mln_convert_to_fun.cc
+mln_convert_to_SOURCES = mln_convert_to.cc
+mln_convert_to_image_SOURCES = mln_convert_to_image.cc
+mln_convert_to_p_set_SOURCES = mln_convert_to_p_set.cc
+mln_convert_impl_from_image_to_site_set_SOURCES = mln_convert_impl_from_image_to_site_set.cc
+mln_convert_impl_all_SOURCES = mln_convert_impl_all.cc
+mln_convert_impl_from_value_to_value_SOURCES = mln_convert_impl_from_value_to_value.cc
+mln_convert_essential_SOURCES = mln_convert_essential.cc
+mln_convert_all_SOURCES = mln_convert_all.cc
+mln_convert_to_upper_window_SOURCES = mln_convert_to_upper_window.cc
+mln_convert_to_dpoint_SOURCES = mln_convert_to_dpoint.cc
+mln_convert_to_rgb_SOURCES = mln_convert_to_rgb.cc
+mln_convert_from_to_SOURCES = mln_convert_from_to.cc
+mln_convert_to_window_SOURCES = mln_convert_to_window.cc
+mln_geom_nslis_SOURCES = mln_geom_nslis.cc
+mln_geom_size2d_SOURCES = mln_geom_size2d.cc
+mln_geom_max_row_SOURCES = mln_geom_max_row.cc
+mln_geom_size3d_SOURCES = mln_geom_size3d.cc
+mln_geom_seeds2tiling_roundness_SOURCES = mln_geom_seeds2tiling_roundness.cc
+mln_geom_delta_SOURCES = mln_geom_delta.cc
+mln_geom_essential_SOURCES = mln_geom_essential.cc
+mln_geom_max_ind_SOURCES = mln_geom_max_ind.cc
+mln_geom_min_col_SOURCES = mln_geom_min_col.cc
+mln_geom_complex_geometry_SOURCES = mln_geom_complex_geometry.cc
+mln_geom_nrows_SOURCES = mln_geom_nrows.cc
+mln_geom_seeds2tiling_SOURCES = mln_geom_seeds2tiling.cc
+mln_geom_min_sli_SOURCES = mln_geom_min_sli.cc
+mln_geom_nsites_SOURCES = mln_geom_nsites.cc
+mln_geom_min_ind_SOURCES = mln_geom_min_ind.cc
+mln_geom_ninds_SOURCES = mln_geom_ninds.cc
+mln_geom_resize_SOURCES = mln_geom_resize.cc
+mln_geom_min_row_SOURCES = mln_geom_min_row.cc
+mln_geom_all_SOURCES = mln_geom_all.cc
+mln_geom_chamfer_SOURCES = mln_geom_chamfer.cc
+mln_geom_ncols_SOURCES = mln_geom_ncols.cc
+mln_geom_pmin_pmax_SOURCES = mln_geom_pmin_pmax.cc
+mln_geom_size1d_SOURCES = mln_geom_size1d.cc
+mln_geom_max_sli_SOURCES = mln_geom_max_sli.cc
+mln_geom_bbox_SOURCES = mln_geom_bbox.cc
+mln_geom_max_col_SOURCES = mln_geom_max_col.cc
+mln_literal_black_SOURCES = mln_literal_black.cc
+mln_literal_zero_SOURCES = mln_literal_zero.cc
+mln_literal_essential_SOURCES = mln_literal_essential.cc
+mln_literal_grays_SOURCES = mln_literal_grays.cc
+mln_literal_ops_SOURCES = mln_literal_ops.cc
+mln_literal_all_SOURCES = mln_literal_all.cc
+mln_literal_white_SOURCES = mln_literal_white.cc
+mln_literal_one_SOURCES = mln_literal_one.cc
+mln_literal_colors_SOURCES = mln_literal_colors.cc
+mln_literal_origin_SOURCES = mln_literal_origin.cc
+mln_level_compare_SOURCES = mln_level_compare.cc
+mln_level_saturate_SOURCES = mln_level_saturate.cc
+mln_level_fill_with_image_SOURCES = mln_level_fill_with_image.cc
+mln_level_was_median_SOURCES = mln_level_was_median.cc
+mln_level_convert_SOURCES = mln_level_convert.cc
+mln_level_sort_psites_SOURCES = mln_level_sort_psites.cc
+mln_level_essential_SOURCES = mln_level_essential.cc
+mln_level_fill_SOURCES = mln_level_fill.cc
+mln_level_compute_SOURCES = mln_level_compute.cc
+mln_level_replace_SOURCES = mln_level_replace.cc
+mln_level_approx_essential_SOURCES = mln_level_approx_essential.cc
+mln_level_approx_all_SOURCES = mln_level_approx_all.cc
+mln_level_approx_median_SOURCES = mln_level_approx_median.cc
+mln_level_stretch_SOURCES = mln_level_stretch.cc
+mln_level_paste_SOURCES = mln_level_paste.cc
+mln_level_transform_inplace_SOURCES = mln_level_transform_inplace.cc
+mln_level_to_enc_SOURCES = mln_level_to_enc.cc
+mln_level_apply_SOURCES = mln_level_apply.cc
+mln_level_all_SOURCES = mln_level_all.cc
+mln_level_update_SOURCES = mln_level_update.cc
+mln_level_median_SOURCES = mln_level_median.cc
+mln_level_memset__SOURCES = mln_level_memset_.cc
+mln_level_assign_SOURCES = mln_level_assign.cc
+mln_level_memcpy__SOURCES = mln_level_memcpy_.cc
+mln_level_fast_median_SOURCES = mln_level_fast_median.cc
+mln_level_transform_SOURCES = mln_level_transform.cc
+mln_level_abs_SOURCES = mln_level_abs.cc
+mln_level_naive_essential_SOURCES = mln_level_naive_essential.cc
+mln_level_naive_all_SOURCES = mln_level_naive_all.cc
+mln_level_naive_median_SOURCES = mln_level_naive_median.cc
+mln_level_fill_with_value_SOURCES = mln_level_fill_with_value.cc
+mln_math_jacobi_SOURCES = mln_math_jacobi.cc
+mln_math_max_SOURCES = mln_math_max.cc
+mln_math_round_sat_SOURCES = mln_math_round_sat.cc
+mln_math_round_SOURCES = mln_math_round.cc
+mln_math_essential_SOURCES = mln_math_essential.cc
+mln_math_sqr_SOURCES = mln_math_sqr.cc
+mln_math_all_SOURCES = mln_math_all.cc
+mln_math_sign_SOURCES = mln_math_sign.cc
+mln_math_min_SOURCES = mln_math_min.cc
+mln_math_abs_SOURCES = mln_math_abs.cc
+mln_math_diff_abs_SOURCES = mln_math_diff_abs.cc
+mln_math_sqrt_SOURCES = mln_math_sqrt.cc
+mln_norm_l2_SOURCES = mln_norm_l2.cc
+mln_norm_linfty_SOURCES = mln_norm_linfty.cc
+mln_norm_essential_SOURCES = mln_norm_essential.cc
+mln_norm_all_SOURCES = mln_norm_all.cc
+mln_norm_l1_SOURCES = mln_norm_l1.cc
+mln_logical_not_SOURCES = mln_logical_not.cc
+mln_logical_or_SOURCES = mln_logical_or.cc
+mln_logical_and_SOURCES = mln_logical_and.cc
+mln_logical_xor_SOURCES = mln_logical_xor.cc
+mln_logical_essential_SOURCES = mln_logical_essential.cc
+mln_logical_includes_SOURCES = mln_logical_includes.cc
+mln_logical_all_SOURCES = mln_logical_all.cc
+mln_logical_and_not_SOURCES = mln_logical_and_not.cc
+mln_draw_essential_SOURCES = mln_draw_essential.cc
+mln_draw_box_SOURCES = mln_draw_box.cc
+mln_draw_all_SOURCES = mln_draw_all.cc
+mln_draw_plot_SOURCES = mln_draw_plot.cc
+mln_draw_line_SOURCES = mln_draw_line.cc
+mln_value_int_s16_SOURCES = mln_value_int_s16.cc
+mln_value_cast_SOURCES = mln_value_cast.cc
+mln_value_builtin_floatings_SOURCES = mln_value_builtin_floatings.cc
+mln_value_builtin_promotions_SOURCES = mln_value_builtin_promotions.cc
+mln_value_builtin_integers_SOURCES = mln_value_builtin_integers.cc
+mln_value_builtin_essential_SOURCES = mln_value_builtin_essential.cc
+mln_value_builtin_ops_SOURCES = mln_value_builtin_ops.cc
+mln_value_builtin_all_SOURCES = mln_value_builtin_all.cc
+mln_value_builtin_symbolics_SOURCES = mln_value_builtin_symbolics.cc
+mln_value_label_8_SOURCES = mln_value_label_8.cc
+mln_value_int_s_SOURCES = mln_value_int_s.cc
+mln_value_rgb_SOURCES = mln_value_rgb.cc
+mln_value_viter_SOURCES = mln_value_viter.cc
+mln_value_lut_vec_SOURCES = mln_value_lut_vec.cc
+mln_value_set_SOURCES = mln_value_set.cc
+mln_value_hsi_SOURCES = mln_value_hsi.cc
+mln_value_int_u16_SOURCES = mln_value_int_u16.cc
+mln_value_glf_SOURCES = mln_value_glf.cc
+mln_value_stack_SOURCES = mln_value_stack.cc
+mln_value_gl8_SOURCES = mln_value_gl8.cc
+mln_value_essential_SOURCES = mln_value_essential.cc
+mln_value_graylevel_f_SOURCES = mln_value_graylevel_f.cc
+mln_value_super_value_SOURCES = mln_value_super_value.cc
+mln_value_equiv_SOURCES = mln_value_equiv.cc
+mln_value_rgb16_SOURCES = mln_value_rgb16.cc
+mln_value_float01_16_SOURCES = mln_value_float01_16.cc
+mln_value_rgb8_SOURCES = mln_value_rgb8.cc
+mln_value_int_s32_SOURCES = mln_value_int_s32.cc
+mln_value_int_s8_SOURCES = mln_value_int_s8.cc
+mln_value_int_u8_SOURCES = mln_value_int_u8.cc
+mln_value_int_u32_SOURCES = mln_value_int_u32.cc
+mln_value_float01_SOURCES = mln_value_float01.cc
+mln_value_int_u_SOURCES = mln_value_int_u.cc
+mln_value_ops_SOURCES = mln_value_ops.cc
+mln_value_interval_SOURCES = mln_value_interval.cc
+mln_value_int_u_sat_SOURCES = mln_value_int_u_sat.cc
+mln_value_all_SOURCES = mln_value_all.cc
+mln_value_internal_encoding_SOURCES = mln_value_internal_encoding.cc
+mln_value_internal_convert_SOURCES = mln_value_internal_convert.cc
+mln_value_internal_gray_f_SOURCES = mln_value_internal_gray_f.cc
+mln_value_internal_essential_SOURCES = mln_value_internal_essential.cc
+mln_value_internal_gray__SOURCES = mln_value_internal_gray_.cc
+mln_value_internal_integer_SOURCES = mln_value_internal_integer.cc
+mln_value_internal_value_like_SOURCES = mln_value_internal_value_like.cc
+mln_value_internal_all_SOURCES = mln_value_internal_all.cc
+mln_value_internal_iterable_set_SOURCES = mln_value_internal_iterable_set.cc
+mln_value_proxy_SOURCES = mln_value_proxy.cc
+mln_value_sign_SOURCES = mln_value_sign.cc
+mln_value_gl16_SOURCES = mln_value_gl16.cc
+mln_value_aliases_SOURCES = mln_value_aliases.cc
+mln_value_float01_f_SOURCES = mln_value_float01_f.cc
+mln_value_float01_8_SOURCES = mln_value_float01_8.cc
+mln_value_concept_structured_SOURCES = mln_value_concept_structured.cc
+mln_value_concept_vectorial_SOURCES = mln_value_concept_vectorial.cc
+mln_value_concept_data_SOURCES = mln_value_concept_data.cc
+mln_value_concept_built_in_SOURCES = mln_value_concept_built_in.cc
+mln_value_concept_essential_SOURCES = mln_value_concept_essential.cc
+mln_value_concept_integer_SOURCES = mln_value_concept_integer.cc
+mln_value_concept_floating_SOURCES = mln_value_concept_floating.cc
+mln_value_concept_all_SOURCES = mln_value_concept_all.cc
+mln_value_concept_scalar_SOURCES = mln_value_concept_scalar.cc
+mln_value_concept_symbolic_SOURCES = mln_value_concept_symbolic.cc
+mln_value_label_16_SOURCES = mln_value_label_16.cc
+mln_value_label_SOURCES = mln_value_label.cc
+mln_value_float01__SOURCES = mln_value_float01_.cc
+mln_value_other_SOURCES = mln_value_other.cc
+mln_value_scalar_SOURCES = mln_value_scalar.cc
+mln_value_graylevel_SOURCES = mln_value_graylevel.cc
+mln_tag_skeleton_SOURCES = mln_tag_skeleton.cc
+mln_tag_init_SOURCES = mln_tag_init.cc
+mln_tag_essential_SOURCES = mln_tag_essential.cc
+mln_tag_all_SOURCES = mln_tag_all.cc
+mln_labeling_regional_maxima_SOURCES = mln_labeling_regional_maxima.cc
mln_labeling_background_SOURCES = mln_labeling_background.cc
-mln_labeling_relabel_SOURCES = mln_labeling_relabel.cc
-mln_labeling_all_SOURCES = mln_labeling_all.cc
mln_labeling_level_SOURCES = mln_labeling_level.cc
mln_labeling_flat_zones_SOURCES = mln_labeling_flat_zones.cc
-mln_labeling_foreground_SOURCES = mln_labeling_foreground.cc
-mln_labeling_regional_maxima_SOURCES = mln_labeling_regional_maxima.cc
-mln_labeling_compute_SOURCES = mln_labeling_compute.cc
mln_labeling_regional_minima_SOURCES = mln_labeling_regional_minima.cc
mln_labeling_essential_SOURCES = mln_labeling_essential.cc
-mln_test_predicate_SOURCES = mln_test_predicate.cc
-mln_test_all_SOURCES = mln_test_all.cc
-mln_test_positive_SOURCES = mln_test_positive.cc
-mln_test_essential_SOURCES = mln_test_essential.cc
-mln_transform_distance_geodesic_SOURCES = mln_transform_distance_geodesic.cc
-mln_transform_internal_all_SOURCES = mln_transform_internal_all.cc
-mln_transform_internal_distance_functor_SOURCES = mln_transform_internal_distance_functor.cc
-mln_transform_internal_influence_zone_functor_SOURCES = mln_transform_internal_influence_zone_functor.cc
-mln_transform_all_SOURCES = mln_transform_all.cc
-mln_transform_influence_zone_front_SOURCES = mln_transform_influence_zone_front.cc
-mln_transform_distance_front_SOURCES = mln_transform_distance_front.cc
-mln_transform_influence_zone_geodesic_SOURCES = mln_transform_influence_zone_geodesic.cc
-mln_transform_essential_SOURCES = mln_transform_essential.cc
-mln_arith_includes_SOURCES = mln_arith_includes.cc
-mln_arith_plus_SOURCES = mln_arith_plus.cc
-mln_arith_all_SOURCES = mln_arith_all.cc
-mln_arith_times_SOURCES = mln_arith_times.cc
-mln_arith_diff_abs_SOURCES = mln_arith_diff_abs.cc
-mln_arith_minus_SOURCES = mln_arith_minus.cc
-mln_arith_min_SOURCES = mln_arith_min.cc
-mln_arith_revert_SOURCES = mln_arith_revert.cc
-mln_arith_essential_SOURCES = mln_arith_essential.cc
-mln_io_pgm_load_SOURCES = mln_io_pgm_load.cc
-mln_io_pgm_all_SOURCES = mln_io_pgm_all.cc
-mln_io_pgm_save_SOURCES = mln_io_pgm_save.cc
-mln_io_ppm_load_SOURCES = mln_io_ppm_load.cc
-mln_io_ppm_all_SOURCES = mln_io_ppm_all.cc
-mln_io_ppm_save_SOURCES = mln_io_ppm_save.cc
-mln_io_pfm_load_SOURCES = mln_io_pfm_load.cc
-mln_io_pfm_all_SOURCES = mln_io_pfm_all.cc
-mln_io_pfm_save_SOURCES = mln_io_pfm_save.cc
-mln_io_all_SOURCES = mln_io_all.cc
-mln_io_pbm_load_SOURCES = mln_io_pbm_load.cc
-mln_io_pbm_all_SOURCES = mln_io_pbm_all.cc
-mln_io_pbm_save_SOURCES = mln_io_pbm_save.cc
-mln_io_pnm_max_component_SOURCES = mln_io_pnm_max_component.cc
-mln_io_pnm_load_SOURCES = mln_io_pnm_load.cc
-mln_io_pnm_load_header_SOURCES = mln_io_pnm_load_header.cc
-mln_io_pnm_all_SOURCES = mln_io_pnm_all.cc
-mln_io_pnm_macros_SOURCES = mln_io_pnm_macros.cc
-mln_io_pnm_save_SOURCES = mln_io_pnm_save.cc
-mln_io_pnm_save_header_SOURCES = mln_io_pnm_save_header.cc
-mln_io_txt_all_SOURCES = mln_io_txt_all.cc
-mln_io_txt_save_SOURCES = mln_io_txt_save.cc
-mln_io_abort_SOURCES = mln_io_abort.cc
-mln_io_fits_load_SOURCES = mln_io_fits_load.cc
-mln_io_fits_all_SOURCES = mln_io_fits_all.cc
-mln_io_off_load_SOURCES = mln_io_off_load.cc
-mln_io_off_all_SOURCES = mln_io_off_all.cc
-mln_io_off_save_SOURCES = mln_io_off_save.cc
-mln_io_essential_SOURCES = mln_io_essential.cc
-mln_logical_includes_SOURCES = mln_logical_includes.cc
-mln_logical_and_not_SOURCES = mln_logical_and_not.cc
-mln_logical_xor_SOURCES = mln_logical_xor.cc
-mln_logical_all_SOURCES = mln_logical_all.cc
-mln_logical_not_SOURCES = mln_logical_not.cc
-mln_logical_and_SOURCES = mln_logical_and.cc
-mln_logical_or_SOURCES = mln_logical_or.cc
-mln_logical_essential_SOURCES = mln_logical_essential.cc
-mln_norm_all_SOURCES = mln_norm_all.cc
-mln_norm_l1_SOURCES = mln_norm_l1.cc
-mln_norm_l2_SOURCES = mln_norm_l2.cc
-mln_norm_linfty_SOURCES = mln_norm_linfty.cc
-mln_norm_essential_SOURCES = mln_norm_essential.cc
-mln_debug_iota_SOURCES = mln_debug_iota.cc
-mln_debug_all_SOURCES = mln_debug_all.cc
-mln_debug_println_with_border_SOURCES = mln_debug_println_with_border.cc
-mln_debug_colorize_SOURCES = mln_debug_colorize.cc
-mln_debug_draw_graph_SOURCES = mln_debug_draw_graph.cc
-mln_debug_put_word_SOURCES = mln_debug_put_word.cc
-mln_debug_format_SOURCES = mln_debug_format.cc
-mln_debug_println_SOURCES = mln_debug_println.cc
-mln_debug_essential_SOURCES = mln_debug_essential.cc
-mln_estim_min_max_SOURCES = mln_estim_min_max.cc
-mln_estim_all_SOURCES = mln_estim_all.cc
-mln_estim_sum_SOURCES = mln_estim_sum.cc
-mln_estim_mean_SOURCES = mln_estim_mean.cc
-mln_estim_essential_SOURCES = mln_estim_essential.cc
-mln_set_uni_SOURCES = mln_set_uni.cc
-mln_set_inter_SOURCES = mln_set_inter.cc
-mln_set_all_SOURCES = mln_set_all.cc
-mln_set_get_SOURCES = mln_set_get.cc
-mln_set_sym_diff_SOURCES = mln_set_sym_diff.cc
-mln_set_has_SOURCES = mln_set_has.cc
-mln_set_diff_SOURCES = mln_set_diff.cc
-mln_set_compute_SOURCES = mln_set_compute.cc
-mln_set_essential_SOURCES = mln_set_essential.cc
-mln_border_adjust_SOURCES = mln_border_adjust.cc
-mln_border_duplicate_SOURCES = mln_border_duplicate.cc
-mln_border_find_SOURCES = mln_border_find.cc
-mln_border_thickness_SOURCES = mln_border_thickness.cc
-mln_border_all_SOURCES = mln_border_all.cc
-mln_border_mirror_SOURCES = mln_border_mirror.cc
-mln_border_get_SOURCES = mln_border_get.cc
-mln_border_equalize_SOURCES = mln_border_equalize.cc
-mln_border_resize_SOURCES = mln_border_resize.cc
-mln_border_fill_SOURCES = mln_border_fill.cc
-mln_border_essential_SOURCES = mln_border_essential.cc
-mln_subsampling_gaussian_subsampling_SOURCES = mln_subsampling_gaussian_subsampling.cc
-mln_subsampling_all_SOURCES = mln_subsampling_all.cc
-mln_subsampling_subsampling_SOURCES = mln_subsampling_subsampling.cc
-mln_subsampling_essential_SOURCES = mln_subsampling_essential.cc
+mln_labeling_compute_SOURCES = mln_labeling_compute.cc
+mln_labeling_blobs_SOURCES = mln_labeling_blobs.cc
+mln_labeling_all_SOURCES = mln_labeling_all.cc
+mln_labeling_foreground_SOURCES = mln_labeling_foreground.cc
+mln_labeling_relabel_SOURCES = mln_labeling_relabel.cc
TESTS = $(check_PROGRAMS)
Index: tests/unit_test/mln_binarization_includes.cc
--- tests/unit_test/mln_binarization_includes.cc (revision 3032)
+++ tests/unit_test/mln_binarization_includes.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/binarization/includes.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/binarization/includes.hh>
#include <mln/binarization/includes.hh>
int main()
Index: tests/unit_test/mln_accu_max.cc
--- tests/unit_test/mln_accu_max.cc (revision 3032)
+++ tests/unit_test/mln_accu_max.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/max.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/max.hh>
#include <mln/accu/max.hh>
int main()
Index: tests/unit_test/mln_morpho_thick_miss.cc
--- tests/unit_test/mln_morpho_thick_miss.cc (revision 3032)
+++ tests/unit_test/mln_morpho_thick_miss.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/thick_miss.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/thick_miss.hh>
#include <mln/morpho/thick_miss.hh>
int main()
Index: tests/unit_test/mln_transform_essential.cc
--- tests/unit_test/mln_transform_essential.cc (revision 3032)
+++ tests/unit_test/mln_transform_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/transform/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/transform/essential.hh>
#include <mln/transform/essential.hh>
int main()
Index: tests/unit_test/mln_trait_op_ord.cc
--- tests/unit_test/mln_trait_op_ord.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_ord.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/ord.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/ord.hh>
#include <mln/trait/op/ord.hh>
int main()
Index: tests/unit_test/mln_fun_x2p_closest_point.cc
--- tests/unit_test/mln_fun_x2p_closest_point.cc (revision 3032)
+++ tests/unit_test/mln_fun_x2p_closest_point.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/x2p/closest_point.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/x2p/closest_point.hh>
#include <mln/fun/x2p/closest_point.hh>
int main()
Index: tests/unit_test/mln_topo_algebraic_face.cc
--- tests/unit_test/mln_topo_algebraic_face.cc (revision 3032)
+++ tests/unit_test/mln_topo_algebraic_face.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/algebraic_face.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/algebraic_face.hh>
#include <mln/topo/algebraic_face.hh>
int main()
Index: tests/unit_test/mln_accu_lor_basic.cc
--- tests/unit_test/mln_accu_lor_basic.cc (revision 3032)
+++ tests/unit_test/mln_accu_lor_basic.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/lor_basic.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/lor_basic.hh>
#include <mln/accu/lor_basic.hh>
int main()
Index: tests/unit_test/mln_core_concept_regular_grid.cc
--- tests/unit_test/mln_core_concept_regular_grid.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_regular_grid.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/regular_grid.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/regular_grid.hh>
#include <mln/core/concept/regular_grid.hh>
int main()
Index: tests/unit_test/mln_fun_l2l_all.cc
--- tests/unit_test/mln_fun_l2l_all.cc (revision 3032)
+++ tests/unit_test/mln_fun_l2l_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/l2l/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/l2l/all.hh>
#include <mln/fun/l2l/all.hh>
int main()
Index: tests/unit_test/mln_fun_c.cc
--- tests/unit_test/mln_fun_c.cc (revision 3032)
+++ tests/unit_test/mln_fun_c.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/c.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/c.hh>
#include <mln/fun/c.hh>
int main()
Index: tests/unit_test/mln_debug_colorize.cc
--- tests/unit_test/mln_debug_colorize.cc (revision 3032)
+++ tests/unit_test/mln_debug_colorize.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/debug/colorize.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/debug/colorize.hh>
#include <mln/debug/colorize.hh>
int main()
Index: tests/unit_test/mln_metal_same_coord.cc
--- tests/unit_test/mln_metal_same_coord.cc (revision 3032)
+++ tests/unit_test/mln_metal_same_coord.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/same_coord.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/same_coord.hh>
#include <mln/metal/same_coord.hh>
int main()
Index: tests/unit_test/mln_core_alias_box1d.cc
--- tests/unit_test/mln_core_alias_box1d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_box1d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/box1d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/box1d.hh>
#include <mln/core/alias/box1d.hh>
int main()
Index: tests/unit_test/mln_io_pnm_save.cc
--- tests/unit_test/mln_io_pnm_save.cc (revision 3032)
+++ tests/unit_test/mln_io_pnm_save.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pnm/save.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pnm/save.hh>
#include <mln/io/pnm/save.hh>
int main()
Index: tests/unit_test/mln_logical_includes.cc
--- tests/unit_test/mln_logical_includes.cc (revision 3032)
+++ tests/unit_test/mln_logical_includes.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/logical/includes.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/logical/includes.hh>
#include <mln/logical/includes.hh>
int main()
Index: tests/unit_test/mln_trait_image_print.cc
--- tests/unit_test/mln_trait_image_print.cc (revision 3032)
+++ tests/unit_test/mln_trait_image_print.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/image/print.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/image/print.hh>
#include <mln/trait/image/print.hh>
int main()
Index: tests/unit_test/mln_linear_all.cc
--- tests/unit_test/mln_linear_all.cc (revision 3032)
+++ tests/unit_test/mln_linear_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/linear/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/linear/all.hh>
#include <mln/linear/all.hh>
int main()
Index: tests/unit_test/mln_trait_op_postdec.cc
--- tests/unit_test/mln_trait_op_postdec.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_postdec.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/postdec.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/postdec.hh>
#include <mln/trait/op/postdec.hh>
int main()
Index: tests/unit_test/mln_metal_is_const.cc
--- tests/unit_test/mln_metal_is_const.cc (revision 3032)
+++ tests/unit_test/mln_metal_is_const.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/is_const.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/is_const.hh>
#include <mln/metal/is_const.hh>
int main()
Index: tests/unit_test/mln_morpho_tree_utils.cc
--- tests/unit_test/mln_morpho_tree_utils.cc (revision 3032)
+++ tests/unit_test/mln_morpho_tree_utils.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/tree/utils.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/tree/utils.hh>
#include <mln/morpho/tree/utils.hh>
int main()
Index: tests/unit_test/mln_core_neighb.cc
--- tests/unit_test/mln_core_neighb.cc (revision 3032)
+++ tests/unit_test/mln_core_neighb.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/neighb.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/neighb.hh>
#include <mln/core/neighb.hh>
int main()
Index: tests/unit_test/mln_algebra_essential.cc
--- tests/unit_test/mln_algebra_essential.cc (revision 3032)
+++ tests/unit_test/mln_algebra_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/algebra/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/algebra/essential.hh>
#include <mln/algebra/essential.hh>
int main()
Index: tests/unit_test/mln_core_concept_image.cc
--- tests/unit_test/mln_core_concept_image.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/image.hh>
#include <mln/core/concept/image.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_faces.cc
--- tests/unit_test/mln_core_site_set_p_faces.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_faces.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_faces.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_faces.hh>
#include <mln/core/site_set/p_faces.hh>
int main()
Index: tests/unit_test/mln_core_alias_point2d_h.cc
--- tests/unit_test/mln_core_alias_point2d_h.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_point2d_h.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/point2d_h.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/point2d_h.hh>
#include <mln/core/alias/point2d_h.hh>
int main()
Index: tests/unit_test/mln_util_branch_iter_ind.cc
--- tests/unit_test/mln_util_branch_iter_ind.cc (revision 3032)
+++ tests/unit_test/mln_util_branch_iter_ind.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/branch_iter_ind.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/branch_iter_ind.hh>
#include <mln/util/branch_iter_ind.hh>
int main()
Index: tests/unit_test/mln_fun_vv2v_vec.cc
--- tests/unit_test/mln_fun_vv2v_vec.cc (revision 3032)
+++ tests/unit_test/mln_fun_vv2v_vec.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/vv2v/vec.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/vv2v/vec.hh>
#include <mln/fun/vv2v/vec.hh>
int main()
Index: tests/unit_test/mln_topo_is_simple_2d.cc
--- tests/unit_test/mln_topo_is_simple_2d.cc (revision 3032)
+++ tests/unit_test/mln_topo_is_simple_2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/is_simple_2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/is_simple_2d.hh>
#include <mln/topo/is_simple_2d.hh>
int main()
Index: tests/unit_test/mln_io_ppm_all.cc
--- tests/unit_test/mln_io_ppm_all.cc (revision 3032)
+++ tests/unit_test/mln_io_ppm_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/ppm/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/ppm/all.hh>
#include <mln/io/ppm/all.hh>
int main()
Index: tests/unit_test/mln_util_multi_site.cc
--- tests/unit_test/mln_util_multi_site.cc (revision 3032)
+++ tests/unit_test/mln_util_multi_site.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/multi_site.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/multi_site.hh>
#include <mln/util/multi_site.hh>
int main()
Index: tests/unit_test/mln_display_essential.cc
--- tests/unit_test/mln_display_essential.cc (revision 3032)
+++ tests/unit_test/mln_display_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/display/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/display/essential.hh>
#include <mln/display/essential.hh>
int main()
Index: tests/unit_test/mln_morpho_elementary_dilation.cc
--- tests/unit_test/mln_morpho_elementary_dilation.cc (revision 3032)
+++ tests/unit_test/mln_morpho_elementary_dilation.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/elementary/dilation.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/elementary/dilation.hh>
#include <mln/morpho/elementary/dilation.hh>
int main()
Index: tests/unit_test/mln_fun_v2v_all.cc
--- tests/unit_test/mln_fun_v2v_all.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2v_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2v/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2v/all.hh>
#include <mln/fun/v2v/all.hh>
int main()
Index: tests/unit_test/mln_core_alias_p_runs2d.cc
--- tests/unit_test/mln_core_alias_p_runs2d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_p_runs2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/p_runs2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/p_runs2d.hh>
#include <mln/core/alias/p_runs2d.hh>
int main()
Index: tests/unit_test/mln_accu_nil.cc
--- tests/unit_test/mln_accu_nil.cc (revision 3032)
+++ tests/unit_test/mln_accu_nil.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/nil.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/nil.hh>
#include <mln/accu/nil.hh>
int main()
Index: tests/unit_test/mln_level_memcpy_.cc
--- tests/unit_test/mln_level_memcpy_.cc (revision 3032)
+++ tests/unit_test/mln_level_memcpy_.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/memcpy_.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/memcpy_.hh>
#include <mln/level/memcpy_.hh>
int main()
Index: tests/unit_test/mln_make_w_window2d.cc
--- tests/unit_test/mln_make_w_window2d.cc (revision 3032)
+++ tests/unit_test/mln_make_w_window2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/w_window2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/w_window2d.hh>
#include <mln/make/w_window2d.hh>
int main()
Index: tests/unit_test/mln_fun_x2x_all.cc
--- tests/unit_test/mln_fun_x2x_all.cc (revision 3032)
+++ tests/unit_test/mln_fun_x2x_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/x2x/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/x2x/all.hh>
#include <mln/fun/x2x/all.hh>
int main()
Index: tests/unit_test/mln_level_naive_all.cc
--- tests/unit_test/mln_level_naive_all.cc (revision 3032)
+++ tests/unit_test/mln_level_naive_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/naive/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/naive/all.hh>
#include <mln/level/naive/all.hh>
int main()
Index: tests/unit_test/mln_trace_warning.cc
--- tests/unit_test/mln_trace_warning.cc (revision 3032)
+++ tests/unit_test/mln_trace_warning.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trace/warning.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trace/warning.hh>
#include <mln/trace/warning.hh>
int main()
Index: tests/unit_test/mln_debug_draw_graph.cc
--- tests/unit_test/mln_debug_draw_graph.cc (revision 3032)
+++ tests/unit_test/mln_debug_draw_graph.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/debug/draw_graph.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/debug/draw_graph.hh>
#include <mln/debug/draw_graph.hh>
int main()
Index: tests/unit_test/mln_accu_rank.cc
--- tests/unit_test/mln_accu_rank.cc (revision 3032)
+++ tests/unit_test/mln_accu_rank.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/rank.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/rank.hh>
#include <mln/accu/rank.hh>
int main()
Index: tests/unit_test/mln_set_compute.cc
--- tests/unit_test/mln_set_compute.cc (revision 3032)
+++ tests/unit_test/mln_set_compute.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/set/compute.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/set/compute.hh>
#include <mln/set/compute.hh>
int main()
Index: tests/unit_test/mln_accu_lor.cc
--- tests/unit_test/mln_accu_lor.cc (revision 3032)
+++ tests/unit_test/mln_accu_lor.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/lor.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/lor.hh>
#include <mln/accu/lor.hh>
int main()
Index: tests/unit_test/mln_io_pgm_save.cc
--- tests/unit_test/mln_io_pgm_save.cc (revision 3032)
+++ tests/unit_test/mln_io_pgm_save.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pgm/save.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pgm/save.hh>
#include <mln/io/pgm/save.hh>
int main()
Index: tests/unit_test/mln_core_concept_window.cc
--- tests/unit_test/mln_core_concept_window.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_window.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/window.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/window.hh>
#include <mln/core/concept/window.hh>
int main()
Index: tests/unit_test/mln_draw_plot.cc
--- tests/unit_test/mln_draw_plot.cc (revision 3032)
+++ tests/unit_test/mln_draw_plot.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/draw/plot.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/draw/plot.hh>
#include <mln/draw/plot.hh>
int main()
Index: tests/unit_test/mln_core_image_lazy_image.cc
--- tests/unit_test/mln_core_image_lazy_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_lazy_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/lazy_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/lazy_image.hh>
#include <mln/core/image/lazy_image.hh>
int main()
Index: tests/unit_test/mln_extension_adjust_fill.cc
--- tests/unit_test/mln_extension_adjust_fill.cc (revision 3032)
+++ tests/unit_test/mln_extension_adjust_fill.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/extension/adjust_fill.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/extension/adjust_fill.hh>
#include <mln/extension/adjust_fill.hh>
int main()
Index: tests/unit_test/mln_util_tree.cc
--- tests/unit_test/mln_util_tree.cc (revision 3032)
+++ tests/unit_test/mln_util_tree.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/tree.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/tree.hh>
#include <mln/util/tree.hh>
int main()
Index: tests/unit_test/mln_win_inter.cc
--- tests/unit_test/mln_win_inter.cc (revision 3032)
+++ tests/unit_test/mln_win_inter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/inter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/inter.hh>
#include <mln/win/inter.hh>
int main()
Index: tests/unit_test/mln_core_internal_image_identity.cc
--- tests/unit_test/mln_core_internal_image_identity.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_image_identity.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/image_identity.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/image_identity.hh>
#include <mln/core/internal/image_identity.hh>
int main()
Index: tests/unit_test/mln_linear_gaussian.cc
--- tests/unit_test/mln_linear_gaussian.cc (revision 3032)
+++ tests/unit_test/mln_linear_gaussian.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/linear/gaussian.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/linear/gaussian.hh>
#include <mln/linear/gaussian.hh>
int main()
Index: tests/unit_test/mln_core_internal_window_base.cc
--- tests/unit_test/mln_core_internal_window_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_window_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/window_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/window_base.hh>
#include <mln/core/internal/window_base.hh>
int main()
Index: tests/unit_test/mln_binarization_threshold.cc
--- tests/unit_test/mln_binarization_threshold.cc (revision 3032)
+++ tests/unit_test/mln_binarization_threshold.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/binarization/threshold.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/binarization/threshold.hh>
#include <mln/binarization/threshold.hh>
int main()
Index: tests/unit_test/mln_make_all.cc
--- tests/unit_test/mln_make_all.cc (revision 3032)
+++ tests/unit_test/mln_make_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/all.hh>
#include <mln/make/all.hh>
int main()
Index: tests/unit_test/mln_trace_quiet.cc
--- tests/unit_test/mln_trace_quiet.cc (revision 3032)
+++ tests/unit_test/mln_trace_quiet.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trace/quiet.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trace/quiet.hh>
#include <mln/trace/quiet.hh>
int main()
Index: tests/unit_test/mln_core_image_cast_image.cc
--- tests/unit_test/mln_core_image_cast_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_cast_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/cast_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/cast_image.hh>
#include <mln/core/image/cast_image.hh>
int main()
Index: tests/unit_test/mln_morpho_elementary_top_hat.cc
--- tests/unit_test/mln_morpho_elementary_top_hat.cc (revision 3032)
+++ tests/unit_test/mln_morpho_elementary_top_hat.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/elementary/top_hat.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/elementary/top_hat.hh>
#include <mln/morpho/elementary/top_hat.hh>
int main()
Index: tests/unit_test/mln_norm_l2.cc
--- tests/unit_test/mln_norm_l2.cc (revision 3032)
+++ tests/unit_test/mln_norm_l2.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/norm/l2.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/norm/l2.hh>
#include <mln/norm/l2.hh>
int main()
Index: tests/unit_test/mln_debug_put_word.cc
--- tests/unit_test/mln_debug_put_word.cc (revision 3032)
+++ tests/unit_test/mln_debug_put_word.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/debug/put_word.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/debug/put_word.hh>
#include <mln/debug/put_word.hh>
int main()
Index: tests/unit_test/mln_accu_maj_h.cc
--- tests/unit_test/mln_accu_maj_h.cc (revision 3032)
+++ tests/unit_test/mln_accu_maj_h.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/maj_h.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/maj_h.hh>
#include <mln/accu/maj_h.hh>
int main()
Index: tests/unit_test/mln_fun_v2v_enc.cc
--- tests/unit_test/mln_fun_v2v_enc.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2v_enc.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2v/enc.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2v/enc.hh>
#include <mln/fun/v2v/enc.hh>
int main()
Index: tests/unit_test/mln_trait_neighborhood.cc
--- tests/unit_test/mln_trait_neighborhood.cc (revision 3032)
+++ tests/unit_test/mln_trait_neighborhood.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/neighborhood.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/neighborhood.hh>
#include <mln/trait/neighborhood.hh>
int main()
Index: tests/unit_test/mln_geom_chamfer.cc
--- tests/unit_test/mln_geom_chamfer.cc (revision 3032)
+++ tests/unit_test/mln_geom_chamfer.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/chamfer.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/chamfer.hh>
#include <mln/geom/chamfer.hh>
int main()
Index: tests/unit_test/mln_morpho_tree_data.cc
--- tests/unit_test/mln_morpho_tree_data.cc (revision 3032)
+++ tests/unit_test/mln_morpho_tree_data.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/tree/data.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/tree/data.hh>
#include <mln/morpho/tree/data.hh>
int main()
Index: tests/unit_test/mln_metal_is_not_a.cc
--- tests/unit_test/mln_metal_is_not_a.cc (revision 3032)
+++ tests/unit_test/mln_metal_is_not_a.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/is_not_a.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/is_not_a.hh>
#include <mln/metal/is_not_a.hh>
int main()
Index: tests/unit_test/mln_accu_min.cc
--- tests/unit_test/mln_accu_min.cc (revision 3032)
+++ tests/unit_test/mln_accu_min.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/min.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/min.hh>
#include <mln/accu/min.hh>
int main()
Index: tests/unit_test/mln_core_image_mono_obased_rle_encode.cc
--- tests/unit_test/mln_core_image_mono_obased_rle_encode.cc (revision 3032)
+++ tests/unit_test/mln_core_image_mono_obased_rle_encode.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/mono_obased_rle_encode.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/mono_obased_rle_encode.hh>
#include <mln/core/image/mono_obased_rle_encode.hh>
int main()
Index: tests/unit_test/mln_geom_all.cc
--- tests/unit_test/mln_geom_all.cc (revision 3032)
+++ tests/unit_test/mln_geom_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/all.hh>
#include <mln/geom/all.hh>
int main()
Index: tests/unit_test/mln_tag_skeleton.cc
--- tests/unit_test/mln_tag_skeleton.cc (revision 3032)
+++ tests/unit_test/mln_tag_skeleton.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/tag/skeleton.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/tag/skeleton.hh>
#include <mln/tag/skeleton.hh>
int main()
Index: tests/unit_test/mln_morpho_internal_elementary.cc
--- tests/unit_test/mln_morpho_internal_elementary.cc (revision 3032)
+++ tests/unit_test/mln_morpho_internal_elementary.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/internal/elementary.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/internal/elementary.hh>
#include <mln/morpho/internal/elementary.hh>
int main()
Index: tests/unit_test/mln_morpho_dilation.cc
--- tests/unit_test/mln_morpho_dilation.cc (revision 3032)
+++ tests/unit_test/mln_morpho_dilation.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/dilation.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/dilation.hh>
#include <mln/morpho/dilation.hh>
int main()
Index: tests/unit_test/mln_core_alias_w_window1d_float.cc
--- tests/unit_test/mln_core_alias_w_window1d_float.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_w_window1d_float.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/w_window1d_float.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/w_window1d_float.hh>
#include <mln/core/alias/w_window1d_float.hh>
int main()
Index: tests/unit_test/mln_metal_templated_by.cc
--- tests/unit_test/mln_metal_templated_by.cc (revision 3032)
+++ tests/unit_test/mln_metal_templated_by.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/templated_by.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/templated_by.hh>
#include <mln/metal/templated_by.hh>
int main()
Index: tests/unit_test/mln_util_pix.cc
--- tests/unit_test/mln_util_pix.cc (revision 3032)
+++ tests/unit_test/mln_util_pix.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/pix.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/pix.hh>
#include <mln/util/pix.hh>
int main()
Index: tests/unit_test/mln_geom_essential.cc
--- tests/unit_test/mln_geom_essential.cc (revision 3032)
+++ tests/unit_test/mln_geom_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/essential.hh>
#include <mln/geom/essential.hh>
int main()
Index: tests/unit_test/mln_level_to_enc.cc
--- tests/unit_test/mln_level_to_enc.cc (revision 3032)
+++ tests/unit_test/mln_level_to_enc.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/to_enc.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/to_enc.hh>
#include <mln/level/to_enc.hh>
int main()
Index: tests/unit_test/mln_util_internal_graph_nbh_iter_base.cc
--- tests/unit_test/mln_util_internal_graph_nbh_iter_base.cc (revision 3032)
+++ tests/unit_test/mln_util_internal_graph_nbh_iter_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/internal/graph_nbh_iter_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/internal/graph_nbh_iter_base.hh>
#include <mln/util/internal/graph_nbh_iter_base.hh>
int main()
Index: tests/unit_test/mln_value_rgb8.cc
--- tests/unit_test/mln_value_rgb8.cc (revision 3032)
+++ tests/unit_test/mln_value_rgb8.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/rgb8.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/rgb8.hh>
#include <mln/value/rgb8.hh>
int main()
Index: tests/unit_test/mln_canvas_morpho_algebraic_union_find.cc
--- tests/unit_test/mln_canvas_morpho_algebraic_union_find.cc (revision 3032)
+++ tests/unit_test/mln_canvas_morpho_algebraic_union_find.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/morpho/algebraic_union_find.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/morpho/algebraic_union_find.hh>
#include <mln/canvas/morpho/algebraic_union_find.hh>
int main()
Index: tests/unit_test/mln_util_tree_to_image.cc
--- tests/unit_test/mln_util_tree_to_image.cc (revision 3032)
+++ tests/unit_test/mln_util_tree_to_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/tree_to_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/tree_to_image.hh>
#include <mln/util/tree_to_image.hh>
int main()
Index: tests/unit_test/mln_accu_rank_bool.cc
--- tests/unit_test/mln_accu_rank_bool.cc (revision 3032)
+++ tests/unit_test/mln_accu_rank_bool.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/rank_bool.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/rank_bool.hh>
#include <mln/accu/rank_bool.hh>
int main()
Index: tests/unit_test/mln_morpho_general.cc
--- tests/unit_test/mln_morpho_general.cc (revision 3032)
+++ tests/unit_test/mln_morpho_general.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/general.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/general.hh>
#include <mln/morpho/general.hh>
int main()
Index: tests/unit_test/mln_core_alias_complex_geometry.cc
--- tests/unit_test/mln_core_alias_complex_geometry.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_complex_geometry.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/complex_geometry.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/complex_geometry.hh>
#include <mln/core/alias/complex_geometry.hh>
int main()
Index: tests/unit_test/mln_core_alias_neighb3d.cc
--- tests/unit_test/mln_core_alias_neighb3d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_neighb3d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/neighb3d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/neighb3d.hh>
#include <mln/core/alias/neighb3d.hh>
int main()
Index: tests/unit_test/mln_algebra_h_mat.cc
--- tests/unit_test/mln_algebra_h_mat.cc (revision 3032)
+++ tests/unit_test/mln_algebra_h_mat.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/algebra/h_mat.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/algebra/h_mat.hh>
#include <mln/algebra/h_mat.hh>
int main()
Index: tests/unit_test/mln_core_image_sub_image.cc
--- tests/unit_test/mln_core_image_sub_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_sub_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/sub_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/sub_image.hh>
#include <mln/core/image/sub_image.hh>
int main()
Index: tests/unit_test/mln_canvas_browsing_snake_fwd.cc
--- tests/unit_test/mln_canvas_browsing_snake_fwd.cc (revision 3032)
+++ tests/unit_test/mln_canvas_browsing_snake_fwd.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/browsing/snake_fwd.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/browsing/snake_fwd.hh>
#include <mln/canvas/browsing/snake_fwd.hh>
int main()
Index: tests/unit_test/mln_canvas_browsing_dir_struct_elt_incr_update.cc
--- tests/unit_test/mln_canvas_browsing_dir_struct_elt_incr_update.cc (revision 3032)
+++ tests/unit_test/mln_canvas_browsing_dir_struct_elt_incr_update.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/browsing/dir_struct_elt_incr_update.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/browsing/dir_struct_elt_incr_update.hh>
#include <mln/canvas/browsing/dir_struct_elt_incr_update.hh>
int main()
Index: tests/unit_test/mln_core_concept_function.cc
--- tests/unit_test/mln_core_concept_function.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_function.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/function.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/function.hh>
#include <mln/core/concept/function.hh>
int main()
Index: tests/unit_test/mln_labeling_background.cc
--- tests/unit_test/mln_labeling_background.cc (revision 3032)
+++ tests/unit_test/mln_labeling_background.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/labeling/background.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/labeling/background.hh>
#include <mln/labeling/background.hh>
int main()
Index: tests/unit_test/mln_core_image_extension_ima.cc
--- tests/unit_test/mln_core_image_extension_ima.cc (revision 3032)
+++ tests/unit_test/mln_core_image_extension_ima.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/extension_ima.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/extension_ima.hh>
#include <mln/core/image/extension_ima.hh>
int main()
Index: tests/unit_test/mln_core_def_essential.cc
--- tests/unit_test/mln_core_def_essential.cc (revision 3032)
+++ tests/unit_test/mln_core_def_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/def/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/def/essential.hh>
#include <mln/core/def/essential.hh>
int main()
Index: tests/unit_test/mln_util_internal_graph_iter.cc
--- tests/unit_test/mln_util_internal_graph_iter.cc (revision 3032)
+++ tests/unit_test/mln_util_internal_graph_iter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/internal/graph_iter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/internal/graph_iter.hh>
#include <mln/util/internal/graph_iter.hh>
int main()
Index: tests/unit_test/mln_fun_vv2v_max.cc
--- tests/unit_test/mln_fun_vv2v_max.cc (revision 3032)
+++ tests/unit_test/mln_fun_vv2v_max.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/vv2v/max.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/vv2v/max.hh>
#include <mln/fun/vv2v/max.hh>
int main()
Index: tests/unit_test/mln_core_image_image1d.cc
--- tests/unit_test/mln_core_image_image1d.cc (revision 3032)
+++ tests/unit_test/mln_core_image_image1d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/image1d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/image1d.hh>
#include <mln/core/image/image1d.hh>
int main()
Index: tests/unit_test/mln_core_trait_all.cc
--- tests/unit_test/mln_core_trait_all.cc (revision 3032)
+++ tests/unit_test/mln_core_trait_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/trait/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/trait/all.hh>
#include <mln/core/trait/all.hh>
int main()
Index: tests/unit_test/mln_level_median.cc
--- tests/unit_test/mln_level_median.cc (revision 3032)
+++ tests/unit_test/mln_level_median.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/median.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/median.hh>
#include <mln/level/median.hh>
int main()
Index: tests/unit_test/mln_util_essential.cc
--- tests/unit_test/mln_util_essential.cc (revision 3032)
+++ tests/unit_test/mln_util_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/essential.hh>
#include <mln/util/essential.hh>
int main()
Index: tests/unit_test/mln_value_equiv.cc
--- tests/unit_test/mln_value_equiv.cc (revision 3032)
+++ tests/unit_test/mln_value_equiv.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/equiv.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/equiv.hh>
#include <mln/value/equiv.hh>
int main()
Index: tests/unit_test/mln_canvas_morpho_all.cc
--- tests/unit_test/mln_canvas_morpho_all.cc (revision 3032)
+++ tests/unit_test/mln_canvas_morpho_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/morpho/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/morpho/all.hh>
#include <mln/canvas/morpho/all.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_accumulator.cc
--- tests/unit_test/mln_core_concept_doc_accumulator.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_accumulator.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/accumulator.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/accumulator.hh>
#include <mln/core/concept/doc/accumulator.hh>
int main()
Index: tests/unit_test/mln_core_concept_object.cc
--- tests/unit_test/mln_core_concept_object.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_object.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/object.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/object.hh>
#include <mln/core/concept/object.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_graph_piter.cc
--- tests/unit_test/mln_core_site_set_p_graph_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_graph_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_graph_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_graph_piter.hh>
#include <mln/core/site_set/p_graph_piter.hh>
int main()
Index: tests/unit_test/mln_core_alias_p_run2d.cc
--- tests/unit_test/mln_core_alias_p_run2d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_p_run2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/p_run2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/p_run2d.hh>
#include <mln/core/alias/p_run2d.hh>
int main()
Index: tests/unit_test/mln_core_concept_neighborhood.cc
--- tests/unit_test/mln_core_concept_neighborhood.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_neighborhood.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/neighborhood.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/neighborhood.hh>
#include <mln/core/concept/neighborhood.hh>
int main()
Index: tests/unit_test/mln_set_inter.cc
--- tests/unit_test/mln_set_inter.cc (revision 3032)
+++ tests/unit_test/mln_set_inter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/set/inter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/set/inter.hh>
#include <mln/set/inter.hh>
int main()
Index: tests/unit_test/mln_core_faces_psite.cc
--- tests/unit_test/mln_core_faces_psite.cc (revision 3032)
+++ tests/unit_test/mln_core_faces_psite.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/faces_psite.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/faces_psite.hh>
#include <mln/core/faces_psite.hh>
int main()
Index: tests/unit_test/mln_core_concept_value.cc
--- tests/unit_test/mln_core_concept_value.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_value.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/value.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/value.hh>
#include <mln/core/concept/value.hh>
int main()
Index: tests/unit_test/mln_topo_n_face_iter.cc
--- tests/unit_test/mln_topo_n_face_iter.cc (revision 3032)
+++ tests/unit_test/mln_topo_n_face_iter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/n_face_iter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/n_face_iter.hh>
#include <mln/topo/n_face_iter.hh>
int main()
Index: tests/unit_test/mln_core_var.cc
--- tests/unit_test/mln_core_var.cc (revision 3032)
+++ tests/unit_test/mln_core_var.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/var.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/var.hh>
#include <mln/core/var.hh>
int main()
Index: tests/unit_test/mln_morpho_closing_attribute.cc
--- tests/unit_test/mln_morpho_closing_attribute.cc (revision 3032)
+++ tests/unit_test/mln_morpho_closing_attribute.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/closing_attribute.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/closing_attribute.hh>
#include <mln/morpho/closing_attribute.hh>
int main()
Index: tests/unit_test/mln_trace_essential.cc
--- tests/unit_test/mln_trace_essential.cc (revision 3032)
+++ tests/unit_test/mln_trace_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trace/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trace/essential.hh>
#include <mln/trace/essential.hh>
int main()
Index: tests/unit_test/mln_border_mirror.cc
--- tests/unit_test/mln_border_mirror.cc (revision 3032)
+++ tests/unit_test/mln_border_mirror.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/border/mirror.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/border/mirror.hh>
#include <mln/border/mirror.hh>
int main()
Index: tests/unit_test/mln_geom_resize.cc
--- tests/unit_test/mln_geom_resize.cc (revision 3032)
+++ tests/unit_test/mln_geom_resize.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/resize.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/resize.hh>
#include <mln/geom/resize.hh>
int main()
Index: tests/unit_test/mln_morpho_elementary_gradient_external.cc
--- tests/unit_test/mln_morpho_elementary_gradient_external.cc (revision 3032)
+++ tests/unit_test/mln_morpho_elementary_gradient_external.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/elementary/gradient_external.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/elementary/gradient_external.hh>
#include <mln/morpho/elementary/gradient_external.hh>
int main()
Index: tests/unit_test/mln_trait_image_props.cc
--- tests/unit_test/mln_trait_image_props.cc (revision 3032)
+++ tests/unit_test/mln_trait_image_props.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/image/props.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/image/props.hh>
#include <mln/trait/image/props.hh>
int main()
Index: tests/unit_test/mln_arith_min.cc
--- tests/unit_test/mln_arith_min.cc (revision 3032)
+++ tests/unit_test/mln_arith_min.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/arith/min.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/arith/min.hh>
#include <mln/arith/min.hh>
int main()
Index: tests/unit_test/mln_make_box1d.cc
--- tests/unit_test/mln_make_box1d.cc (revision 3032)
+++ tests/unit_test/mln_make_box1d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/box1d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/box1d.hh>
#include <mln/make/box1d.hh>
int main()
Index: tests/unit_test/mln_morpho_opening_area.cc
--- tests/unit_test/mln_morpho_opening_area.cc (revision 3032)
+++ tests/unit_test/mln_morpho_opening_area.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/opening_area.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/opening_area.hh>
#include <mln/morpho/opening_area.hh>
int main()
Index: tests/unit_test/mln_border_get.cc
--- tests/unit_test/mln_border_get.cc (revision 3032)
+++ tests/unit_test/mln_border_get.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/border/get.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/border/get.hh>
#include <mln/border/get.hh>
int main()
Index: tests/unit_test/mln_core_image_line_graph_elt_window.cc
--- tests/unit_test/mln_core_image_line_graph_elt_window.cc (revision 3032)
+++ tests/unit_test/mln_core_image_line_graph_elt_window.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/line_graph_elt_window.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/line_graph_elt_window.hh>
#include <mln/core/image/line_graph_elt_window.hh>
int main()
Index: tests/unit_test/mln_core_alias_window2d.cc
--- tests/unit_test/mln_core_alias_window2d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_window2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/window2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/window2d.hh>
#include <mln/core/alias/window2d.hh>
int main()
Index: tests/unit_test/mln_morpho_minus.cc
--- tests/unit_test/mln_morpho_minus.cc (revision 3032)
+++ tests/unit_test/mln_morpho_minus.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/minus.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/minus.hh>
#include <mln/morpho/minus.hh>
int main()
Index: tests/unit_test/mln_value_int_u32.cc
--- tests/unit_test/mln_value_int_u32.cc (revision 3032)
+++ tests/unit_test/mln_value_int_u32.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/int_u32.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/int_u32.hh>
#include <mln/value/int_u32.hh>
int main()
Index: tests/unit_test/mln_core_routine_init.cc
--- tests/unit_test/mln_core_routine_init.cc (revision 3032)
+++ tests/unit_test/mln_core_routine_init.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/routine/init.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/routine/init.hh>
#include <mln/core/routine/init.hh>
int main()
Index: tests/unit_test/mln_accu_essential.cc
--- tests/unit_test/mln_accu_essential.cc (revision 3032)
+++ tests/unit_test/mln_accu_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/essential.hh>
#include <mln/accu/essential.hh>
int main()
Index: tests/unit_test/mln_trait_op_leq.cc
--- tests/unit_test/mln_trait_op_leq.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_leq.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/leq.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/leq.hh>
#include <mln/trait/op/leq.hh>
int main()
Index: tests/unit_test/mln_core_concept_gpoint.cc
--- tests/unit_test/mln_core_concept_gpoint.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_gpoint.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/gpoint.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/gpoint.hh>
#include <mln/core/concept/gpoint.hh>
int main()
Index: tests/unit_test/mln_core_category.cc
--- tests/unit_test/mln_core_category.cc (revision 3032)
+++ tests/unit_test/mln_core_category.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/category.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/category.hh>
#include <mln/core/category.hh>
int main()
Index: tests/unit_test/mln_value_cast.cc
--- tests/unit_test/mln_value_cast.cc (revision 3032)
+++ tests/unit_test/mln_value_cast.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/cast.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/cast.hh>
#include <mln/value/cast.hh>
int main()
Index: tests/unit_test/mln_fun_vv2v_lor.cc
--- tests/unit_test/mln_fun_vv2v_lor.cc (revision 3032)
+++ tests/unit_test/mln_fun_vv2v_lor.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/vv2v/lor.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/vv2v/lor.hh>
#include <mln/fun/vv2v/lor.hh>
int main()
Index: tests/unit_test/mln_core_trait_qlf_value.cc
--- tests/unit_test/mln_core_trait_qlf_value.cc (revision 3032)
+++ tests/unit_test/mln_core_trait_qlf_value.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/trait/qlf_value.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/trait/qlf_value.hh>
#include <mln/core/trait/qlf_value.hh>
int main()
Index: tests/unit_test/mln_core_concept_all.cc
--- tests/unit_test/mln_core_concept_all.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/all.hh>
#include <mln/core/concept/all.hh>
int main()
Index: tests/unit_test/mln_essential_routine.cc
--- tests/unit_test/mln_essential_routine.cc (revision 3032)
+++ tests/unit_test/mln_essential_routine.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/essential/routine.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/essential/routine.hh>
#include <mln/essential/routine.hh>
int main()
Index: tests/unit_test/mln_debug_println.cc
--- tests/unit_test/mln_debug_println.cc (revision 3032)
+++ tests/unit_test/mln_debug_println.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/debug/println.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/debug/println.hh>
#include <mln/debug/println.hh>
int main()
Index: tests/unit_test/mln_value_ops.cc
--- tests/unit_test/mln_value_ops.cc (revision 3032)
+++ tests/unit_test/mln_value_ops.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/ops.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/ops.hh>
#include <mln/value/ops.hh>
int main()
Index: tests/unit_test/mln_level_transform_inplace.cc
--- tests/unit_test/mln_level_transform_inplace.cc (revision 3032)
+++ tests/unit_test/mln_level_transform_inplace.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/transform_inplace.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/transform_inplace.hh>
#include <mln/level/transform_inplace.hh>
int main()
Index: tests/unit_test/mln_labeling_blobs.cc
--- tests/unit_test/mln_labeling_blobs.cc (revision 3032)
+++ tests/unit_test/mln_labeling_blobs.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/labeling/blobs.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/labeling/blobs.hh>
#include <mln/labeling/blobs.hh>
int main()
Index: tests/unit_test/mln_io_abort.cc
--- tests/unit_test/mln_io_abort.cc (revision 3032)
+++ tests/unit_test/mln_io_abort.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/abort.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/abort.hh>
#include <mln/io/abort.hh>
int main()
Index: tests/unit_test/mln_algebra_mat.cc
--- tests/unit_test/mln_algebra_mat.cc (revision 3032)
+++ tests/unit_test/mln_algebra_mat.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/algebra/mat.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/algebra/mat.hh>
#include <mln/algebra/mat.hh>
int main()
Index: tests/unit_test/mln_geom_pmin_pmax.cc
--- tests/unit_test/mln_geom_pmin_pmax.cc (revision 3032)
+++ tests/unit_test/mln_geom_pmin_pmax.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/pmin_pmax.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/pmin_pmax.hh>
#include <mln/geom/pmin_pmax.hh>
int main()
Index: tests/unit_test/mln_core_alias_box2d.cc
--- tests/unit_test/mln_core_alias_box2d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_box2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/box2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/box2d.hh>
#include <mln/core/alias/box2d.hh>
int main()
Index: tests/unit_test/mln_core_image_hexa.cc
--- tests/unit_test/mln_core_image_hexa.cc (revision 3032)
+++ tests/unit_test/mln_core_image_hexa.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/hexa.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/hexa.hh>
#include <mln/core/image/hexa.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_double.cc
--- tests/unit_test/mln_core_site_set_p_double.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_double.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_double.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_double.hh>
#include <mln/core/site_set/p_double.hh>
int main()
Index: tests/unit_test/mln_core_image_tr_image.cc
--- tests/unit_test/mln_core_image_tr_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_tr_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/tr_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/tr_image.hh>
#include <mln/core/image/tr_image.hh>
int main()
Index: tests/unit_test/mln_morpho_skeleton_constrained.cc
--- tests/unit_test/mln_morpho_skeleton_constrained.cc (revision 3032)
+++ tests/unit_test/mln_morpho_skeleton_constrained.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/skeleton_constrained.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/skeleton_constrained.hh>
#include <mln/morpho/skeleton_constrained.hh>
int main()
Index: tests/unit_test/mln_core_def_coordf.cc
--- tests/unit_test/mln_core_def_coordf.cc (revision 3032)
+++ tests/unit_test/mln_core_def_coordf.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/def/coordf.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/def/coordf.hh>
#include <mln/core/def/coordf.hh>
int main()
Index: tests/unit_test/mln_math_sqrt.cc
--- tests/unit_test/mln_math_sqrt.cc (revision 3032)
+++ tests/unit_test/mln_math_sqrt.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/math/sqrt.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/math/sqrt.hh>
#include <mln/math/sqrt.hh>
int main()
Index: tests/unit_test/mln_value_glf.cc
--- tests/unit_test/mln_value_glf.cc (revision 3032)
+++ tests/unit_test/mln_value_glf.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/glf.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/glf.hh>
#include <mln/value/glf.hh>
int main()
Index: tests/unit_test/mln_draw_box.cc
--- tests/unit_test/mln_draw_box.cc (revision 3032)
+++ tests/unit_test/mln_draw_box.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/draw/box.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/draw/box.hh>
#include <mln/draw/box.hh>
int main()
Index: tests/unit_test/mln_level_sort_psites.cc
--- tests/unit_test/mln_level_sort_psites.cc (revision 3032)
+++ tests/unit_test/mln_level_sort_psites.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/sort_psites.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/sort_psites.hh>
#include <mln/level/sort_psites.hh>
int main()
Index: tests/unit_test/mln_morpho_elementary_gradient.cc
--- tests/unit_test/mln_morpho_elementary_gradient.cc (revision 3032)
+++ tests/unit_test/mln_morpho_elementary_gradient.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/elementary/gradient.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/elementary/gradient.hh>
#include <mln/morpho/elementary/gradient.hh>
int main()
Index: tests/unit_test/mln_morpho_closing_volume.cc
--- tests/unit_test/mln_morpho_closing_volume.cc (revision 3032)
+++ tests/unit_test/mln_morpho_closing_volume.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/closing_volume.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/closing_volume.hh>
#include <mln/morpho/closing_volume.hh>
int main()
Index: tests/unit_test/mln_canvas_browsing_all.cc
--- tests/unit_test/mln_canvas_browsing_all.cc (revision 3032)
+++ tests/unit_test/mln_canvas_browsing_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/browsing/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/browsing/all.hh>
#include <mln/canvas/browsing/all.hh>
int main()
Index: tests/unit_test/mln_fun_vv2v_min.cc
--- tests/unit_test/mln_fun_vv2v_min.cc (revision 3032)
+++ tests/unit_test/mln_fun_vv2v_min.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/vv2v/min.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/vv2v/min.hh>
#include <mln/fun/vv2v/min.hh>
int main()
Index: tests/unit_test/mln_core_site_set_all.cc
--- tests/unit_test/mln_core_site_set_all.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/all.hh>
#include <mln/core/site_set/all.hh>
int main()
Index: tests/unit_test/mln_io_pnm_load.cc
--- tests/unit_test/mln_io_pnm_load.cc (revision 3032)
+++ tests/unit_test/mln_io_pnm_load.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pnm/load.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pnm/load.hh>
#include <mln/io/pnm/load.hh>
int main()
Index: tests/unit_test/mln_fun_v2v_norm.cc
--- tests/unit_test/mln_fun_v2v_norm.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2v_norm.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2v/norm.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2v/norm.hh>
#include <mln/fun/v2v/norm.hh>
int main()
Index: tests/unit_test/mln_make_w_window3d.cc
--- tests/unit_test/mln_make_w_window3d.cc (revision 3032)
+++ tests/unit_test/mln_make_w_window3d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/w_window3d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/w_window3d.hh>
#include <mln/make/w_window3d.hh>
int main()
Index: tests/unit_test/mln_util_ord.cc
--- tests/unit_test/mln_util_ord.cc (revision 3032)
+++ tests/unit_test/mln_util_ord.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/ord.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/ord.hh>
#include <mln/util/ord.hh>
int main()
Index: tests/unit_test/mln_topo_face_iter.cc
--- tests/unit_test/mln_topo_face_iter.cc (revision 3032)
+++ tests/unit_test/mln_topo_face_iter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/face_iter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/face_iter.hh>
#include <mln/topo/face_iter.hh>
int main()
Index: tests/unit_test/mln_geom_max_row.cc
--- tests/unit_test/mln_geom_max_row.cc (revision 3032)
+++ tests/unit_test/mln_geom_max_row.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/geom/max_row.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/geom/max_row.hh>
#include <mln/geom/max_row.hh>
int main()
Index: tests/unit_test/mln_linear_sobel_2d.cc
--- tests/unit_test/mln_linear_sobel_2d.cc (revision 3032)
+++ tests/unit_test/mln_linear_sobel_2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/linear/sobel_2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/linear/sobel_2d.hh>
#include <mln/linear/sobel_2d.hh>
int main()
Index: tests/unit_test/mln_linear_convolve.cc
--- tests/unit_test/mln_linear_convolve.cc (revision 3032)
+++ tests/unit_test/mln_linear_convolve.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/linear/convolve.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/linear/convolve.hh>
#include <mln/linear/convolve.hh>
int main()
Index: tests/unit_test/mln_core_trait_pixter.cc
--- tests/unit_test/mln_core_trait_pixter.cc (revision 3032)
+++ tests/unit_test/mln_core_trait_pixter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/trait/pixter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/trait/pixter.hh>
#include <mln/core/trait/pixter.hh>
int main()
Index: tests/unit_test/mln_core_image_mono_rle_image.cc
--- tests/unit_test/mln_core_image_mono_rle_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_mono_rle_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/mono_rle_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/mono_rle_image.hh>
#include <mln/core/image/mono_rle_image.hh>
int main()
Index: tests/unit_test/mln_fun_x2p_essential.cc
--- tests/unit_test/mln_fun_x2p_essential.cc (revision 3032)
+++ tests/unit_test/mln_fun_x2p_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/x2p/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/x2p/essential.hh>
#include <mln/fun/x2p/essential.hh>
int main()
Index: tests/unit_test/mln_literal_black.cc
--- tests/unit_test/mln_literal_black.cc (revision 3032)
+++ tests/unit_test/mln_literal_black.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/literal/black.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/literal/black.hh>
#include <mln/literal/black.hh>
int main()
Index: tests/unit_test/mln_make_w_window2d_int.cc
--- tests/unit_test/mln_make_w_window2d_int.cc (revision 3032)
+++ tests/unit_test/mln_make_w_window2d_int.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/w_window2d_int.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/w_window2d_int.hh>
#include <mln/make/w_window2d_int.hh>
int main()
Index: tests/unit_test/mln_literal_one.cc
--- tests/unit_test/mln_literal_one.cc (revision 3032)
+++ tests/unit_test/mln_literal_one.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/literal/one.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/literal/one.hh>
#include <mln/literal/one.hh>
int main()
Index: tests/unit_test/mln_make_pix.cc
--- tests/unit_test/mln_make_pix.cc (revision 3032)
+++ tests/unit_test/mln_make_pix.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/pix.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/pix.hh>
#include <mln/make/pix.hh>
int main()
Index: tests/unit_test/mln_pw_essential.cc
--- tests/unit_test/mln_pw_essential.cc (revision 3032)
+++ tests/unit_test/mln_pw_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/pw/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/pw/essential.hh>
#include <mln/pw/essential.hh>
int main()
Index: tests/unit_test/mln_core_site_set_essential.cc
--- tests/unit_test/mln_core_site_set_essential.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/essential.hh>
#include <mln/core/site_set/essential.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_weighted_window.cc
--- tests/unit_test/mln_core_concept_doc_weighted_window.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_weighted_window.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/weighted_window.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/weighted_window.hh>
#include <mln/core/concept/doc/weighted_window.hh>
int main()
Index: tests/unit_test/mln_logical_all.cc
--- tests/unit_test/mln_logical_all.cc (revision 3032)
+++ tests/unit_test/mln_logical_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/logical/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/logical/all.hh>
#include <mln/logical/all.hh>
int main()
Index: tests/unit_test/mln_morpho_erosion.cc
--- tests/unit_test/mln_morpho_erosion.cc (revision 3032)
+++ tests/unit_test/mln_morpho_erosion.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/erosion.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/erosion.hh>
#include <mln/morpho/erosion.hh>
int main()
Index: tests/unit_test/mln_morpho_hit_or_miss.cc
--- tests/unit_test/mln_morpho_hit_or_miss.cc (revision 3032)
+++ tests/unit_test/mln_morpho_hit_or_miss.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/hit_or_miss.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/hit_or_miss.hh>
#include <mln/morpho/hit_or_miss.hh>
int main()
Index: tests/unit_test/mln_core_internal_graph_psite_base.cc
--- tests/unit_test/mln_core_internal_graph_psite_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_graph_psite_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/graph_psite_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/graph_psite_base.hh>
#include <mln/core/internal/graph_psite_base.hh>
int main()
Index: tests/unit_test/mln_win_line.cc
--- tests/unit_test/mln_win_line.cc (revision 3032)
+++ tests/unit_test/mln_win_line.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/win/line.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/win/line.hh>
#include <mln/win/line.hh>
int main()
Index: tests/unit_test/mln_trait_concrete.cc
--- tests/unit_test/mln_trait_concrete.cc (revision 3032)
+++ tests/unit_test/mln_trait_concrete.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/concrete.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/concrete.hh>
#include <mln/trait/concrete.hh>
int main()
Index: tests/unit_test/mln_make_w_window_directional.cc
--- tests/unit_test/mln_make_w_window_directional.cc (revision 3032)
+++ tests/unit_test/mln_make_w_window_directional.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/w_window_directional.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/w_window_directional.hh>
#include <mln/make/w_window_directional.hh>
int main()
Index: tests/unit_test/mln_arith_times.cc
--- tests/unit_test/mln_arith_times.cc (revision 3032)
+++ tests/unit_test/mln_arith_times.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/arith/times.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/arith/times.hh>
#include <mln/arith/times.hh>
int main()
Index: tests/unit_test/mln_morpho_laplacian.cc
--- tests/unit_test/mln_morpho_laplacian.cc (revision 3032)
+++ tests/unit_test/mln_morpho_laplacian.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/laplacian.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/laplacian.hh>
#include <mln/morpho/laplacian.hh>
int main()
Index: tests/unit_test/mln_labeling_compute.cc
--- tests/unit_test/mln_labeling_compute.cc (revision 3032)
+++ tests/unit_test/mln_labeling_compute.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/labeling/compute.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/labeling/compute.hh>
#include <mln/labeling/compute.hh>
int main()
Index: tests/unit_test/mln_io_pgm_load.cc
--- tests/unit_test/mln_io_pgm_load.cc (revision 3032)
+++ tests/unit_test/mln_io_pgm_load.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pgm/load.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pgm/load.hh>
#include <mln/io/pgm/load.hh>
int main()
Index: tests/unit_test/mln_value_label.cc
--- tests/unit_test/mln_value_label.cc (revision 3032)
+++ tests/unit_test/mln_value_label.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/label.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/label.hh>
#include <mln/value/label.hh>
int main()
Index: tests/unit_test/mln_convert_impl_from_value_to_value.cc
--- tests/unit_test/mln_convert_impl_from_value_to_value.cc (revision 3032)
+++ tests/unit_test/mln_convert_impl_from_value_to_value.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/convert/impl/from_value_to_value.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/convert/impl/from_value_to_value.hh>
#include <mln/convert/impl/from_value_to_value.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_set.cc
--- tests/unit_test/mln_core_site_set_p_set.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_set.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_set.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_set.hh>
#include <mln/core/site_set/p_set.hh>
int main()
Index: tests/unit_test/mln_accu_histo.cc
--- tests/unit_test/mln_accu_histo.cc (revision 3032)
+++ tests/unit_test/mln_accu_histo.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/histo.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/histo.hh>
#include <mln/accu/histo.hh>
int main()
Index: tests/unit_test/mln_morpho_gradient.cc
--- tests/unit_test/mln_morpho_gradient.cc (revision 3032)
+++ tests/unit_test/mln_morpho_gradient.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/gradient.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/gradient.hh>
#include <mln/morpho/gradient.hh>
int main()
Index: tests/unit_test/mln_make_box2d_h.cc
--- tests/unit_test/mln_make_box2d_h.cc (revision 3032)
+++ tests/unit_test/mln_make_box2d_h.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/box2d_h.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/box2d_h.hh>
#include <mln/make/box2d_h.hh>
int main()
Index: tests/unit_test/mln_trait_op_times.cc
--- tests/unit_test/mln_trait_op_times.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_times.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/times.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/times.hh>
#include <mln/trait/op/times.hh>
int main()
Index: tests/unit_test/mln_make_essential.cc
--- tests/unit_test/mln_make_essential.cc (revision 3032)
+++ tests/unit_test/mln_make_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/essential.hh>
#include <mln/make/essential.hh>
int main()
Index: tests/unit_test/mln_accu_min_h.cc
--- tests/unit_test/mln_accu_min_h.cc (revision 3032)
+++ tests/unit_test/mln_accu_min_h.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/min_h.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/min_h.hh>
#include <mln/accu/min_h.hh>
int main()
Index: tests/unit_test/mln_test_essential.cc
--- tests/unit_test/mln_test_essential.cc (revision 3032)
+++ tests/unit_test/mln_test_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/test/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/test/essential.hh>
#include <mln/test/essential.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_queue_fast.cc
--- tests/unit_test/mln_core_site_set_p_queue_fast.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_queue_fast.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_queue_fast.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_queue_fast.hh>
#include <mln/core/site_set/p_queue_fast.hh>
int main()
Index: tests/unit_test/mln_core_concept_site.cc
--- tests/unit_test/mln_core_concept_site.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_site.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/site.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/site.hh>
#include <mln/core/concept/site.hh>
int main()
Index: tests/unit_test/mln_morpho_tree_compute_parent.cc
--- tests/unit_test/mln_morpho_tree_compute_parent.cc (revision 3032)
+++ tests/unit_test/mln_morpho_tree_compute_parent.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/tree/compute_parent.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/tree/compute_parent.hh>
#include <mln/morpho/tree/compute_parent.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_image.cc
--- tests/unit_test/mln_core_concept_doc_image.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/image.hh>
#include <mln/core/concept/doc/image.hh>
int main()
Index: tests/unit_test/mln_make_w_window.cc
--- tests/unit_test/mln_make_w_window.cc (revision 3032)
+++ tests/unit_test/mln_make_w_window.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/w_window.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/w_window.hh>
#include <mln/make/w_window.hh>
int main()
Index: tests/unit_test/mln_histo_essential.cc
--- tests/unit_test/mln_histo_essential.cc (revision 3032)
+++ tests/unit_test/mln_histo_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/histo/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/histo/essential.hh>
#include <mln/histo/essential.hh>
int main()
Index: tests/unit_test/mln_canvas_distance_front.cc
--- tests/unit_test/mln_canvas_distance_front.cc (revision 3032)
+++ tests/unit_test/mln_canvas_distance_front.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/distance_front.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/distance_front.hh>
#include <mln/canvas/distance_front.hh>
int main()
Index: tests/unit_test/mln_convert_to_dpoint.cc
--- tests/unit_test/mln_convert_to_dpoint.cc (revision 3032)
+++ tests/unit_test/mln_convert_to_dpoint.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/convert/to_dpoint.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/convert/to_dpoint.hh>
#include <mln/convert/to_dpoint.hh>
int main()
Index: tests/unit_test/mln_binarization_essential.cc
--- tests/unit_test/mln_binarization_essential.cc (revision 3032)
+++ tests/unit_test/mln_binarization_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/binarization/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/binarization/essential.hh>
#include <mln/binarization/essential.hh>
int main()
Index: tests/unit_test/mln_core_concept_point_site.cc
--- tests/unit_test/mln_core_concept_point_site.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_point_site.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/point_site.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/point_site.hh>
#include <mln/core/concept/point_site.hh>
int main()
Index: tests/unit_test/mln_value_float01_.cc
--- tests/unit_test/mln_value_float01_.cc (revision 3032)
+++ tests/unit_test/mln_value_float01_.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/float01_.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/float01_.hh>
#include <mln/value/float01_.hh>
int main()
Index: tests/unit_test/mln_util_internal_graph_nbh_iter.cc
--- tests/unit_test/mln_util_internal_graph_nbh_iter.cc (revision 3032)
+++ tests/unit_test/mln_util_internal_graph_nbh_iter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/internal/graph_nbh_iter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/internal/graph_nbh_iter.hh>
#include <mln/util/internal/graph_nbh_iter.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_dpoint.cc
--- tests/unit_test/mln_core_concept_doc_dpoint.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_dpoint.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/dpoint.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/dpoint.hh>
#include <mln/core/concept/doc/dpoint.hh>
int main()
Index: tests/unit_test/mln_canvas_browsing_depth_first_search.cc
--- tests/unit_test/mln_canvas_browsing_depth_first_search.cc (revision 3032)
+++ tests/unit_test/mln_canvas_browsing_depth_first_search.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/browsing/depth_first_search.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/browsing/depth_first_search.hh>
#include <mln/canvas/browsing/depth_first_search.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_queue.cc
--- tests/unit_test/mln_core_site_set_p_queue.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_queue.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_queue.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_queue.hh>
#include <mln/core/site_set/p_queue.hh>
int main()
Index: tests/unit_test/mln_essential_1d.cc
--- tests/unit_test/mln_essential_1d.cc (revision 3032)
+++ tests/unit_test/mln_essential_1d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/essential/1d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/essential/1d.hh>
#include <mln/essential/1d.hh>
int main()
Index: tests/unit_test/mln_logical_and_not.cc
--- tests/unit_test/mln_logical_and_not.cc (revision 3032)
+++ tests/unit_test/mln_logical_and_not.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/logical/and_not.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/logical/and_not.hh>
#include <mln/logical/and_not.hh>
int main()
Index: tests/unit_test/mln_topo_n_face.cc
--- tests/unit_test/mln_topo_n_face.cc (revision 3032)
+++ tests/unit_test/mln_topo_n_face.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/n_face.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/n_face.hh>
#include <mln/topo/n_face.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_vaccess.cc
--- tests/unit_test/mln_core_site_set_p_vaccess.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_vaccess.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_vaccess.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_vaccess.hh>
#include <mln/core/site_set/p_vaccess.hh>
int main()
Index: tests/unit_test/mln_core_internal_image_base.cc
--- tests/unit_test/mln_core_internal_image_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_image_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/image_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/image_base.hh>
#include <mln/core/internal/image_base.hh>
int main()
Index: tests/unit_test/mln_util_internal_boost_graph_access.cc
--- tests/unit_test/mln_util_internal_boost_graph_access.cc (revision 3032)
+++ tests/unit_test/mln_util_internal_boost_graph_access.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/internal/boost_graph_access.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/internal/boost_graph_access.hh>
#include <mln/util/internal/boost_graph_access.hh>
int main()
Index: tests/unit_test/mln_value_int_u_sat.cc
--- tests/unit_test/mln_value_int_u_sat.cc (revision 3032)
+++ tests/unit_test/mln_value_int_u_sat.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/int_u_sat.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/int_u_sat.hh>
#include <mln/value/int_u_sat.hh>
int main()
Index: tests/unit_test/mln_histo_compute.cc
--- tests/unit_test/mln_histo_compute.cc (revision 3032)
+++ tests/unit_test/mln_histo_compute.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/histo/compute.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/histo/compute.hh>
#include <mln/histo/compute.hh>
int main()
Index: tests/unit_test/mln_fun_vv2v_essential.cc
--- tests/unit_test/mln_fun_vv2v_essential.cc (revision 3032)
+++ tests/unit_test/mln_fun_vv2v_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/vv2v/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/vv2v/essential.hh>
#include <mln/fun/vv2v/essential.hh>
int main()
Index: tests/unit_test/mln_core_internal_image_morpher.cc
--- tests/unit_test/mln_core_internal_image_morpher.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_image_morpher.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/image_morpher.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/image_morpher.hh>
#include <mln/core/internal/image_morpher.hh>
int main()
Index: tests/unit_test/mln_core_image_image2d.cc
--- tests/unit_test/mln_core_image_image2d.cc (revision 3032)
+++ tests/unit_test/mln_core_image_image2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/image2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/image2d.hh>
#include <mln/core/image/image2d.hh>
int main()
Index: tests/unit_test/mln_io_pnm_macros.cc
--- tests/unit_test/mln_io_pnm_macros.cc (revision 3032)
+++ tests/unit_test/mln_io_pnm_macros.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pnm/macros.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pnm/macros.hh>
#include <mln/io/pnm/macros.hh>
int main()
Index: tests/unit_test/mln_core_a_point_of.cc
--- tests/unit_test/mln_core_a_point_of.cc (revision 3032)
+++ tests/unit_test/mln_core_a_point_of.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/a_point_of.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/a_point_of.hh>
#include <mln/core/a_point_of.hh>
int main()
Index: tests/unit_test/mln_core_concept_gdpoint.cc
--- tests/unit_test/mln_core_concept_gdpoint.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_gdpoint.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/gdpoint.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/gdpoint.hh>
#include <mln/core/concept/gdpoint.hh>
int main()
Index: tests/unit_test/mln_io_fits_load.cc
--- tests/unit_test/mln_io_fits_load.cc (revision 3032)
+++ tests/unit_test/mln_io_fits_load.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/fits/load.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/fits/load.hh>
#include <mln/io/fits/load.hh>
int main()
Index: tests/unit_test/mln_tag_init.cc
--- tests/unit_test/mln_tag_init.cc (revision 3032)
+++ tests/unit_test/mln_tag_init.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/tag/init.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/tag/init.hh>
#include <mln/tag/init.hh>
int main()
Index: tests/unit_test/mln_core_concept_site_iterator.cc
--- tests/unit_test/mln_core_concept_site_iterator.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_site_iterator.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/site_iterator.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/site_iterator.hh>
#include <mln/core/concept/site_iterator.hh>
int main()
Index: tests/unit_test/mln_labeling_flat_zones.cc
--- tests/unit_test/mln_labeling_flat_zones.cc (revision 3032)
+++ tests/unit_test/mln_labeling_flat_zones.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/labeling/flat_zones.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/labeling/flat_zones.hh>
#include <mln/labeling/flat_zones.hh>
int main()
Index: tests/unit_test/mln_canvas_browsing_snake_generic.cc
--- tests/unit_test/mln_canvas_browsing_snake_generic.cc (revision 3032)
+++ tests/unit_test/mln_canvas_browsing_snake_generic.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/browsing/snake_generic.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/browsing/snake_generic.hh>
#include <mln/canvas/browsing/snake_generic.hh>
int main()
Index: tests/unit_test/mln_level_replace.cc
--- tests/unit_test/mln_level_replace.cc (revision 3032)
+++ tests/unit_test/mln_level_replace.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/replace.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/replace.hh>
#include <mln/level/replace.hh>
int main()
Index: tests/unit_test/mln_value_int_u8.cc
--- tests/unit_test/mln_value_int_u8.cc (revision 3032)
+++ tests/unit_test/mln_value_int_u8.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/int_u8.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/int_u8.hh>
#include <mln/value/int_u8.hh>
int main()
Index: tests/unit_test/mln_transform_all.cc
--- tests/unit_test/mln_transform_all.cc (revision 3032)
+++ tests/unit_test/mln_transform_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/transform/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/transform/all.hh>
#include <mln/transform/all.hh>
int main()
Index: tests/unit_test/mln_morpho_tree_compute_attribute_image.cc
--- tests/unit_test/mln_morpho_tree_compute_attribute_image.cc (revision 3032)
+++ tests/unit_test/mln_morpho_tree_compute_attribute_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/tree/compute_attribute_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/tree/compute_attribute_image.hh>
#include <mln/morpho/tree/compute_attribute_image.hh>
int main()
Index: tests/unit_test/mln_accu_land.cc
--- tests/unit_test/mln_accu_land.cc (revision 3032)
+++ tests/unit_test/mln_accu_land.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/land.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/land.hh>
#include <mln/accu/land.hh>
int main()
Index: tests/unit_test/mln_make_box2d.cc
--- tests/unit_test/mln_make_box2d.cc (revision 3032)
+++ tests/unit_test/mln_make_box2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/box2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/box2d.hh>
#include <mln/make/box2d.hh>
int main()
Index: tests/unit_test/mln_metal_ret.cc
--- tests/unit_test/mln_metal_ret.cc (revision 3032)
+++ tests/unit_test/mln_metal_ret.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/ret.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/ret.hh>
#include <mln/metal/ret.hh>
int main()
Index: tests/unit_test/mln_core_alias_window3d.cc
--- tests/unit_test/mln_core_alias_window3d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_window3d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/window3d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/window3d.hh>
#include <mln/core/alias/window3d.hh>
int main()
Index: tests/unit_test/mln_core_clock_neighb.cc
--- tests/unit_test/mln_core_clock_neighb.cc (revision 3032)
+++ tests/unit_test/mln_core_clock_neighb.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/clock_neighb.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/clock_neighb.hh>
#include <mln/core/clock_neighb.hh>
int main()
Index: tests/unit_test/mln_util_ignore.cc
--- tests/unit_test/mln_util_ignore.cc (revision 3032)
+++ tests/unit_test/mln_util_ignore.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/ignore.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/ignore.hh>
#include <mln/util/ignore.hh>
int main()
Index: tests/unit_test/mln_value_int_u16.cc
--- tests/unit_test/mln_value_int_u16.cc (revision 3032)
+++ tests/unit_test/mln_value_int_u16.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/int_u16.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/int_u16.hh>
#include <mln/value/int_u16.hh>
int main()
Index: tests/unit_test/mln_extension_essential.cc
--- tests/unit_test/mln_extension_essential.cc (revision 3032)
+++ tests/unit_test/mln_extension_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/extension/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/extension/essential.hh>
#include <mln/extension/essential.hh>
int main()
Index: tests/unit_test/mln_accu_count.cc
--- tests/unit_test/mln_accu_count.cc (revision 3032)
+++ tests/unit_test/mln_accu_count.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/count.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/count.hh>
#include <mln/accu/count.hh>
int main()
Index: tests/unit_test/mln_core_dpoints_pixter.cc
--- tests/unit_test/mln_core_dpoints_pixter.cc (revision 3032)
+++ tests/unit_test/mln_core_dpoints_pixter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/dpoints_pixter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/dpoints_pixter.hh>
#include <mln/core/dpoints_pixter.hh>
int main()
Index: tests/unit_test/mln_io_fits_all.cc
--- tests/unit_test/mln_io_fits_all.cc (revision 3032)
+++ tests/unit_test/mln_io_fits_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/fits/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/fits/all.hh>
#include <mln/io/fits/all.hh>
int main()
Index: tests/unit_test/mln_core_image_line_graph_image.cc
--- tests/unit_test/mln_core_image_line_graph_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_line_graph_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/line_graph_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/line_graph_image.hh>
#include <mln/core/image/line_graph_image.hh>
int main()
Index: tests/unit_test/mln_core_image_sparse_encode.cc
--- tests/unit_test/mln_core_image_sparse_encode.cc (revision 3032)
+++ tests/unit_test/mln_core_image_sparse_encode.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/sparse_encode.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/sparse_encode.hh>
#include <mln/core/image/sparse_encode.hh>
int main()
Index: tests/unit_test/mln_arith_diff_abs.cc
--- tests/unit_test/mln_arith_diff_abs.cc (revision 3032)
+++ tests/unit_test/mln_arith_diff_abs.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/arith/diff_abs.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/arith/diff_abs.hh>
#include <mln/arith/diff_abs.hh>
int main()
Index: tests/unit_test/mln_accu_max_h.cc
--- tests/unit_test/mln_accu_max_h.cc (revision 3032)
+++ tests/unit_test/mln_accu_max_h.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/max_h.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/max_h.hh>
#include <mln/accu/max_h.hh>
int main()
Index: tests/unit_test/mln_estim_min_max.cc
--- tests/unit_test/mln_estim_min_max.cc (revision 3032)
+++ tests/unit_test/mln_estim_min_max.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/estim/min_max.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/estim/min_max.hh>
#include <mln/estim/min_max.hh>
int main()
Index: tests/unit_test/mln_value_float01_8.cc
--- tests/unit_test/mln_value_float01_8.cc (revision 3032)
+++ tests/unit_test/mln_value_float01_8.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/float01_8.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/float01_8.hh>
#include <mln/value/float01_8.hh>
int main()
Index: tests/unit_test/mln_debug_essential.cc
--- tests/unit_test/mln_debug_essential.cc (revision 3032)
+++ tests/unit_test/mln_debug_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/debug/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/debug/essential.hh>
#include <mln/debug/essential.hh>
int main()
Index: tests/unit_test/mln_core_def_all.cc
--- tests/unit_test/mln_core_def_all.cc (revision 3032)
+++ tests/unit_test/mln_core_def_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/def/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/def/all.hh>
#include <mln/core/def/all.hh>
int main()
Index: tests/unit_test/mln_metal_vec.cc
--- tests/unit_test/mln_metal_vec.cc (revision 3032)
+++ tests/unit_test/mln_metal_vec.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/vec.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/vec.hh>
#include <mln/metal/vec.hh>
int main()
Index: tests/unit_test/mln_core_alias_box3d.cc
--- tests/unit_test/mln_core_alias_box3d.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_box3d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/box3d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/box3d.hh>
#include <mln/core/alias/box3d.hh>
int main()
Index: tests/unit_test/mln_accu_internal_base.cc
--- tests/unit_test/mln_accu_internal_base.cc (revision 3032)
+++ tests/unit_test/mln_accu_internal_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/internal/base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/internal/base.hh>
#include <mln/accu/internal/base.hh>
int main()
Index: tests/unit_test/mln_util_edge.cc
--- tests/unit_test/mln_util_edge.cc (revision 3032)
+++ tests/unit_test/mln_util_edge.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/edge.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/edge.hh>
#include <mln/util/edge.hh>
int main()
Index: tests/unit_test/mln_fun_p2b_big_chess.cc
--- tests/unit_test/mln_fun_p2b_big_chess.cc (revision 3032)
+++ tests/unit_test/mln_fun_p2b_big_chess.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/p2b/big_chess.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/p2b/big_chess.hh>
#include <mln/fun/p2b/big_chess.hh>
int main()
Index: tests/unit_test/mln_core_image_hexa_piter.cc
--- tests/unit_test/mln_core_image_hexa_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_image_hexa_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/hexa_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/hexa_piter.hh>
#include <mln/core/image/hexa_piter.hh>
int main()
Index: tests/unit_test/mln_linear_convolve_directional.cc
--- tests/unit_test/mln_linear_convolve_directional.cc (revision 3032)
+++ tests/unit_test/mln_linear_convolve_directional.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/linear/convolve_directional.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/linear/convolve_directional.hh>
#include <mln/linear/convolve_directional.hh>
int main()
Index: tests/unit_test/mln_draw_line.cc
--- tests/unit_test/mln_draw_line.cc (revision 3032)
+++ tests/unit_test/mln_draw_line.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/draw/line.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/draw/line.hh>
#include <mln/draw/line.hh>
int main()
Index: tests/unit_test/mln_core_image_interpolated.cc
--- tests/unit_test/mln_core_image_interpolated.cc (revision 3032)
+++ tests/unit_test/mln_core_image_interpolated.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/interpolated.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/interpolated.hh>
#include <mln/core/image/interpolated.hh>
int main()
Index: tests/unit_test/mln_fun_x2p_all.cc
--- tests/unit_test/mln_fun_x2p_all.cc (revision 3032)
+++ tests/unit_test/mln_fun_x2p_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/x2p/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/x2p/all.hh>
#include <mln/fun/x2p/all.hh>
int main()
Index: tests/unit_test/mln_canvas_browsing_hyper_directional.cc
--- tests/unit_test/mln_canvas_browsing_hyper_directional.cc (revision 3032)
+++ tests/unit_test/mln_canvas_browsing_hyper_directional.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/canvas/browsing/hyper_directional.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/canvas/browsing/hyper_directional.hh>
#include <mln/canvas/browsing/hyper_directional.hh>
int main()
Index: tests/unit_test/mln_level_fill_with_image.cc
--- tests/unit_test/mln_level_fill_with_image.cc (revision 3032)
+++ tests/unit_test/mln_level_fill_with_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/fill_with_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/fill_with_image.hh>
#include <mln/level/fill_with_image.hh>
int main()
Index: tests/unit_test/mln_morpho_elementary_like_ero_fun.cc
--- tests/unit_test/mln_morpho_elementary_like_ero_fun.cc (revision 3032)
+++ tests/unit_test/mln_morpho_elementary_like_ero_fun.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/elementary/like_ero_fun.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/elementary/like_ero_fun.hh>
#include <mln/morpho/elementary/like_ero_fun.hh>
int main()
Index: tests/unit_test/mln_convert_to_p_set.cc
--- tests/unit_test/mln_convert_to_p_set.cc (revision 3032)
+++ tests/unit_test/mln_convert_to_p_set.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/convert/to_p_set.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/convert/to_p_set.hh>
#include <mln/convert/to_p_set.hh>
int main()
Index: tests/unit_test/mln_level_approx_median.cc
--- tests/unit_test/mln_level_approx_median.cc (revision 3032)
+++ tests/unit_test/mln_level_approx_median.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/approx/median.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/approx/median.hh>
#include <mln/level/approx/median.hh>
int main()
Index: tests/unit_test/mln_literal_colors.cc
--- tests/unit_test/mln_literal_colors.cc (revision 3032)
+++ tests/unit_test/mln_literal_colors.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/literal/colors.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/literal/colors.hh>
#include <mln/literal/colors.hh>
int main()
Index: tests/unit_test/mln_util_internal_edge_impl.cc
--- tests/unit_test/mln_util_internal_edge_impl.cc (revision 3032)
+++ tests/unit_test/mln_util_internal_edge_impl.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/internal/edge_impl.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/internal/edge_impl.hh>
#include <mln/util/internal/edge_impl.hh>
int main()
Index: tests/unit_test/mln_core_image_bgraph_image.cc
--- tests/unit_test/mln_core_image_bgraph_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_bgraph_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/bgraph_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/bgraph_image.hh>
#include <mln/core/image/bgraph_image.hh>
int main()
Index: tests/unit_test/mln_value_concept_all.cc
--- tests/unit_test/mln_value_concept_all.cc (revision 3032)
+++ tests/unit_test/mln_value_concept_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/concept/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/concept/all.hh>
#include <mln/value/concept/all.hh>
int main()
Index: tests/unit_test/mln_trait_op_or.cc
--- tests/unit_test/mln_trait_op_or.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_or.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/or.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/or.hh>
#include <mln/trait/op/or.hh>
int main()
Index: tests/unit_test/mln_accu_transform_directional.cc
--- tests/unit_test/mln_accu_transform_directional.cc (revision 3032)
+++ tests/unit_test/mln_accu_transform_directional.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/transform_directional.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/transform_directional.hh>
#include <mln/accu/transform_directional.hh>
int main()
Index: tests/unit_test/mln_morpho_rank_filter.cc
--- tests/unit_test/mln_morpho_rank_filter.cc (revision 3032)
+++ tests/unit_test/mln_morpho_rank_filter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/rank_filter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/rank_filter.hh>
#include <mln/morpho/rank_filter.hh>
int main()
Index: tests/unit_test/mln_value_viter.cc
--- tests/unit_test/mln_value_viter.cc (revision 3032)
+++ tests/unit_test/mln_value_viter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/viter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/viter.hh>
#include <mln/value/viter.hh>
int main()
Index: tests/unit_test/mln_core_internal_site_set_iterator_base.cc
--- tests/unit_test/mln_core_internal_site_set_iterator_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_site_set_iterator_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/site_set_iterator_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/site_set_iterator_base.hh>
#include <mln/core/internal/site_set_iterator_base.hh>
int main()
Index: tests/unit_test/mln_topo_adj_higher_face_iter.cc
--- tests/unit_test/mln_topo_adj_higher_face_iter.cc (revision 3032)
+++ tests/unit_test/mln_topo_adj_higher_face_iter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/adj_higher_face_iter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/adj_higher_face_iter.hh>
#include <mln/topo/adj_higher_face_iter.hh>
int main()
Index: tests/unit_test/mln_convert_impl_from_image_to_site_set.cc
--- tests/unit_test/mln_convert_impl_from_image_to_site_set.cc (revision 3032)
+++ tests/unit_test/mln_convert_impl_from_image_to_site_set.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/convert/impl/from_image_to_site_set.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/convert/impl/from_image_to_site_set.hh>
#include <mln/convert/impl/from_image_to_site_set.hh>
int main()
Index: tests/unit_test/mln_convert_essential.cc
--- tests/unit_test/mln_convert_essential.cc (revision 3032)
+++ tests/unit_test/mln_convert_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/convert/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/convert/essential.hh>
#include <mln/convert/essential.hh>
int main()
Index: tests/unit_test/mln_algebra_quat.cc
--- tests/unit_test/mln_algebra_quat.cc (revision 3032)
+++ tests/unit_test/mln_algebra_quat.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/algebra/quat.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/algebra/quat.hh>
#include <mln/algebra/quat.hh>
int main()
Index: tests/unit_test/mln_morpho_thin_fit.cc
--- tests/unit_test/mln_morpho_thin_fit.cc (revision 3032)
+++ tests/unit_test/mln_morpho_thin_fit.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/thin_fit.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/thin_fit.hh>
#include <mln/morpho/thin_fit.hh>
int main()
Index: tests/unit_test/mln_debug_format.cc
--- tests/unit_test/mln_debug_format.cc (revision 3032)
+++ tests/unit_test/mln_debug_format.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/debug/format.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/debug/format.hh>
#include <mln/debug/format.hh>
int main()
Index: tests/unit_test/mln_value_concept_essential.cc
--- tests/unit_test/mln_value_concept_essential.cc (revision 3032)
+++ tests/unit_test/mln_value_concept_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/concept/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/concept/essential.hh>
#include <mln/value/concept/essential.hh>
int main()
Index: tests/unit_test/mln_pw_cst.cc
--- tests/unit_test/mln_pw_cst.cc (revision 3032)
+++ tests/unit_test/mln_pw_cst.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/pw/cst.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/pw/cst.hh>
#include <mln/pw/cst.hh>
int main()
Index: tests/unit_test/mln_topo_face.cc
--- tests/unit_test/mln_topo_face.cc (revision 3032)
+++ tests/unit_test/mln_topo_face.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/face.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/face.hh>
#include <mln/topo/face.hh>
int main()
Index: tests/unit_test/mln_fun_v2v_id.cc
--- tests/unit_test/mln_fun_v2v_id.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2v_id.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2v/id.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2v/id.hh>
#include <mln/fun/v2v/id.hh>
int main()
Index: tests/unit_test/mln_core_point.cc
--- tests/unit_test/mln_core_point.cc (revision 3032)
+++ tests/unit_test/mln_core_point.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/point.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/point.hh>
#include <mln/core/point.hh>
int main()
Index: tests/unit_test/mln_metal_is_unqualif.cc
--- tests/unit_test/mln_metal_is_unqualif.cc (revision 3032)
+++ tests/unit_test/mln_metal_is_unqualif.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/is_unqualif.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/is_unqualif.hh>
#include <mln/metal/is_unqualif.hh>
int main()
Index: tests/unit_test/mln_trait_op_and.cc
--- tests/unit_test/mln_trait_op_and.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_and.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/and.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/and.hh>
#include <mln/trait/op/and.hh>
int main()
Index: tests/unit_test/mln_extension_all.cc
--- tests/unit_test/mln_extension_all.cc (revision 3032)
+++ tests/unit_test/mln_extension_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/extension/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/extension/all.hh>
#include <mln/extension/all.hh>
int main()
Index: tests/unit_test/mln_registration_registration.cc
--- tests/unit_test/mln_registration_registration.cc (revision 3032)
+++ tests/unit_test/mln_registration_registration.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/registration/registration.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/registration/registration.hh>
#include <mln/registration/registration.hh>
int main()
Index: tests/unit_test/mln_value_concept_integer.cc
--- tests/unit_test/mln_value_concept_integer.cc (revision 3032)
+++ tests/unit_test/mln_value_concept_integer.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/concept/integer.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/concept/integer.hh>
#include <mln/value/concept/integer.hh>
int main()
Index: tests/unit_test/mln_core_internal_neighborhood_base.cc
--- tests/unit_test/mln_core_internal_neighborhood_base.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_neighborhood_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/neighborhood_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/neighborhood_base.hh>
#include <mln/core/internal/neighborhood_base.hh>
int main()
Index: tests/unit_test/mln_border_all.cc
--- tests/unit_test/mln_border_all.cc (revision 3032)
+++ tests/unit_test/mln_border_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/border/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/border/all.hh>
#include <mln/border/all.hh>
int main()
Index: tests/unit_test/mln_core_box_runstart_piter.cc
--- tests/unit_test/mln_core_box_runstart_piter.cc (revision 3032)
+++ tests/unit_test/mln_core_box_runstart_piter.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/box_runstart_piter.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/box_runstart_piter.hh>
#include <mln/core/box_runstart_piter.hh>
int main()
Index: tests/unit_test/mln_metal_unqualif.cc
--- tests/unit_test/mln_metal_unqualif.cc (revision 3032)
+++ tests/unit_test/mln_metal_unqualif.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/unqualif.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/unqualif.hh>
#include <mln/metal/unqualif.hh>
int main()
Index: tests/unit_test/mln_core_alias_point3df.cc
--- tests/unit_test/mln_core_alias_point3df.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_point3df.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/point3df.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/point3df.hh>
#include <mln/core/alias/point3df.hh>
int main()
Index: tests/unit_test/mln_trait_value_all.cc
--- tests/unit_test/mln_trait_value_all.cc (revision 3032)
+++ tests/unit_test/mln_trait_value_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/value/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/value/all.hh>
#include <mln/trait/value/all.hh>
int main()
Index: tests/unit_test/mln_make_double_neighb2d.cc
--- tests/unit_test/mln_make_double_neighb2d.cc (revision 3032)
+++ tests/unit_test/mln_make_double_neighb2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/double_neighb2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/double_neighb2d.hh>
#include <mln/make/double_neighb2d.hh>
int main()
Index: tests/unit_test/mln_core_image_obased_rle_image.cc
--- tests/unit_test/mln_core_image_obased_rle_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_obased_rle_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/obased_rle_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/obased_rle_image.hh>
#include <mln/core/image/obased_rle_image.hh>
int main()
Index: tests/unit_test/mln_core_concept_iterator.cc
--- tests/unit_test/mln_core_concept_iterator.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_iterator.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/iterator.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/iterator.hh>
#include <mln/core/concept/iterator.hh>
int main()
Index: tests/unit_test/mln_value_concept_scalar.cc
--- tests/unit_test/mln_value_concept_scalar.cc (revision 3032)
+++ tests/unit_test/mln_value_concept_scalar.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/concept/scalar.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/concept/scalar.hh>
#include <mln/value/concept/scalar.hh>
int main()
Index: tests/unit_test/mln_level_fill.cc
--- tests/unit_test/mln_level_fill.cc (revision 3032)
+++ tests/unit_test/mln_level_fill.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/fill.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/fill.hh>
#include <mln/level/fill.hh>
int main()
Index: tests/unit_test/mln_make_mat.cc
--- tests/unit_test/mln_make_mat.cc (revision 3032)
+++ tests/unit_test/mln_make_mat.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/mat.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/mat.hh>
#include <mln/make/mat.hh>
int main()
Index: tests/unit_test/mln_trait_op_mod.cc
--- tests/unit_test/mln_trait_op_mod.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_mod.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/mod.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/mod.hh>
#include <mln/trait/op/mod.hh>
int main()
Index: tests/unit_test/mln_trait_op_preinc.cc
--- tests/unit_test/mln_trait_op_preinc.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_preinc.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/preinc.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/preinc.hh>
#include <mln/trait/op/preinc.hh>
int main()
Index: tests/unit_test/mln_morpho_closing.cc
--- tests/unit_test/mln_morpho_closing.cc (revision 3032)
+++ tests/unit_test/mln_morpho_closing.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/closing.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/closing.hh>
#include <mln/morpho/closing.hh>
int main()
Index: tests/unit_test/mln_accu_min_max.cc
--- tests/unit_test/mln_accu_min_max.cc (revision 3032)
+++ tests/unit_test/mln_accu_min_max.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/min_max.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/min_max.hh>
#include <mln/accu/min_max.hh>
int main()
Index: tests/unit_test/mln_util_internal_graph_base.cc
--- tests/unit_test/mln_util_internal_graph_base.cc (revision 3032)
+++ tests/unit_test/mln_util_internal_graph_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/internal/graph_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/internal/graph_base.hh>
#include <mln/util/internal/graph_base.hh>
int main()
Index: tests/unit_test/mln_core_routine_all.cc
--- tests/unit_test/mln_core_routine_all.cc (revision 3032)
+++ tests/unit_test/mln_core_routine_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/routine/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/routine/all.hh>
#include <mln/core/routine/all.hh>
int main()
Index: tests/unit_test/mln_fun_p2b_has.cc
--- tests/unit_test/mln_fun_p2b_has.cc (revision 3032)
+++ tests/unit_test/mln_fun_p2b_has.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/p2b/has.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/p2b/has.hh>
#include <mln/fun/p2b/has.hh>
int main()
Index: tests/unit_test/mln_value_graylevel.cc
--- tests/unit_test/mln_value_graylevel.cc (revision 3032)
+++ tests/unit_test/mln_value_graylevel.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/graylevel.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/graylevel.hh>
#include <mln/value/graylevel.hh>
int main()
Index: tests/unit_test/mln_make_dpoint2d_h.cc
--- tests/unit_test/mln_make_dpoint2d_h.cc (revision 3032)
+++ tests/unit_test/mln_make_dpoint2d_h.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/dpoint2d_h.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/dpoint2d_h.hh>
#include <mln/make/dpoint2d_h.hh>
int main()
Index: tests/unit_test/mln_io_pnm_load_header.cc
--- tests/unit_test/mln_io_pnm_load_header.cc (revision 3032)
+++ tests/unit_test/mln_io_pnm_load_header.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/io/pnm/load_header.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/io/pnm/load_header.hh>
#include <mln/io/pnm/load_header.hh>
int main()
Index: tests/unit_test/mln_value_internal_iterable_set.cc
--- tests/unit_test/mln_value_internal_iterable_set.cc (revision 3032)
+++ tests/unit_test/mln_value_internal_iterable_set.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/internal/iterable_set.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/internal/iterable_set.hh>
#include <mln/value/internal/iterable_set.hh>
int main()
Index: tests/unit_test/mln_subsampling_essential.cc
--- tests/unit_test/mln_subsampling_essential.cc (revision 3032)
+++ tests/unit_test/mln_subsampling_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/subsampling/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/subsampling/essential.hh>
#include <mln/subsampling/essential.hh>
int main()
Index: tests/unit_test/mln_level_abs.cc
--- tests/unit_test/mln_level_abs.cc (revision 3032)
+++ tests/unit_test/mln_level_abs.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/abs.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/abs.hh>
#include <mln/level/abs.hh>
int main()
Index: tests/unit_test/mln_value_sign.cc
--- tests/unit_test/mln_value_sign.cc (revision 3032)
+++ tests/unit_test/mln_value_sign.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/sign.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/sign.hh>
#include <mln/value/sign.hh>
int main()
Index: tests/unit_test/mln_arith_revert.cc
--- tests/unit_test/mln_arith_revert.cc (revision 3032)
+++ tests/unit_test/mln_arith_revert.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/arith/revert.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/arith/revert.hh>
#include <mln/arith/revert.hh>
int main()
Index: tests/unit_test/mln_convert_to_p_array.cc
--- tests/unit_test/mln_convert_to_p_array.cc (revision 3032)
+++ tests/unit_test/mln_convert_to_p_array.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/convert/to_p_array.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/convert/to_p_array.hh>
#include <mln/convert/to_p_array.hh>
int main()
Index: tests/unit_test/mln_linear_ch_convolve.cc
--- tests/unit_test/mln_linear_ch_convolve.cc (revision 3032)
+++ tests/unit_test/mln_linear_ch_convolve.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/linear/ch_convolve.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/linear/ch_convolve.hh>
#include <mln/linear/ch_convolve.hh>
int main()
Index: tests/unit_test/mln_util_greater_point.cc
--- tests/unit_test/mln_util_greater_point.cc (revision 3032)
+++ tests/unit_test/mln_util_greater_point.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/greater_point.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/greater_point.hh>
#include <mln/util/greater_point.hh>
int main()
Index: tests/unit_test/mln_fun_internal_x2x_linear_impl.cc
--- tests/unit_test/mln_fun_internal_x2x_linear_impl.cc (revision 3032)
+++ tests/unit_test/mln_fun_internal_x2x_linear_impl.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/internal/x2x_linear_impl.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/internal/x2x_linear_impl.hh>
#include <mln/fun/internal/x2x_linear_impl.hh>
int main()
Index: tests/unit_test/mln_fun_cast.cc
--- tests/unit_test/mln_fun_cast.cc (revision 3032)
+++ tests/unit_test/mln_fun_cast.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/cast.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/cast.hh>
#include <mln/fun/cast.hh>
int main()
Index: tests/unit_test/mln_core_image_flat_image.cc
--- tests/unit_test/mln_core_image_flat_image.cc (revision 3032)
+++ tests/unit_test/mln_core_image_flat_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/flat_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/flat_image.hh>
#include <mln/core/image/flat_image.hh>
int main()
Index: tests/unit_test/mln_set_essential.cc
--- tests/unit_test/mln_set_essential.cc (revision 3032)
+++ tests/unit_test/mln_set_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/set/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/set/essential.hh>
#include <mln/set/essential.hh>
int main()
Index: tests/unit_test/mln_literal_essential.cc
--- tests/unit_test/mln_literal_essential.cc (revision 3032)
+++ tests/unit_test/mln_literal_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/literal/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/literal/essential.hh>
#include <mln/literal/essential.hh>
int main()
Index: tests/unit_test/mln_topo_complex_iterators.cc
--- tests/unit_test/mln_topo_complex_iterators.cc (revision 3032)
+++ tests/unit_test/mln_topo_complex_iterators.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/complex_iterators.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/complex_iterators.hh>
#include <mln/topo/complex_iterators.hh>
int main()
Index: tests/unit_test/mln_accu_transform_diagonal.cc
--- tests/unit_test/mln_accu_transform_diagonal.cc (revision 3032)
+++ tests/unit_test/mln_accu_transform_diagonal.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/transform_diagonal.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/transform_diagonal.hh>
#include <mln/accu/transform_diagonal.hh>
int main()
Index: tests/unit_test/mln_core_internal_geom_bbox.cc
--- tests/unit_test/mln_core_internal_geom_bbox.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_geom_bbox.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/geom_bbox.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/geom_bbox.hh>
#include <mln/core/internal/geom_bbox.hh>
int main()
Index: tests/unit_test/mln_core_alias_box2d_h.cc
--- tests/unit_test/mln_core_alias_box2d_h.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_box2d_h.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/box2d_h.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/box2d_h.hh>
#include <mln/core/alias/box2d_h.hh>
int main()
Index: tests/unit_test/mln_fun_p2v_all.cc
--- tests/unit_test/mln_fun_p2v_all.cc (revision 3032)
+++ tests/unit_test/mln_fun_p2v_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/p2v/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/p2v/all.hh>
#include <mln/fun/p2v/all.hh>
int main()
Index: tests/unit_test/mln_fun_vv2v_land.cc
--- tests/unit_test/mln_fun_vv2v_land.cc (revision 3032)
+++ tests/unit_test/mln_fun_vv2v_land.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/vv2v/land.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/vv2v/land.hh>
#include <mln/fun/vv2v/land.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_vertices.cc
--- tests/unit_test/mln_core_site_set_p_vertices.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_vertices.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_vertices.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_vertices.hh>
#include <mln/core/site_set/p_vertices.hh>
int main()
Index: tests/unit_test/mln_core_alias_dpoint2d_h.cc
--- tests/unit_test/mln_core_alias_dpoint2d_h.cc (revision 3032)
+++ tests/unit_test/mln_core_alias_dpoint2d_h.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/alias/dpoint2d_h.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/alias/dpoint2d_h.hh>
#include <mln/core/alias/dpoint2d_h.hh>
int main()
Index: tests/unit_test/mln_essential_2d.cc
--- tests/unit_test/mln_essential_2d.cc (revision 3032)
+++ tests/unit_test/mln_essential_2d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/essential/2d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/essential/2d.hh>
#include <mln/essential/2d.hh>
int main()
Index: tests/unit_test/mln_util_site_pair.cc
--- tests/unit_test/mln_util_site_pair.cc (revision 3032)
+++ tests/unit_test/mln_util_site_pair.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/site_pair.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/site_pair.hh>
#include <mln/util/site_pair.hh>
int main()
Index: tests/unit_test/mln_trait_op_geq.cc
--- tests/unit_test/mln_trait_op_geq.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_geq.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/geq.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/geq.hh>
#include <mln/trait/op/geq.hh>
int main()
Index: tests/unit_test/mln_pw_all.cc
--- tests/unit_test/mln_pw_all.cc (revision 3032)
+++ tests/unit_test/mln_pw_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/pw/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/pw/all.hh>
#include <mln/pw/all.hh>
int main()
Index: tests/unit_test/mln_core_site_set_p_vertices_psite.cc
--- tests/unit_test/mln_core_site_set_p_vertices_psite.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_p_vertices_psite.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/p_vertices_psite.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/p_vertices_psite.hh>
#include <mln/core/site_set/p_vertices_psite.hh>
int main()
Index: tests/unit_test/mln_core_image_image3d.cc
--- tests/unit_test/mln_core_image_image3d.cc (revision 3032)
+++ tests/unit_test/mln_core_image_image3d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/image/image3d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/image/image3d.hh>
#include <mln/core/image/image3d.hh>
int main()
Index: tests/unit_test/mln_value_builtin_symbolics.cc
--- tests/unit_test/mln_value_builtin_symbolics.cc (revision 3032)
+++ tests/unit_test/mln_value_builtin_symbolics.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/builtin/symbolics.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/builtin/symbolics.hh>
#include <mln/value/builtin/symbolics.hh>
int main()
Index: tests/unit_test/mln_registration_internal_rms.cc
--- tests/unit_test/mln_registration_internal_rms.cc (revision 3032)
+++ tests/unit_test/mln_registration_internal_rms.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/registration/internal/rms.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/registration/internal/rms.hh>
#include <mln/registration/internal/rms.hh>
int main()
Index: tests/unit_test/mln_core_internal_morpher_lvalue.cc
--- tests/unit_test/mln_core_internal_morpher_lvalue.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_morpher_lvalue.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/morpher_lvalue.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/morpher_lvalue.hh>
#include <mln/core/internal/morpher_lvalue.hh>
int main()
Index: tests/unit_test/mln_border_thickness.cc
--- tests/unit_test/mln_border_thickness.cc (revision 3032)
+++ tests/unit_test/mln_border_thickness.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/border/thickness.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/border/thickness.hh>
#include <mln/border/thickness.hh>
int main()
Index: tests/unit_test/mln_logical_not.cc
--- tests/unit_test/mln_logical_not.cc (revision 3032)
+++ tests/unit_test/mln_logical_not.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/logical/not.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/logical/not.hh>
#include <mln/logical/not.hh>
int main()
Index: tests/unit_test/mln_core_concept_doc_value_set.cc
--- tests/unit_test/mln_core_concept_doc_value_set.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_doc_value_set.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/doc/value_set.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/doc/value_set.hh>
#include <mln/core/concept/doc/value_set.hh>
int main()
Index: tests/unit_test/mln_fun_i2v_all.cc
--- tests/unit_test/mln_fun_i2v_all.cc (revision 3032)
+++ tests/unit_test/mln_fun_i2v_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/i2v/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/i2v/all.hh>
#include <mln/fun/i2v/all.hh>
int main()
Index: tests/unit_test/mln_math_essential.cc
--- tests/unit_test/mln_math_essential.cc (revision 3032)
+++ tests/unit_test/mln_math_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/math/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/math/essential.hh>
#include <mln/math/essential.hh>
int main()
Index: tests/unit_test/mln_util_internal_boost_graph.cc
--- tests/unit_test/mln_util_internal_boost_graph.cc (revision 3032)
+++ tests/unit_test/mln_util_internal_boost_graph.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/internal/boost_graph.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/internal/boost_graph.hh>
#include <mln/util/internal/boost_graph.hh>
int main()
Index: tests/unit_test/mln_value_internal_all.cc
--- tests/unit_test/mln_value_internal_all.cc (revision 3032)
+++ tests/unit_test/mln_value_internal_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/value/internal/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/value/internal/all.hh>
#include <mln/value/internal/all.hh>
int main()
Index: tests/unit_test/mln_fun_p2v_elifs.cc
--- tests/unit_test/mln_fun_p2v_elifs.cc (revision 3032)
+++ tests/unit_test/mln_fun_p2v_elifs.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/p2v/elifs.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/p2v/elifs.hh>
#include <mln/fun/p2v/elifs.hh>
int main()
Index: tests/unit_test/mln_accu_all.cc
--- tests/unit_test/mln_accu_all.cc (revision 3032)
+++ tests/unit_test/mln_accu_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/all.hh>
#include <mln/accu/all.hh>
int main()
Index: tests/unit_test/mln_level_fill_with_value.cc
--- tests/unit_test/mln_level_fill_with_value.cc (revision 3032)
+++ tests/unit_test/mln_level_fill_with_value.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/level/fill_with_value.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/level/fill_with_value.hh>
#include <mln/level/fill_with_value.hh>
int main()
Index: tests/unit_test/mln_util_internal_boost_graph_property.cc
--- tests/unit_test/mln_util_internal_boost_graph_property.cc (revision 3032)
+++ tests/unit_test/mln_util_internal_boost_graph_property.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/internal/boost_graph_property.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/internal/boost_graph_property.hh>
#include <mln/util/internal/boost_graph_property.hh>
int main()
Index: tests/unit_test/mln_registration_icp.cc
--- tests/unit_test/mln_registration_icp.cc (revision 3032)
+++ tests/unit_test/mln_registration_icp.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/registration/icp.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/registration/icp.hh>
#include <mln/registration/icp.hh>
int main()
Index: tests/unit_test/mln_core_internal_pixel_impl.cc
--- tests/unit_test/mln_core_internal_pixel_impl.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_pixel_impl.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/pixel_impl.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/pixel_impl.hh>
#include <mln/core/internal/pixel_impl.hh>
int main()
Index: tests/unit_test/mln_fun_x2x_translation.cc
--- tests/unit_test/mln_fun_x2x_translation.cc (revision 3032)
+++ tests/unit_test/mln_fun_x2x_translation.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/x2x/translation.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/x2x/translation.hh>
#include <mln/fun/x2x/translation.hh>
int main()
Index: tests/unit_test/mln_morpho_plus.cc
--- tests/unit_test/mln_morpho_plus.cc (revision 3032)
+++ tests/unit_test/mln_morpho_plus.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/plus.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/plus.hh>
#include <mln/morpho/plus.hh>
int main()
Index: tests/unit_test/mln_util_internal_graph_iter_base.cc
--- tests/unit_test/mln_util_internal_graph_iter_base.cc (revision 3032)
+++ tests/unit_test/mln_util_internal_graph_iter_base.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/util/internal/graph_iter_base.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/util/internal/graph_iter_base.hh>
#include <mln/util/internal/graph_iter_base.hh>
int main()
Index: tests/unit_test/mln_topo_complex.cc
--- tests/unit_test/mln_topo_complex.cc (revision 3032)
+++ tests/unit_test/mln_topo_complex.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/topo/complex.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/topo/complex.hh>
#include <mln/topo/complex.hh>
int main()
Index: tests/unit_test/mln_trait_op_decl.cc
--- tests/unit_test/mln_trait_op_decl.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_decl.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/decl.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/decl.hh>
#include <mln/trait/op/decl.hh>
int main()
Index: tests/unit_test/mln_metal_is_not_ref.cc
--- tests/unit_test/mln_metal_is_not_ref.cc (revision 3032)
+++ tests/unit_test/mln_metal_is_not_ref.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/metal/is_not_ref.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/metal/is_not_ref.hh>
#include <mln/metal/is_not_ref.hh>
int main()
Index: tests/unit_test/mln_trait_op_xor.cc
--- tests/unit_test/mln_trait_op_xor.cc (revision 3032)
+++ tests/unit_test/mln_trait_op_xor.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/op/xor.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/op/xor.hh>
#include <mln/trait/op/xor.hh>
int main()
Index: tests/unit_test/mln_accu_mean.cc
--- tests/unit_test/mln_accu_mean.cc (revision 3032)
+++ tests/unit_test/mln_accu_mean.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/accu/mean.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/accu/mean.hh>
#include <mln/accu/mean.hh>
int main()
Index: tests/unit_test/mln_morpho_essential.cc
--- tests/unit_test/mln_morpho_essential.cc (revision 3032)
+++ tests/unit_test/mln_morpho_essential.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/morpho/essential.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/morpho/essential.hh>
#include <mln/morpho/essential.hh>
int main()
Index: tests/unit_test/mln_make_box3d.cc
--- tests/unit_test/mln_make_box3d.cc (revision 3032)
+++ tests/unit_test/mln_make_box3d.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/box3d.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/box3d.hh>
#include <mln/make/box3d.hh>
int main()
Index: tests/unit_test/mln_fun_v2b_threshold.cc
--- tests/unit_test/mln_fun_v2b_threshold.cc (revision 3032)
+++ tests/unit_test/mln_fun_v2b_threshold.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/fun/v2b/threshold.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/fun/v2b/threshold.hh>
#include <mln/fun/v2b/threshold.hh>
int main()
Index: tests/unit_test/mln_border_find.cc
--- tests/unit_test/mln_border_find.cc (revision 3032)
+++ tests/unit_test/mln_border_find.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/border/find.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/border/find.hh>
#include <mln/border/find.hh>
int main()
Index: tests/unit_test/mln_core_internal_box_impl.cc
--- tests/unit_test/mln_core_internal_box_impl.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_box_impl.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/box_impl.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/box_impl.hh>
#include <mln/core/internal/box_impl.hh>
int main()
Index: tests/unit_test/mln_histo_all.cc
--- tests/unit_test/mln_histo_all.cc (revision 3032)
+++ tests/unit_test/mln_histo_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/histo/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/histo/all.hh>
#include <mln/histo/all.hh>
int main()
Index: tests/unit_test/mln_make_pixel.cc
--- tests/unit_test/mln_make_pixel.cc (revision 3032)
+++ tests/unit_test/mln_make_pixel.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/make/pixel.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/make/pixel.hh>
#include <mln/make/pixel.hh>
int main()
Index: tests/unit_test/mln_math_abs.cc
--- tests/unit_test/mln_math_abs.cc (revision 3032)
+++ tests/unit_test/mln_math_abs.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/math/abs.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/math/abs.hh>
#include <mln/math/abs.hh>
int main()
Index: tests/unit_test/mln_extension_adjust_duplicate.cc
--- tests/unit_test/mln_extension_adjust_duplicate.cc (revision 3032)
+++ tests/unit_test/mln_extension_adjust_duplicate.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/extension/adjust_duplicate.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/extension/adjust_duplicate.hh>
#include <mln/extension/adjust_duplicate.hh>
int main()
Index: tests/unit_test/mln_core_concept_dpoint.cc
--- tests/unit_test/mln_core_concept_dpoint.cc (revision 3032)
+++ tests/unit_test/mln_core_concept_dpoint.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/concept/dpoint.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/concept/dpoint.hh>
#include <mln/core/concept/dpoint.hh>
int main()
Index: tests/unit_test/mln_core_site_set_complex_psite.cc
--- tests/unit_test/mln_core_site_set_complex_psite.cc (revision 3032)
+++ tests/unit_test/mln_core_site_set_complex_psite.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/site_set/complex_psite.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/site_set/complex_psite.hh>
#include <mln/core/site_set/complex_psite.hh>
int main()
Index: tests/unit_test/mln_core_internal_neighb_niter_impl.cc
--- tests/unit_test/mln_core_internal_neighb_niter_impl.cc (revision 3032)
+++ tests/unit_test/mln_core_internal_neighb_niter_impl.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/core/internal/neighb_niter_impl.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/core/internal/neighb_niter_impl.hh>
#include <mln/core/internal/neighb_niter_impl.hh>
int main()
Index: tests/unit_test/mln_convert_to_image.cc
--- tests/unit_test/mln_convert_to_image.cc (revision 3032)
+++ tests/unit_test/mln_convert_to_image.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/convert/to_image.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/convert/to_image.hh>
#include <mln/convert/to_image.hh>
int main()
Index: tests/unit_test/mln_literal_all.cc
--- tests/unit_test/mln_literal_all.cc (revision 3032)
+++ tests/unit_test/mln_literal_all.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/literal/all.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/literal/all.hh>
#include <mln/literal/all.hh>
int main()
Index: tests/unit_test/mln_trait_value_kind.cc
--- tests/unit_test/mln_trait_value_kind.cc (revision 3032)
+++ tests/unit_test/mln_trait_value_kind.cc (working copy)
@@ -1,5 +1,8 @@
// Unit test for mln/trait/value/kind.hh.
-// Generated file, do not modify.
+// Generated by ./build_unit_test.sh, do not modify.
+
+// Include the file twice, so we detect missing inclusion guards.
+#include <mln/trait/value/kind.hh>
#include <mln/trait/value/kind.hh>
int main()
https://svn.lrde.epita.fr/svn/oln/trunk/milena/sandbox
Index: ChangeLog
from Ugo Jardonnet <ugo.jardonnet(a)lrde.epita.fr>
Mark bad test in nwst.
* jardonnet/n_cmpt/nwst.hh: Wrong shed test.
* jardonnet/n_cmpt/n_cmpt5.hh: Beautify.
n_cmpt5.hh | 10 +---------
nwst.hh | 2 +-
2 files changed, 2 insertions(+), 10 deletions(-)
Index: jardonnet/n_cmpt/nwst.hh
--- jardonnet/n_cmpt/nwst.hh (revision 3030)
+++ jardonnet/n_cmpt/nwst.hh (working copy)
@@ -157,7 +157,7 @@
}
// mark limit point
- if (parent(p) != parent(n))
+ if (parent(p) != parent(n)) // wrong
wst(p) = literal::red;
}
}
Index: jardonnet/n_cmpt/n_cmpt5.hh
--- jardonnet/n_cmpt/n_cmpt5.hh (revision 3030)
+++ jardonnet/n_cmpt/n_cmpt5.hh (working copy)
@@ -186,15 +186,7 @@
mln_bkd_piter(S) p(sp);
for_all(p)
if (parent(p) == p) // p is root.
- {
- //FIXME: if minimas have same values. Components are not visible.
- //Using min_v instead of ima does not really fix it.
- //see propagation of min_v values.
- //Maybe this is only a part of the problem:
- // n_cmpt4 claims that n components remain,
- // which is visually false.
- output(p) = iota(p) * 10; //(p[0] + p[1]) * 10;
- }
+ output(p) = iota(p) * 10;
else
output(p) = output(parent(p));
}
https://svn.lrde.epita.fr/svn/oln/trunk/milena/sandbox
Index: ChangeLog
from Ugo Jardonnet <ugo.jardonnet(a)lrde.epita.fr>
Work around different class but same parent(p) value.
* jardonnet/n_cmpt/n_cmpt5.cc: Same as v4.
* jardonnet/n_cmpt/n_cmpt5.hh: Same as v4. Use iota image.
* jardonnet/n_cmpt/Makefile: Add n_cmpt5 rules.
* jardonnet/TODO: Cleanup.
TODO | 27 ------
n_cmpt/Makefile | 8 +-
n_cmpt/n_cmpt5.cc | 48 ++++++++++++
n_cmpt/n_cmpt5.hh | 212 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
4 files changed, 267 insertions(+), 28 deletions(-)
Index: jardonnet/n_cmpt/n_cmpt5.cc
--- jardonnet/n_cmpt/n_cmpt5.cc (revision 0)
+++ jardonnet/n_cmpt/n_cmpt5.cc (revision 0)
@@ -0,0 +1,48 @@
+
+#include <iostream>
+
+#include <mln/core/image/image2d.hh>
+#include <mln/core/alias/neighb2d.hh>
+#include <mln/value/int_u8.hh>
+
+#include <mln/make/image.hh>
+#include <mln/core/alias/neighb1d.hh>
+
+#include <mln/io/pgm/load.hh>
+#include <mln/io/pgm/save.hh>
+
+#include "n_cmpt5.hh"
+
+using namespace mln;
+using namespace mln::value;
+
+bool usage(int argc, char ** argv)
+{
+ if (argc != 3)
+ {
+ std::cout << argv[0] << " ima.pgm lambda" << std::endl;
+ return false;
+ }
+ return true;
+}
+
+int main(int argc, char ** argv)
+{
+ if (not usage(argc,argv))
+ return 1;
+
+ image2d<int_u8> ima;
+ io::pgm::load(ima, argv[1]);
+ unsigned lambda = atoi(argv[2]);
+
+ ima(point2d(0,3)) = 106;
+
+ int_u8 tab[] = {2,3,1,0,2,3,4,5,1,1,0,5,6,8,7,1,1,2,3,4};
+ image1d<int_u8> ima1= make::image(tab);
+
+ // std::cout << "/output/" << std::endl;
+ // debug::println(n_cmpt::n_cmpt3(ima1, c2(), lambda));
+
+ io::pgm::save(n_cmpt::n_cmpt3(ima, c4(), lambda),
+ "out.pgm");
+}
Index: jardonnet/n_cmpt/n_cmpt5.hh
--- jardonnet/n_cmpt/n_cmpt5.hh (revision 0)
+++ jardonnet/n_cmpt/n_cmpt5.hh (revision 0)
@@ -0,0 +1,212 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+#ifndef MLN_N_CMPT3_HH
+# define MLN_N_CMPT3_HH
+
+# include <mln/labeling/regional_minima.hh>
+# include <mln/core/alias/neighb2d.hh>
+# include <mln/util/set.hh>
+
+# include <mln/debug/println.hh>
+# include <mln/debug/iota.hh>
+
+# include <mln/accu/volume.hh>
+# include <mln/morpho/tree/data.hh>
+# include <mln/morpho/tree/compute_attribute_image.hh>
+
+namespace mln
+{
+
+ namespace n_cmpt
+ {
+
+ template < typename I >
+ void n_cmpt3(const I& (((((((ima))))))));
+
+# ifndef MLN_INCLUDE_ONLY
+
+ template <typename I>
+ inline
+ mln_psite(I)
+ find_root(I& parent,
+ const mln_psite(I)& x)
+ {
+ if (parent(x) == x)
+ return x;
+ else
+ return parent(x) = find_root(parent, parent(x));
+ }
+
+ template < typename I, typename N>
+ I
+ n_cmpt3(const I& ima, const N& nbh,
+ unsigned lambda)
+ {
+ unsigned label;
+
+ std::cout << "/ima/" << std::endl;
+ debug::println(ima);
+ /*
+ // get /ima/ regional minima
+ mln_ch_value(I, unsigned) min = labeling::regional_minima(ima, nbh, label);
+ std::cout << "/ima/ regional minima" << std::endl;
+ debug::println(min);
+*/
+ // compute volume image
+ typedef p_array<mln_psite(I)> S;
+ typedef mln_ch_value(I,unsigned) V;
+ typedef accu::volume<I> A;
+
+ S sp = level::sort_psites_decreasing(ima);
+ morpho::tree::data<I,S> t(ima, sp, nbh);
+ V volume = morpho::tree::compute_attribute_image(A(), t);
+ sp = level::sort_psites_increasing(volume);
+ std::cout << "/volume/" << std::endl;
+ debug::println(volume);
+
+ // get /volume/ regional minima
+ mln_ch_value(I, unsigned) min_v = labeling::regional_minima(volume, nbh, label);
+ std::cout << "/volume/ regional minima" << std::endl;
+ debug::println(min_v);
+
+ // tester minima de ima == minima de attr
+ //mln_assertion(min == min_v);
+
+ mln_ch_value(I, bool) fused;
+ initialize(fused, volume);
+ mln::level::fill(fused, false);
+
+ // number of minima
+ unsigned cmpts = label;
+
+ if (lambda > cmpts)
+ std::cout << "warning : lambda value is to hight." << std::endl;
+
+ // prepare union find
+ typedef mln_psite(V) P;
+ //data
+ mln_ch_value(V, accu::volume<V>) data(volume.domain());
+ //deja_vu
+ mln_ch_value(V, bool) deja_vu(volume.domain());
+ mln::level::fill(deja_vu, false);
+ //parent
+ mln_ch_value(V, P) parent(volume.domain());
+ {
+ mln_fwd_piter(S) p(sp);
+ for_all(p)
+ {
+ parent(p) = p;
+ if (min_v(p) != 0) // p in a reg min of the attribute image
+ fused(p) = true; // ok
+ }
+ }
+
+ std::cout << "cmpts | volume_set | " << std::endl;
+ std::cout << cmpts << " : ";
+ std::cout << std::endl;
+
+ // union find sur volume
+ mln_fwd_piter(S) p(sp);
+ mln_niter(N) n(nbh, p);
+ for_all(p)
+ {
+ std::cout << p << std::endl;
+ //if (volume(p) > lambda)
+ // goto step2;
+ for_all(n)
+ {
+ if (volume.domain().has(n) && deja_vu(n))
+ {
+ //do_union(n, p);
+ P r = find_root(parent, n);
+ if (r != p)
+ {
+ // One cmpt less if
+ if (volume(r) != volume(p)) // r and p have differerent volumes
+ if (fused(p)) // p already belong to a cmpt (fused for an another n)
+ if (cmpts >= lambda) // union is still alowed
+ cmpts--;
+
+ if (cmpts >= lambda ||
+ volume(r) == volume(p) ||
+ not fused(p))
+ {
+ parent(r) = p;
+ // propagate set
+ fused(p) = true;
+
+ //min_v(p) = min_v(r); //FIXME: fusion may happend with a non minima value
+
+ fused(n) = true; // We cannot mark minima at init ! ... ?
+
+ std::cout << "volume " << volume(p) << " - " << cmpts << std::endl;
+ debug::println(fused);
+ }
+ }
+ }
+ }
+ deja_vu(p) = true;
+ }
+
+ I iota(ima.domain());
+ debug::iota(iota);
+
+// step2:
+ std::cout << std::endl;
+ std::cout << "cmpts : " << cmpts << std::endl;
+
+ // second pass
+ I output(ima.domain());
+ {
+ mln_bkd_piter(S) p(sp);
+ for_all(p)
+ if (parent(p) == p) // p is root.
+ {
+ //FIXME: if minimas have same values. Components are not visible.
+ //Using min_v instead of ima does not really fix it.
+ //see propagation of min_v values.
+ //Maybe this is only a part of the problem:
+ // n_cmpt4 claims that n components remain,
+ // which is visually false.
+ output(p) = iota(p) * 10; //(p[0] + p[1]) * 10;
+ }
+ else
+ output(p) = output(parent(p));
+ }
+
+ return output;
+ }
+
+ } // end of namespace n_cmpt
+
+# endif // ! MLN_INCLUDE_ONLY
+
+} // end of namespace mln
+
+#endif /* MLN_N_CMPT3_HH */
+
Index: jardonnet/n_cmpt/Makefile
--- jardonnet/n_cmpt/Makefile (revision 3027)
+++ jardonnet/n_cmpt/Makefile (working copy)
@@ -10,6 +10,9 @@
n_cmpt4: n_cmpt4.hh n_cmpt4.cc
g++ -I../../.. -Wall -W -Wextra n_cmpt4.cc -DNDEBUG -O1 -o n_cmpt4
+n_cmpt5: n_cmpt5.hh n_cmpt5.cc
+ g++ -I../../.. -Wall -W -Wextra n_cmpt5.cc -DNDEBUG -O1 -o n_cmpt5
+
debug: n_cmpt.hh n_cmpt.cc
g++ -I../../.. -Wall -W -Wextra n_cmpt.cc -g -g3 -o n_cmpt
@@ -19,6 +22,9 @@
debug3: n_cmpt3.hh n_cmpt3.cc
g++ -I../../.. -Wall -W -Wextra n_cmpt3.cc -g -g3 -o n_cmpt3
-debug4: n_cmpt4.hh n_cmpt4.cc
+Debug4: N_cmpt4.hh n_cmpt4.cc
g++ -I../../.. -Wall -W -Wextra n_cmpt4.cc -g -g4 -o n_cmpt4
+Debug5: N_cmpt5.hh n_cmpt5.cc
+ g++ -I../../.. -Wall -W -Wextra n_cmpt5.cc -g -g5 -o n_cmpt5
+
Index: jardonnet/TODO
--- jardonnet/TODO (revision 3027)
+++ jardonnet/TODO (working copy)
@@ -4,30 +4,3 @@
-
gaussian.cc: In function 'int main(int, char*)':
gaussian.cc:22: error: no match for 'operator==' in 'img == out'
-- -
-Check gaussian
-
-- -
-
-adapt test for threshold (old thresholding)
-- -
-
-- -
-write
-trans : vec --> quat
- v |-> m = trans(t)
-
-- -
-io/all.hh cass�
-
-- -
-Mettre au clair center, mean ...
-
-- -
-
-algebra::to_point<P> ne devrait pas etre dans algebra puisqu'il
- est utile pour passer d'un point<int> vers point<float>
-move it in convert
-
-- -
-ecrire cov.hh. quoi en argument (p_array, std::set, std::vector?)
\ No newline at end of file
https://svn.lrde.epita.fr/svn/oln/trunk/milena
Index: ChangeLog
from Thierry Geraud <thierry.geraud(a)lrde.epita.fr>
Fix missing lowq test for morpho general with any elt.
* mln/morpho/general.spe.hh
(general_dispatch_wrt_win): Fix missing test about lowq.
* mln/labeling/flat_zones.hh: Upgrade doc style.
* mln/util/set.hh: Likewise.
labeling/flat_zones.hh | 14 +--
morpho/general.spe.hh | 3
util/set.hh | 193 ++++++++++++++++++++++++-------------------------
3 files changed, 105 insertions(+), 105 deletions(-)
Index: mln/morpho/general.spe.hh
--- mln/morpho/general.spe.hh (revision 3026)
+++ mln/morpho/general.spe.hh (working copy)
@@ -350,6 +350,9 @@
&&
mln_is_simple_window(W)::value
&&
+ mlc_equal(mln_trait_image_quant(I),
+ trait::image::quant::low)::value
+ &&
mlc_not_equal(mln_trait_image_value_storage(I),
trait::image::value_storage::disrupted)::value };
return general_dispatch_wrt_arbitrary_win(metal::bool_<test>(),
Index: mln/labeling/flat_zones.hh
--- mln/labeling/flat_zones.hh (revision 3026)
+++ mln/labeling/flat_zones.hh (working copy)
@@ -44,13 +44,13 @@
namespace labeling
{
- /*! Connected component labeling of the flat zones of an image.
- *
- * \param[in] input The input image.
- * \param[in] nbh The connexity of the flat zones.
- * \param[out] nlabels The number of labels.
- * \return The label image.
- */
+ /// Connected component labeling of the flat zones of an image.
+ ///
+ /// \param[in] input The input image.
+ /// \param[in] nbh The connexity of the flat zones.
+ /// \param[out] nlabels The number of labels.
+ /// \return The label image.
+ ///
template <typename I, typename N, typename L>
mln_ch_value(I, L)
flat_zones(const Image<I>& input, const Neighborhood<N>& nbh, L& nlabels);
Index: mln/util/set.hh
--- mln/util/set.hh (revision 3026)
+++ mln/util/set.hh (working copy)
@@ -1,4 +1,5 @@
// Copyright (C) 2007, 2008 EPITA Research and Development Laboratory
+// (LRDE)
//
// This file is part of the Olena Library. This library is free
// software; you can redistribute it and/or modify it under the terms
@@ -28,14 +29,13 @@
#ifndef MLN_UTIL_SET_HH
# define MLN_UTIL_SET_HH
-/*! \file mln/util/set.hh
- *
- * \brief Definition of mln::util::set.
- *
- * \todo Clean code and test!
- *
- * \todo Zed: Group methods into 2 categories: when frozen, when not.
- */
+/// \file mln/util/set.hh
+///
+/// Definition of mln::util::set.
+///
+/// \todo Clean code and test!
+///
+/// \todo Zed: Group methods into 2 categories: when frozen, when not.
# include <vector>
# include <set>
@@ -58,27 +58,24 @@
template <typename T> class set_bkd_iter;
- /*! \brief An "efficient" mathematical set class.
- *
- *
- *
- * This set class is designed to store a mathematical set and to
- * present it to the user as a linear array (std::vector).
- *
- * Elements are stored by copy. Implementation is lazy.
- *
- * The set has two states: frozen or not. There is an automatic
- * switch of state when the user modifies its contents (insert,
- * remove, or clear) or access to its contents (op[i]).
- *
- * The parameter \c T is the element type, which shall not be
- * const-qualified.
- *
- * The unicity of set elements is handled by the mln::util::ord
- * mechanism.
- *
- * \see mln::util::ord
- */
+ /// \brief An "efficient" mathematical set class.
+ ///
+ /// This set class is designed to store a mathematical set and to
+ /// present it to the user as a linear array (std::vector).
+ ///
+ /// Elements are stored by copy. Implementation is lazy.
+ ///
+ /// The set has two states: frozen or not. There is an automatic
+ /// switch of state when the user modifies its contents (insert,
+ /// remove, or clear) or access to its contents (op[i]).
+ ///
+ /// The parameter \c T is the element type, which shall not be
+ /// const-qualified.
+ ///
+ /// The unicity of set elements is handled by the mln::util::ord
+ /// mechanism.
+ ///
+ /// \see mln::util::ord
template <typename T>
class set : public Object< mln::util::set<T> >
{
@@ -98,67 +95,67 @@
typedef fwd_eiter eiter;
- /*! \brief Insert an element \p elt into the set.
- *
- * \param[in] elt The element to be inserted.
- *
- * If \p elt is already in the set, this method is a no-op.
- *
- * \return The set itself after insertion.
- */
+ /// \brief Insert an element \p elt into the set.
+ ///
+ /// \param[in] elt The element to be inserted.
+ ///
+ /// If \p elt is already in the set, this method is a no-op.
+ ///
+ /// \return The set itself after insertion.
+ ///
set<T>& insert(const T& elt);
- /*! \brief Insert the elements of \p other into the set.
- *
- * \param[in] other The set containing the elements to be inserted.
- *
- * \return The set itself after insertion.
- */
+ /// \brief Insert the elements of \p other into the set.
+ ///
+ /// \param[in] other The set containing the elements to be inserted.
+ ///
+ /// \return The set itself after insertion.
+ ///
template <typename U>
set<T>& insert(const set<U>& other);
- /*! \brief Remove an element \p elt into the set.
- *
- * \param[in] elt The element to be inserted.
- *
- * If \p elt is already in the set, this method is a no-op.
- *
- * \return The set itself after suppression.
- */
+ /// \brief Remove an element \p elt into the set.
+ ///
+ /// \param[in] elt The element to be inserted.
+ ///
+ /// If \p elt is already in the set, this method is a no-op.
+ ///
+ /// \return The set itself after suppression.
+ ///
set<T>& remove(const T& elt);
- /*! \brief Empty the set.
- *
- * All elements contained in the set are destroyed so the set is
- * emptied.
- *
- * \post is_empty() == true
- */
+ /// \brief Empty the set.
+ ///
+ /// All elements contained in the set are destroyed so the set is
+ /// emptied.
+ ///
+ /// \post is_empty() == true
+ ///
void clear();
- /*! \brief Return the number of elements of the set.
- */
+ /// \brief Return the number of elements of the set.
+ ///
unsigned nelements() const;
- /*! \brief Test if the set is empty.
- */
+ /// \brief Test if the set is empty.
+ ///
bool is_empty() const;
- /*! \brief Return the i-th element of the set.
- *
- * \param[in] i Index of the element to retrieve.
- *
- * \pre i < nelements()
- *
- * The element is returned by reference and is constant.
- */
+ /// \brief Return the i-th element of the set.
+ ///
+ /// \param[in] i Index of the element to retrieve.
+ ///
+ /// \pre i < nelements()
+ ///
+ /// The element is returned by reference and is constant.
+ ///
const T& operator[](unsigned i) const;
/// Return the first element of the set.
@@ -170,23 +167,23 @@
const T last_element() const;
- /*! \brief Test if the object \p elt belongs to the set.
- *
- * \param[in] elt A possible element of the set.
- *
- * \return True is \p elt is in the set.
- */
+ /// \brief Test if the object \p elt belongs to the set.
+ ///
+ /// \param[in] elt A possible element of the set.
+ ///
+ /// \return True is \p elt is in the set.
+ ///
bool has(const T& elt) const;
- /*! \brief Give access to the set elements.
- *
- * The complexity of this method is O(1).
- *
- * \post The set is frozen.
- *
- * \return An array (std::vector) of elements.
- */
+ /// \brief Give access to the set elements.
+ ///
+ /// The complexity of this method is O(1).
+ ///
+ /// \post The set is frozen.
+ ///
+ /// \return An array (std::vector) of elements.
+ ///
const std::vector<T>& std_vector() const;
@@ -202,27 +199,27 @@
private:
- /*! \brief Array of elements.
- *
- * This structure is only updated (if required) when elements
- * are accessed.
- */
+ /// \brief Array of elements.
+ ///
+ /// This structure is only updated (if required) when elements
+ /// are accessed.
+ ///
mutable std::vector<T> v_;
- /*! \brief Set of elements.
- *
- * This structure is always up-to-date w.r.t. the set contents.
- */
+ /// \brief Set of elements.
+ ///
+ /// This structure is always up-to-date w.r.t. the set contents.
+ ///
mutable std::set< T, util::ord<T> > s_;
- /*! \brief Freeze the contents of the set (update \a v_ from \a
- * s_, then clear s_).
- */
+ /// \brief Freeze the contents of the set (update \a v_ from \a
+ /// s_, then clear s_).
+ ///
void freeze_() const;
- /*! \brief Unfreeze the contents of the set.
- */
+ /// \brief Unfreeze the contents of the set.
+ ///
void unfreeze_() const;
/// Tell if the set is frozen.
https://svn.lrde.epita.fr/svn/oln/trunk/milena/sandbox
Index: ChangeLog
from Thierry Geraud <thierry.geraud(a)lrde.epita.fr>
Add some experimental code about TUFA and regional minima.
* geraud/tufa_2008: New directory.
* geraud/tufa_2008/steps.0.cc: New.
* geraud/tufa_2008/compute_a.cc: New.
* geraud/tufa_2008/steps.1.cc: New.
* geraud/tufa_2008/steps.2.cc: New.
* geraud/tufa_2008/closing.cc: New.
* geraud/tufa_2008/steps.3.cc: New.
* geraud/tufa_2008/opening.cc: New.
* geraud/tufa_2008/experiment.cc: New.
* geraud/tufa_2008/steps.2b.cc: New.
* geraud/tufa_2008/filter.cc: New.
* geraud/tufa_2008/wst_f_equal_wst_a.cc: New.
* geraud/tufa_2008/closed_gradient.cc: New.
* geraud/tufa_2008/fz_count.cc: New.
* geraud/tufa_2008/regmin_count.cc: New.
closed_gradient.cc | 64 +++++++
closing.cc | 64 +++++++
compute_a.cc | 411 +++++++++++++++++++++++++++++++++++++++++++++++++++
experiment.cc | 138 +++++++++++++++++
filter.cc | 169 ++++++++++++++++++++
fz_count.cc | 159 +++++++++++++++++++
opening.cc | 63 +++++++
regmin_count.cc | 173 +++++++++++++++++++++
steps.0.cc | 170 +++++++++++++++++++++
steps.1.cc | 273 +++++++++++++++++++++++++++++++++
steps.2.cc | 184 ++++++++++++++++++++++
steps.2b.cc | 184 ++++++++++++++++++++++
steps.3.cc | 184 ++++++++++++++++++++++
wst_f_equal_wst_a.cc | 140 +++++++++++++++++
14 files changed, 2376 insertions(+)
Index: geraud/tufa_2008/steps.0.cc
--- geraud/tufa_2008/steps.0.cc (revision 0)
+++ geraud/tufa_2008/steps.0.cc (revision 0)
@@ -0,0 +1,170 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// \file sandbox/geraud/tufa/steps.cc
+
+#include <mln/core/image/image2d.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/io/pgm/load.hh>
+#include <mln/debug/println.hh>
+
+#include <mln/core/site_set/p_array.hh>
+#include <mln/level/sort_psites.hh>
+#include <mln/core/alias/neighb2d.hh>
+#include <mln/morpho/tree/data.hh>
+
+#include <mln/accu/count.hh>
+
+#include <mln/morpho/tree/compute_attribute_image.hh>
+#include <mln/morpho/closing_area.hh>
+#include <mln/level/fill.hh>
+
+
+namespace mln
+{
+
+ template <typename I>
+ void println_par(const I& par)
+ {
+ int nr = par.nrows(), nc = par.ncols();
+ for (int r = 0; r < nr; ++r)
+ {
+ for (int c = 0; c < nc; ++c)
+ if (par.at(r,c) == point2d(r,c))
+ std::cout << "( ) ";
+ else
+ std::cout << par.at(r,c) << ' ';
+ std::cout << std::endl;
+ }
+ }
+
+ template <typename P>
+ inline
+ mln_value(P) find_root__(P& par, const mln_value(P)& x)
+ {
+ if (par(x) == x)
+ return x;
+ else
+ return par(x) = find_root__(par, par(x));
+ }
+
+
+ template <typename I, typename A, typename N>
+ mln_concrete(I) filtering(const I& f, const A& a, const N& nbh, mln_value(A) lambda)
+ {
+ typedef p_array<mln_psite(I)> S;
+ S s = level::sort_psites_increasing(a);
+
+ // s maps increasing attributes.
+
+ mln_concrete(I) out;
+ initialize(out, f);
+
+ mln_ch_value(I, mln_site(I)) par;
+ mln_ch_value(I, bool) deja_vu;
+ {
+ initialize(par, f);
+ mln_piter(A) p(par.domain());
+ for_all(p)
+ par(p) = p;
+ initialize(deja_vu, f);
+ level::fill(deja_vu, false);
+ }
+
+ // First pass.
+ {
+ mln_site(I) r;
+ mln_fwd_piter(S) p(s);
+ mln_niter(N) n(nbh, p);
+ for_all(p)
+ {
+ for_all(n)
+ if (a.domain().has(n) && deja_vu(n))
+ {
+ r = find_root__(par, n);
+ if (r != p)
+ if (f(r) == f(p) || a(r) < lambda)
+ par(r) = p; // Union.
+ }
+ deja_vu(p) = true;
+ }
+ }
+
+ // Second pass.
+ {
+ mln_bkd_piter(S) p(s);
+ for_all(p)
+ if (par(p) == p)
+ out(p) = f(p);
+ else
+ out(p) = out(par(p));
+ }
+ return out;
+ }
+
+
+} // mln
+
+
+
+
+int main()
+{
+ using namespace mln;
+ using value::int_u8;
+
+ int_u8 n;
+
+ typedef image2d<int_u8> I;
+ I f;
+ io::pgm::load(f, "../../../img/fly.pgm");
+ debug::println("f =", f);
+
+ debug::println("ref =", morpho::closing_area(f, c4(), 10));
+
+ typedef p_array<point2d> S;
+ S s = level::sort_psites_decreasing(f);
+
+ // Children go towards lower levels so leafs are regional minima.
+ // We get a min-tree so that we can perform morphological closings.
+
+ morpho::tree::data<I,S> t(f, s, c4());
+ accu::count< util::pix<I> > attr;
+
+ image2d<unsigned> a = morpho::tree::compute_attribute_image(attr, t);
+ I g = filtering(f, a, c4(), 10);
+ debug::println("g =", g);
+
+ {
+ S s = level::sort_psites_decreasing(g);
+ morpho::tree::data<I,S> t(g, s, c4());
+ image2d<unsigned> a_g = morpho::tree::compute_attribute_image(attr, t);
+ debug::println("a(f) =", a);
+ debug::println("a(g) =", a_g);
+ }
+
+}
Index: geraud/tufa_2008/compute_a.cc
--- geraud/tufa_2008/compute_a.cc (revision 0)
+++ geraud/tufa_2008/compute_a.cc (revision 0)
@@ -0,0 +1,411 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// \file sandbox/geraud/tufa/compute_a.cc
+
+#include <mln/core/image/image2d.hh>
+#include <mln/core/image/image_if.hh>
+#include <mln/pw/all.hh>
+#include <mln/core/alias/neighb2d.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/io/pgm/load.hh>
+#include <mln/debug/println.hh>
+
+#include <mln/core/site_set/p_array.hh>
+#include <mln/level/sort_psites.hh>
+#include <mln/level/fill.hh>
+#include <mln/level/paste.hh>
+#include <mln/level/compare.hh>
+
+#include <mln/morpho/tree/data.hh>
+#include <mln/morpho/tree/compute_attribute_image.hh>
+#include <mln/labeling/regional_minima.hh>
+
+#include <mln/accu/count.hh>
+
+
+
+namespace mln
+{
+
+ template <typename I>
+ void println_par(const I& par)
+ {
+ int nr = par.nrows(), nc = par.ncols();
+ for (int r = 0; r < nr; ++r)
+ {
+ for (int c = 0; c < nc; ++c)
+ if (par.at(r,c) == point2d(r,c))
+ std::cout << "( ) ";
+ else
+ std::cout << par.at(r,c) << ' ';
+ std::cout << std::endl;
+ }
+ }
+
+
+ template <typename P>
+ inline
+ mln_value(P) find_root__(P& par, const mln_value(P)& x)
+ {
+ if (par(x) == x)
+ return x;
+ else
+ return par(x) = find_root__(par, par(x));
+ }
+
+
+
+ //------------------------------- compute_a
+
+
+
+ template <typename I, typename N, typename A>
+ mln_ch_value(I, mln_result(A))
+ compute_a(const I& f, const N& nbh, A, unsigned& n_regmins)
+ {
+ typedef p_array<mln_psite(I)> S;
+ S s = level::sort_psites_increasing(f);
+ // s maps increasing attributes.
+
+ mln_ch_value(I, mln_site(I)) par;
+ mln_ch_value(I, mln_site(I)) zpar;
+ mln_ch_value(I, bool) deja_vu, flag;
+ mln_ch_value(I, A) attr;
+
+ n_regmins = f.domain().nsites();
+
+
+ // Initialization.
+ {
+ // parent
+ initialize(par, f);
+ initialize(zpar, f);
+
+ // deja_vu
+ initialize(deja_vu, f);
+ level::fill(deja_vu, false);
+
+ // flag
+ initialize(flag, f);
+ level::fill(flag, true);
+
+ // attr
+ initialize(attr, f);
+ }
+
+
+ // First Pass.
+ {
+ mln_site(I) r;
+ mln_fwd_piter(S) p(s);
+ mln_niter(N) n(nbh, p);
+ for_all(p)
+ {
+ // Make-Set.
+ par(p) = p;
+ zpar(p) = p;
+ attr(p).take_as_init(p);
+
+ for_all(n)
+ if (f.domain().has(n) && deja_vu(n))
+ {
+ r = find_root__(zpar, n);
+ if (r != p)
+ {
+ // Fully compressed union.
+ zpar(r) = p;
+ attr(p).take(attr(r));
+
+ if (f(r) == f(p))
+ {
+ // Weak-Union; only for flat zones.
+ par(r) = p;
+
+ if (flag(p) == false && flag(r) == false)
+ {
+ // Two non-reg-min components merge (same flat
+ // zone) so we had an extra invalidation.
+ ++n_regmins;
+ }
+ flag(p) = flag(p) && flag(r);
+ --n_regmins; // So we get the number of flat zones
+ // minus the non-reg-min flat zones.
+ }
+ else
+ {
+ mln_invariant(f(r) < f(p));
+ if (flag(p) == true)
+ --n_regmins; // Invalidation.
+ flag(p) = false;
+ }
+ }
+ }
+ deja_vu(p) = true;
+ }
+ } // end of First Pass.
+
+
+ std::cout << "n reg min = " << n_regmins << std::endl;
+
+
+ {
+ unsigned n = 0;
+ mln_fwd_piter(S) p(s);
+ for_all(p)
+ if (par(p) == p && flag(p))
+ ++n;
+ mln_assertion(n == n_regmins);
+ }
+
+
+ // The attr image is not correct on flat zones since there is
+ // no back-propagation of the attribute value of the component
+ // root. For instance with f="v v v" we get attr="1 2 3"
+ // instead of "3 3 3". So a finalization is required.
+
+ mln_ch_value(I, mln_result(A)) a;
+ initialize(a, f);
+ level::paste(attr, a);
+
+ // Finalization.
+ {
+ mln_bkd_piter(S) p(s); // Reverse.
+
+ unsigned n_non_compressed_par = 0;
+ for_all(p)
+ {
+ a(p) = a(par(p));
+ if (par(par(p)) != par(p))
+ ++ n_non_compressed_par;
+ }
+ std::cout << "n_non_compressed_par = " << n_non_compressed_par << std::endl;
+ }
+
+ // TODO: compress at least the reg minima!
+
+
+ {
+ image2d<unsigned> regmin;
+ initialize(regmin, f);
+ {
+ unsigned i_regmin = 0;
+ mln_bkd_piter(S) p(s);
+ for_all(p)
+ {
+ if (par(p) == p)
+ {
+ if (flag(p))
+ regmin(p) = ++i_regmin;
+ else
+ regmin(p) = 0;
+ }
+ else
+ regmin(p) = regmin(par(p));
+ }
+ }
+
+ debug::println("f", f);
+
+ debug::println("flag", flag);
+ // We can see that some point are at true for components that
+ // are not reg min; flag is a candidate to be compressed...
+
+ debug::println("regmin", regmin);
+
+
+
+ // TODO:
+
+ // On veut tester ici dans quel ordre on voit les
+ // reg min lorsque a croit. Pour tous les points d'un reg min,
+ // est-ce que le root est vu en premier ?
+
+
+
+ image2d<bool> seen;
+ initialize(seen, f);
+ level::fill(seen, false);
+
+ s = level::sort_psites_increasing(a);
+ mln_bkd_piter(S) p(s);
+ for_all(p)
+ {
+ if (regmin(p) == 0)
+ continue;
+ // p is in a regional minimum.
+ if (par(p) != p) // A non-root point.
+ {
+ mln_assertion(regmin(par(p)) != 0); // Root in a regional minimum.
+ mln_assertion(regmin(par(p)) == regmin(p)); // and the same as p.
+ mln_assertion(seen(par(p)));
+ }
+ seen(p) = true;
+ }
+ debug::println(seen);
+
+// if (flag(p))
+// std::cout << a(p) << ' ' << p << ' ' << (par(p) == p) << std::endl;
+
+ }
+
+ return a;
+ }
+
+
+
+ //------------------------------- filtering
+
+
+
+// template <typename I, typename A, typename N>
+// mln_concrete(I) filtering(const I& f, const A& a, const N& nbh,
+// unsigned n_regmins, unsigned n_wanted)
+// {
+// typedef p_array<mln_psite(I)> S;
+// S s = level::sort_psites_increasing(a);
+
+// // s maps increasing attributes.
+
+// mln_concrete(I) out;
+// initialize(out, f);
+
+// mln_ch_value(I, mln_site(I)) par;
+// mln_ch_value(I, bool) deja_vu, flag;
+
+// // Initialization.
+// {
+// initialize(par, f);
+// mln_piter(A) p(par.domain());
+// for_all(p)
+// par(p) = p;
+// initialize(deja_vu, f);
+// level::fill(deja_vu, false);
+
+// // flag
+// initialize(flag, f);
+// level::fill(flag, true);
+// }
+
+
+// int counter = 0;
+// // We are trying to count the number of merges of regional minima...
+
+
+// // First Pass.
+// {
+// mln_site(I) r;
+// mln_fwd_piter(S) p(s);
+// mln_niter(N) n(nbh, p);
+// for_all(p)
+// {
+// for_all(n)
+// if (a.domain().has(n) && deja_vu(n))
+// {
+// r = find_root__(par, n);
+// if (r != p)
+// if (a(r) == a(p))
+// {
+// par(r) = p; // Union.
+// if (flag(r) == true && flag(p) == true)
+// --counter;
+// flag(p) = flag(p) && flag(r);
+// }
+// else // a(r) != a(p)
+// {
+// if (flag(r) == true && flag(p) == true)
+// ++counter;
+// mln_invariant(a(p) > a(r));
+// flag(p) = false;
+// }
+// }
+// deja_vu(p) = true;
+// }
+// std::cout << counter << std::endl;
+// }
+
+// // // Second Pass.
+// // {
+// // mln_bkd_piter(S) p(s);
+// // for_all(p)
+// // if (par(p) == p)
+// // out(p) = f(p);
+// // else
+// // out(p) = out(par(p));
+// // }
+
+// return out;
+// }
+
+
+
+
+} // mln
+
+
+
+
+int main(int, char* argv[])
+{
+ using namespace mln;
+ using value::int_u8;
+
+ typedef image2d<int_u8> I;
+ I f;
+ io::pgm::load(f, argv[1]);
+ // debug::println(f);
+
+ accu::count<point2d> area;
+ unsigned n_regmins;
+ image2d<unsigned> a = compute_a(f, c4(), area, n_regmins);
+ // debug::println(a);
+
+// {
+// // Test of 'n_regmins'.
+// unsigned ref;
+// labeling::regional_minima(f, c4(), ref);
+// mln_assertion(n_regmins == ref);
+// }
+
+// {
+// // Test of 'a'.
+// typedef p_array<point2d> S;
+// S s = level::sort_psites_decreasing(f);
+// morpho::tree::data<I,S> t(f, s, c4());
+// accu::count< util::pix<I> > area;
+// image2d<unsigned> ref = morpho::tree::compute_attribute_image(area, t);
+// mln_assertion(a == ref);
+// }
+
+
+
+
+
+// unsigned n_wanted = 10;
+// I g = filtering(f, a, c4(), n_regmins, n_wanted);
+
+}
Index: geraud/tufa_2008/steps.1.cc
--- geraud/tufa_2008/steps.1.cc (revision 0)
+++ geraud/tufa_2008/steps.1.cc (revision 0)
@@ -0,0 +1,273 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// \file sandbox/geraud/tufa/steps.cc
+
+#include <mln/core/image/image2d.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/io/pgm/load.hh>
+#include <mln/debug/println.hh>
+
+#include <mln/core/site_set/p_array.hh>
+#include <mln/level/sort_psites.hh>
+#include <mln/core/alias/neighb2d.hh>
+#include <mln/morpho/tree/data.hh>
+
+#include <mln/accu/count.hh>
+#include <mln/util/set.hh>
+
+#include <mln/labeling/regional_minima.hh>
+#include <mln/morpho/tree/compute_attribute_image.hh>
+#include <mln/morpho/closing_area.hh>
+#include <mln/level/fill.hh>
+
+
+namespace mln
+{
+
+ template <typename I>
+ void println_par(const I& par)
+ {
+ int nr = par.nrows(), nc = par.ncols();
+ for (int r = 0; r < nr; ++r)
+ {
+ for (int c = 0; c < nc; ++c)
+ if (par.at(r,c) == point2d(r,c))
+ std::cout << "( ) ";
+ else
+ std::cout << par.at(r,c) << ' ';
+ std::cout << std::endl;
+ }
+ }
+
+ template <typename P>
+ inline
+ mln_value(P) find_root__(P& par, const mln_value(P)& x)
+ {
+ if (par(x) == x)
+ return x;
+ else
+ return par(x) = find_root__(par, par(x));
+ }
+
+
+ template <typename I, typename A, typename N>
+ void run_run(const I& f, const A& a, const N& nbh)
+ {
+ typedef p_array<mln_psite(I)> S;
+ S s = level::sort_psites_increasing(a);
+ // s maps increasing attributes.
+
+ mln_ch_value(I, mln_site(I)) par;
+ mln_ch_value(I, bool) deja_vu;
+ mln_ch_value(I, util::set<unsigned>) labels;
+ unsigned nbassins, current_n;
+
+
+ // Initialization.
+ {
+ mln_piter(A) p(f.domain());
+
+ // parent
+ initialize(par, f);
+ for_all(p)
+ par(p) = p;
+
+ // deja_vu
+ initialize(deja_vu, f);
+ level::fill(deja_vu, false);
+
+ // labels
+ mln_ch_value(I, unsigned) regmin = labeling::regional_minima(a, nbh,
+ nbassins);
+ debug::println(regmin);
+ initialize(labels, f);
+ for_all(p)
+ if (regmin(p) != 0) // p in a reg min of the attribute image
+ labels(p).insert(regmin(p));
+ }
+
+ current_n = nbassins;
+
+ // First pass.
+ {
+ mln_site(I) r;
+ mln_fwd_piter(S) p(s);
+ mln_niter(N) n(nbh, p);
+ for_all(p)
+ {
+ for_all(n)
+ if (a.domain().has(n) && deja_vu(n))
+ {
+ r = find_root__(par, n);
+ if (r != p)
+ {
+ par(r) = p; // Union.
+
+ // logging the different cases
+ if (labels(p).is_empty() && labels(r).is_empty())
+ {
+ std::cout << "x";
+
+ // It can happen with:
+ // M M m
+ // (m a min, M a flat zone)
+ // During the pass:
+ // M M {m}
+ // then the 1st point is processed
+ // {} M {m}
+ // and when processing the 2nd point
+ // r={} p={} {m}
+ // the (left) neighbor of p has an empty set such as p.
+
+// // Extra log.
+// std::cout << std::endl
+// << "p = " << p << " "
+// << "r = " << r << std::endl;
+// debug::println(labels);
+ }
+ else
+ if (labels(p).is_empty() || labels(r).is_empty())
+ {
+ std::cout << (labels(p).is_empty() ? 'p' : 'r');
+ }
+ else
+ if (labels(p) == labels(r))
+ {
+ std::cout << "=";
+// // Extra log.
+// std::cout << std::endl
+// << "p = " << p << " "
+// << "r = " << r << std::endl;
+// debug::println(labels);
+ }
+ else
+ std::cout << ".";
+ // end of log
+
+ // The invariants below are erroneous.
+// mln_invariant(! (labels(p).is_empty() && labels(r).is_empty()));
+// mln_invariant(labels(p) != labels(r));
+
+ // Either:
+ // one of the two label sets is empty (and the other is not)
+ // or:
+ // both label sets are not empty then they differ.
+
+ // More restrictively:
+// mln_invariant(! labels(r).is_empty());
+
+ if (labels(p).is_empty())
+ {
+ labels(p).insert(labels(r));
+ }
+ else
+ {
+
+// std::cout << std::endl
+// << "at " << p << std::endl
+// << "before:" << std::endl;
+// debug::println(labels);
+
+ unsigned
+ np = labels(p).nelements(),
+ nr = labels(r).nelements();
+ labels(p).insert(labels(r));
+ unsigned
+ n = labels(p).nelements(),
+ dnp = n - np,
+ dnr = n - nr,
+ delta_n = std::min(dnp, dnr);
+
+ // The invariant below is erroneous.
+// mln_invariant(delta_n != 0);
+
+
+// std::cout << "delta = " << delta_n << std::endl
+// << "after: " << std::endl;
+// debug::println(labels);
+
+
+ // We can have the three cases below:
+ if (dnr > dnp)
+ std::cout << '>';
+ else
+ if (dnr < dnp)
+ std::cout << '<';
+ else
+ std::cout << '~';
+ std::cout << '(' << delta_n << ')';
+ }
+ }
+ }
+ deja_vu(p) = true;
+ }
+ }
+
+ std::cout << std::endl;
+// debug::println(labels);
+ }
+
+
+} // mln
+
+
+
+
+int main()
+{
+ using namespace mln;
+ using value::int_u8;
+
+ int_u8 n;
+
+ typedef image2d<int_u8> I;
+ I f;
+ io::pgm::load(f, "../../../img/tiny.pgm");
+// debug::println("f =", f);
+
+ typedef p_array<point2d> S;
+ S s = level::sort_psites_decreasing(f);
+
+ // Children go towards lower levels so leafs are regional minima.
+ // We get a min-tree so that we can perform morphological closings.
+
+ morpho::tree::data<I,S> t(f, s, c4());
+ accu::count< util::pix<I> > attr;
+
+ image2d<unsigned> a = morpho::tree::compute_attribute_image(attr, t);
+ run_run(f, a, c4());
+
+// {
+// S s = level::sort_psites_decreasing(g);
+// morpho::tree::data<I,S> t(g, s, c4());
+// image2d<unsigned> a_g = morpho::tree::compute_attribute_image(attr, t);
+// debug::println("a(f) =", a);
+// debug::println("a(g) =", a_g);
+// }
+
+}
Index: geraud/tufa_2008/steps.2.cc
--- geraud/tufa_2008/steps.2.cc (revision 0)
+++ geraud/tufa_2008/steps.2.cc (revision 0)
@@ -0,0 +1,184 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// \file sandbox/geraud/tufa/steps.cc
+
+#include <mln/core/image/image2d.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/io/pgm/load.hh>
+#include <mln/debug/println.hh>
+
+#include <mln/core/site_set/p_array.hh>
+#include <mln/level/sort_psites.hh>
+#include <mln/core/alias/neighb2d.hh>
+#include <mln/morpho/tree/data.hh>
+
+#include <mln/accu/count.hh>
+#include <mln/util/set.hh>
+
+#include <mln/labeling/regional_minima.hh>
+#include <mln/morpho/tree/compute_attribute_image.hh>
+#include <mln/morpho/closing_area.hh>
+#include <mln/level/fill.hh>
+
+
+namespace mln
+{
+
+ template <typename I>
+ void println_par(const I& par)
+ {
+ int nr = par.nrows(), nc = par.ncols();
+ for (int r = 0; r < nr; ++r)
+ {
+ for (int c = 0; c < nc; ++c)
+ if (par.at(r,c) == point2d(r,c))
+ std::cout << "( ) ";
+ else
+ std::cout << par.at(r,c) << ' ';
+ std::cout << std::endl;
+ }
+ }
+
+ template <typename P>
+ inline
+ mln_value(P) find_root__(P& par, const mln_value(P)& x)
+ {
+ if (par(x) == x)
+ return x;
+ else
+ return par(x) = find_root__(par, par(x));
+ }
+
+
+ template <typename I, typename A, typename N>
+ void run_run(const I& f, const A& a, const N& nbh)
+ {
+ typedef p_array<mln_psite(I)> S;
+ S s = level::sort_psites_increasing(a);
+ // s maps increasing attributes.
+
+ mln_ch_value(I, mln_site(I)) par;
+ mln_ch_value(I, bool) deja_vu;
+ mln_ch_value(I, util::set<unsigned>) labels;
+ unsigned nbassins, current_n;
+
+
+ // Initialization.
+ {
+ mln_piter(A) p(f.domain());
+
+ // parent
+ initialize(par, f);
+ for_all(p)
+ par(p) = p;
+
+ // deja_vu
+ initialize(deja_vu, f);
+ level::fill(deja_vu, false);
+
+ // labels
+ mln_ch_value(I, unsigned) regmin = labeling::regional_minima(a, nbh,
+ nbassins);
+ initialize(labels, f);
+ for_all(p)
+ if (regmin(p) != 0) // p in a reg min of the attribute image
+ labels(p).insert(regmin(p));
+ }
+
+ current_n = nbassins;
+
+ // First pass.
+ {
+ mln_site(I) r;
+ mln_fwd_piter(S) p(s);
+ mln_niter(N) n(nbh, p);
+ for_all(p)
+ {
+ for_all(n)
+ if (a.domain().has(n) && deja_vu(n))
+ {
+ r = find_root__(par, n);
+ if (r != p)
+ {
+ par(r) = p; // Union.
+
+ if (labels(r).is_empty())
+ // No-op.
+ ;
+ else
+ if (labels(p).is_empty())
+ labels(p) = labels(r);
+ else
+ if (labels(p) == labels(r))
+ // No-op.
+ ;
+ else
+ {
+ labels(p).insert(labels(r));
+ --current_n;
+ }
+ }
+ }
+ deja_vu(p) = true;
+ }
+ }
+
+ std::cout << std::endl;
+ std::cout << "end = " << current_n << std::endl;
+ }
+
+
+} // mln
+
+
+
+
+int main(int, char* argv[])
+{
+ using namespace mln;
+ using value::int_u8;
+
+ int_u8 n;
+
+ typedef image2d<int_u8> I;
+ I f;
+ io::pgm::load(f, argv[1]);
+
+ typedef p_array<point2d> S;
+ S s = level::sort_psites_decreasing(f);
+
+ // Children go towards lower levels so leafs are regional minima.
+ // We get a min-tree so that we can perform morphological closings.
+
+ morpho::tree::data<I,S> t(f, s, c4());
+ accu::count< util::pix<I> > attr;
+
+ image2d<unsigned> a = morpho::tree::compute_attribute_image(attr, t);
+ run_run(f, a, c4());
+
+}
Index: geraud/tufa_2008/closing.cc
--- geraud/tufa_2008/closing.cc (revision 0)
+++ geraud/tufa_2008/closing.cc (revision 0)
@@ -0,0 +1,64 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// \file sandbox/geraud/tufa/closing.cc
+
+#include <mln/core/image/image2d.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/value/rgb8.hh>
+#include <mln/io/pgm/load.hh>
+#include <mln/io/pgm/save.hh>
+#include <mln/core/alias/neighb2d.hh>
+
+#include <mln/morpho/elementary/gradient.hh>
+#include <mln/morpho/closing_volume.hh>
+
+
+
+void usage(char* argv[])
+{
+ std::cerr << "usage: " << argv[0] << " input.pgm lambda output.pgm" << std::endl;
+ std::abort();
+}
+
+
+int main(int argc, char* argv[])
+{
+ using namespace mln;
+ using value::int_u8;
+
+ if (argc != 4)
+ usage(argv);
+
+ image2d<int_u8> f;
+ io::pgm::load(f, argv[1]);
+ unsigned lambda = std::atoi(argv[2]);
+ io::pgm::save(morpho::closing_volume(f,
+ c4(),
+ lambda),
+ argv[3]);
+}
Index: geraud/tufa_2008/steps.3.cc
--- geraud/tufa_2008/steps.3.cc (revision 0)
+++ geraud/tufa_2008/steps.3.cc (revision 0)
@@ -0,0 +1,184 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// \file sandbox/geraud/tufa/steps.cc
+
+#include <mln/core/image/image2d.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/io/pgm/load.hh>
+#include <mln/debug/println.hh>
+
+#include <mln/core/site_set/p_array.hh>
+#include <mln/level/sort_psites.hh>
+#include <mln/core/alias/neighb2d.hh>
+#include <mln/morpho/tree/data.hh>
+
+#include <mln/accu/count.hh>
+#include <mln/util/set.hh>
+
+#include <mln/labeling/regional_minima.hh>
+#include <mln/morpho/tree/compute_attribute_image.hh>
+#include <mln/morpho/closing_area.hh>
+#include <mln/level/fill.hh>
+
+
+namespace mln
+{
+
+ template <typename I>
+ void println_par(const I& par)
+ {
+ int nr = par.nrows(), nc = par.ncols();
+ for (int r = 0; r < nr; ++r)
+ {
+ for (int c = 0; c < nc; ++c)
+ if (par.at(r,c) == point2d(r,c))
+ std::cout << "( ) ";
+ else
+ std::cout << par.at(r,c) << ' ';
+ std::cout << std::endl;
+ }
+ }
+
+ template <typename P>
+ inline
+ mln_value(P) find_root__(P& par, const mln_value(P)& x)
+ {
+ if (par(x) == x)
+ return x;
+ else
+ return par(x) = find_root__(par, par(x));
+ }
+
+
+ template <typename I, typename A, typename N>
+ void run_run(const I& f, const A& a, const N& nbh)
+ {
+ typedef p_array<mln_psite(I)> S;
+ S s = level::sort_psites_increasing(a);
+ // s maps increasing attributes.
+
+ mln_ch_value(I, mln_site(I)) par;
+ mln_ch_value(I, bool) deja_vu;
+ mln_ch_value(I, util::set<unsigned>) labels;
+ unsigned nbassins, current_n;
+
+
+ // Initialization.
+ {
+ mln_piter(A) p(f.domain());
+
+ // parent
+ initialize(par, f);
+ for_all(p)
+ par(p) = p;
+
+ // deja_vu
+ initialize(deja_vu, f);
+ level::fill(deja_vu, false);
+
+ // labels
+ mln_ch_value(I, unsigned) regmin = labeling::regional_minima(a, nbh,
+ nbassins);
+ initialize(labels, f);
+ for_all(p)
+ if (regmin(p) != 0) // p in a reg min of the attribute image
+ labels(p).insert(regmin(p));
+ }
+
+ current_n = nbassins;
+
+ // First pass.
+ {
+ mln_site(I) r;
+ mln_fwd_piter(S) p(s);
+ mln_niter(N) n(nbh, p);
+ for_all(p)
+ {
+ for_all(n)
+ if (a.domain().has(n) && deja_vu(n))
+ {
+ r = find_root__(par, n);
+ if (r != p)
+ {
+ par(r) = p; // Union.
+
+ if (labels(r).is_empty())
+ // No-op.
+ ;
+ else
+ if (labels(p).is_empty())
+ labels(p) = labels(r);
+ else
+ if (labels(p) == labels(r))
+ // No-op.
+ ;
+ else
+ {
+ labels(p).insert(labels(r));
+ --current_n;
+ }
+ }
+ }
+ deja_vu(p) = true;
+ }
+ }
+
+ std::cout << std::endl;
+ std::cout << "end = " << current_n << std::endl;
+ }
+
+
+} // mln
+
+
+
+
+int main(int, char* argv[])
+{
+ using namespace mln;
+ using value::int_u8;
+
+ int_u8 n;
+
+ typedef image2d<int_u8> I;
+ I f;
+ io::pgm::load(f, argv[1]);
+
+ typedef p_array<point2d> S;
+ S s = level::sort_psites_decreasing(f);
+
+ // Children go towards lower levels so leafs are regional minima.
+ // We get a min-tree so that we can perform morphological closings.
+
+ morpho::tree::data<I,S> t(f, s, c4());
+ accu::count< util::pix<I> > attr;
+
+ image2d<unsigned> a = morpho::tree::compute_attribute_image(attr, t);
+ run_run(f, a, c4());
+
+}
Index: geraud/tufa_2008/opening.cc
--- geraud/tufa_2008/opening.cc (revision 0)
+++ geraud/tufa_2008/opening.cc (revision 0)
@@ -0,0 +1,63 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// \file sandbox/geraud/tufa/opening.cc
+
+#include <mln/core/image/image2d.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/value/rgb8.hh>
+#include <mln/io/pgm/load.hh>
+#include <mln/io/pgm/save.hh>
+#include <mln/core/alias/neighb2d.hh>
+
+#include <mln/morpho/opening_volume.hh>
+
+
+
+void usage(char* argv[])
+{
+ std::cerr << "usage: " << argv[0] << " input.pgm lambda output.pgm" << std::endl;
+ std::abort();
+}
+
+
+int main(int argc, char* argv[])
+{
+ using namespace mln;
+ using value::int_u8;
+
+ if (argc != 4)
+ usage(argv);
+
+ image2d<int_u8> f, g;
+ io::pgm::load(f, argv[1]);
+ unsigned lambda = std::atoi(argv[2]);
+ initialize(g, f);
+ morpho::opening_volume(f, c4(), lambda, g);
+ io::pgm::save(g,
+ argv[3]);
+}
Index: geraud/tufa_2008/experiment.cc
--- geraud/tufa_2008/experiment.cc (revision 0)
+++ geraud/tufa_2008/experiment.cc (revision 0)
@@ -0,0 +1,138 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// \file sandbox/geraud/tufa/experiment.cc
+
+#include <mln/core/image/image2d.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/value/rgb8.hh>
+#include <mln/literal/black.hh>
+
+#include <mln/io/pgm/load.hh>
+#include <mln/io/pgm/save.hh>
+#include <mln/io/ppm/save.hh>
+#include <mln/debug/println.hh>
+
+#include <mln/core/site_set/p_array.hh>
+#include <mln/level/sort_psites.hh>
+#include <mln/core/alias/neighb2d.hh>
+#include <mln/morpho/tree/data.hh>
+
+#include <mln/accu/volume.hh>
+#include <mln/win/disk2d.hh>
+
+#include <mln/morpho/tree/compute_attribute_image.hh>
+#include <mln/morpho/meyer_wst.hh>
+#include <mln/morpho/opening.hh>
+#include <mln/morpho/closing_area.hh>
+
+#include <mln/level/fill.hh>
+
+#include <mln/level/transform.hh>
+#include <mln/level/stretch.hh>
+
+
+
+namespace mln
+{
+
+ struct colorize : Function_v2v< colorize >
+ {
+ typedef value::rgb8 result;
+ colorize(unsigned max)
+ : lut(max + 1)
+ {
+ lut[0] = literal::black;
+ for (unsigned i = 1; i <= max; ++i)
+ lut[i] = result(100 + std::rand() % 150,
+ 100 + std::rand() % 150,
+ 100 + std::rand() % 150);
+ }
+ result operator()(unsigned i) const
+ {
+ return lut[i];
+ }
+ std::vector<result> lut;
+ };
+
+} // mln
+
+
+
+
+void usage(char* argv[])
+{
+ std::cerr << "usage: " << argv[0] << " input.pgm" << std::endl;
+ std::abort();
+}
+
+
+
+int main(int argc, char* argv[])
+{
+ using namespace mln;
+ using value::int_u8;
+
+ if (argc != 2)
+ usage(argv);
+
+
+ typedef image2d<int_u8> I;
+ I f;
+ io::pgm::load(f, argv[1]);
+
+ typedef p_array<point2d> S;
+ S s = level::sort_psites_decreasing(f);
+
+ // Children go towards lower levels so leafs are regional minima.
+ // We get a min-tree so that we can perform morphological closings.
+
+ morpho::tree::data<I,S> t(f, s, c4());
+ accu::volume<I> attr;
+
+ image2d<unsigned> a = morpho::tree::compute_attribute_image(attr, t);
+ io::pgm::save(level::stretch(int_u8(), a),
+ "a.pgm");
+
+ unsigned n;
+ image2d<unsigned> wst_a = morpho::meyer_wst(a, c4(), n);
+ io::ppm::save(level::transform(wst_a, colorize(n)),
+ "wst_a.ppm");
+ std::cout << "n(a) = " << n << std::endl;
+
+ // FIXME: ça n'a pas de sens de faire ce qui est dessous... :-(
+
+
+ image2d<unsigned> aa = morpho::closing_area(a, c4(), 100);
+ io::pgm::save(level::stretch(int_u8(), aa),
+ "aa.pgm");
+
+ image2d<unsigned> wst_aa = morpho::meyer_wst(aa, c4(), n);
+ io::ppm::save(level::transform(wst_aa, colorize(n)),
+ "wst_aa.ppm");
+ std::cout << "n(aa) = " << n << std::endl;
+}
Index: geraud/tufa_2008/steps.2b.cc
--- geraud/tufa_2008/steps.2b.cc (revision 0)
+++ geraud/tufa_2008/steps.2b.cc (revision 0)
@@ -0,0 +1,184 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// \file sandbox/geraud/tufa/steps.cc
+
+#include <mln/core/image/image2d.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/io/pgm/load.hh>
+#include <mln/debug/println.hh>
+
+#include <mln/core/site_set/p_array.hh>
+#include <mln/level/sort_psites.hh>
+#include <mln/core/alias/neighb2d.hh>
+#include <mln/morpho/tree/data.hh>
+
+#include <mln/accu/count.hh>
+#include <set>
+
+#include <mln/labeling/regional_minima.hh>
+#include <mln/morpho/tree/compute_attribute_image.hh>
+#include <mln/morpho/closing_area.hh>
+#include <mln/level/fill.hh>
+
+
+namespace mln
+{
+
+ template <typename I>
+ void println_par(const I& par)
+ {
+ int nr = par.nrows(), nc = par.ncols();
+ for (int r = 0; r < nr; ++r)
+ {
+ for (int c = 0; c < nc; ++c)
+ if (par.at(r,c) == point2d(r,c))
+ std::cout << "( ) ";
+ else
+ std::cout << par.at(r,c) << ' ';
+ std::cout << std::endl;
+ }
+ }
+
+ template <typename P>
+ inline
+ mln_value(P) find_root__(P& par, const mln_value(P)& x)
+ {
+ if (par(x) == x)
+ return x;
+ else
+ return par(x) = find_root__(par, par(x));
+ }
+
+
+ template <typename I, typename A, typename N>
+ void run_run(const I& f, const A& a, const N& nbh)
+ {
+ typedef p_array<mln_psite(I)> S;
+ S s = level::sort_psites_increasing(a);
+ // s maps increasing attributes.
+
+ mln_ch_value(I, mln_site(I)) par;
+ mln_ch_value(I, bool) deja_vu;
+ mln_ch_value(I, std::set<unsigned>) labels;
+ unsigned nbassins, current_n;
+
+
+ // Initialization.
+ {
+ mln_piter(A) p(f.domain());
+
+ // parent
+ initialize(par, f);
+ for_all(p)
+ par(p) = p;
+
+ // deja_vu
+ initialize(deja_vu, f);
+ level::fill(deja_vu, false);
+
+ // labels
+ mln_ch_value(I, unsigned) regmin = labeling::regional_minima(a, nbh,
+ nbassins);
+ initialize(labels, f);
+ for_all(p)
+ if (regmin(p) != 0) // p in a reg min of the attribute image
+ labels(p).insert(regmin(p));
+ }
+
+ current_n = nbassins;
+
+ // First pass.
+ {
+ mln_site(I) r;
+ mln_fwd_piter(S) p(s);
+ mln_niter(N) n(nbh, p);
+ for_all(p)
+ {
+ for_all(n)
+ if (a.domain().has(n) && deja_vu(n))
+ {
+ r = find_root__(par, n);
+ if (r != p)
+ {
+ par(r) = p; // Union.
+
+ if (labels(r).empty())
+ // No-op.
+ ;
+ else
+ if (labels(p).empty())
+ labels(p) = labels(r);
+ else
+ if (labels(p) == labels(r))
+ // No-op.
+ ;
+ else
+ {
+ labels(p).insert(labels(r).begin(), labels(r).end());
+ --current_n;
+ }
+ }
+ }
+ deja_vu(p) = true;
+ }
+ }
+
+ std::cout << std::endl;
+ std::cout << "end = " << current_n << std::endl;
+ }
+
+
+} // mln
+
+
+
+
+int main(int, char* argv[])
+{
+ using namespace mln;
+ using value::int_u8;
+
+ int_u8 n;
+
+ typedef image2d<int_u8> I;
+ I f;
+ io::pgm::load(f, argv[1]);
+
+ typedef p_array<point2d> S;
+ S s = level::sort_psites_decreasing(f);
+
+ // Children go towards lower levels so leafs are regional minima.
+ // We get a min-tree so that we can perform morphological closings.
+
+ morpho::tree::data<I,S> t(f, s, c4());
+ accu::count< util::pix<I> > attr;
+
+ image2d<unsigned> a = morpho::tree::compute_attribute_image(attr, t);
+ run_run(f, a, c4());
+
+}
Index: geraud/tufa_2008/filter.cc
--- geraud/tufa_2008/filter.cc (revision 0)
+++ geraud/tufa_2008/filter.cc (revision 0)
@@ -0,0 +1,169 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// \file sandbox/geraud/tufa/filter.cc
+
+#include <mln/core/image/image2d.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/value/rgb8.hh>
+#include <mln/literal/black.hh>
+
+#include <mln/io/pgm/load.hh>
+#include <mln/io/pgm/save.hh>
+#include <mln/io/ppm/save.hh>
+#include <mln/debug/println.hh>
+
+#include <mln/core/site_set/p_array.hh>
+#include <mln/core/alias/neighb2d.hh>
+#include <mln/level/sort_psites.hh>
+#include <mln/level/fill.hh>
+
+#include <mln/morpho/tree/data.hh>
+#include <mln/morpho/tree/compute_attribute_image.hh>
+#include <mln/morpho/closing_volume.hh>
+
+
+
+namespace mln
+{
+
+ template <typename P>
+ inline
+ mln_value(P) find_root__(P& par, const mln_value(P)& x)
+ {
+ if (par(x) == x)
+ return x;
+ else
+ return par(x) = find_root__(par, par(x));
+ }
+
+
+ template <typename I, typename A, typename N>
+ mln_concrete(I) filtering(const I& f, const A& a, const N& nbh, mln_value(A) lambda)
+ {
+ typedef p_array<mln_psite(I)> S;
+ S s = level::sort_psites_increasing(a);
+
+ // s maps increasing attributes.
+
+ mln_concrete(I) out;
+ initialize(out, f);
+
+ mln_ch_value(I, mln_site(I)) par;
+ mln_ch_value(I, bool) deja_vu;
+ {
+ initialize(par, f);
+ mln_piter(A) p(par.domain());
+ for_all(p)
+ par(p) = p;
+ initialize(deja_vu, f);
+ level::fill(deja_vu, false);
+ }
+
+ // First pass.
+ {
+ mln_site(I) r;
+ mln_fwd_piter(S) p(s);
+ mln_niter(N) n(nbh, p);
+ for_all(p)
+ {
+ for_all(n)
+ if (a.domain().has(n) && deja_vu(n))
+ {
+ r = find_root__(par, n);
+ if (r != p)
+ if (f(r) == f(p) || a(r) < lambda)
+ par(r) = p; // Union.
+ }
+ deja_vu(p) = true;
+ }
+ }
+
+ // Second pass.
+ {
+ mln_bkd_piter(S) p(s);
+ for_all(p)
+ if (par(p) == p)
+ out(p) = f(p);
+ else
+ out(p) = out(par(p));
+ }
+ return out;
+ }
+
+
+} // mln
+
+
+
+void usage(char* argv[])
+{
+ std::cerr << "usage: " << argv[0] << " input.pgm lambda output.pgm" << std::endl;
+ std::abort();
+}
+
+
+
+int main(int argc, char* argv[])
+{
+ using namespace mln;
+ using value::int_u8;
+
+ if (argc != 4)
+ usage(argv);
+
+
+ typedef image2d<int_u8> I;
+ I f;
+ io::pgm::load(f, argv[1]);
+
+ unsigned lambda = std::atoi(argv[2]);
+
+ typedef p_array<point2d> S;
+ S s = level::sort_psites_decreasing(f);
+
+ // Children go towards lower levels so leafs are regional minima.
+ // We get a min-tree so that we can perform morphological closings.
+
+ morpho::tree::data<I,S> t(f, s, c4());
+ accu::volume<I> attr;
+
+ image2d<unsigned> a = morpho::tree::compute_attribute_image(attr, t);
+
+ I g = filtering(f, a, c4(), lambda);
+
+ {
+ I ref = morpho::closing_volume(f, c4(), lambda);
+ if (g != ref)
+ {
+ io::pgm::save(ref, "ref.pgm");
+ std::cerr << "oops!" << std::endl;
+ }
+ }
+
+ io::pgm::save(g, argv[3]);
+}
Index: geraud/tufa_2008/wst_f_equal_wst_a.cc
--- geraud/tufa_2008/wst_f_equal_wst_a.cc (revision 0)
+++ geraud/tufa_2008/wst_f_equal_wst_a.cc (revision 0)
@@ -0,0 +1,140 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// \file sandbox/geraud/tufa/steps.cc
+
+#include <mln/core/image/image2d.hh>
+#include <mln/pw/all.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/value/rgb8.hh>
+#include <mln/io/pgm/load.hh>
+#include <mln/io/ppm/save.hh>
+#include <mln/io/pbm/save.hh>
+#include <mln/literal/black.hh>
+
+#include <mln/core/site_set/p_array.hh>
+#include <mln/level/sort_psites.hh>
+#include <mln/level/transform.hh>
+#include <mln/core/alias/neighb2d.hh>
+#include <mln/morpho/tree/data.hh>
+
+#include <mln/accu/volume.hh>
+#include <mln/morpho/tree/compute_attribute_image.hh>
+#include <mln/morpho/meyer_wst.hh>
+
+#include <mln/labeling/regional_minima.hh>
+
+#include <mln/core/var.hh>
+
+
+namespace mln
+{
+
+ struct colorize : Function_v2v< colorize >
+ {
+ typedef value::rgb8 result;
+ colorize(unsigned max)
+ : lut(max + 1)
+ {
+ lut[0] = literal::black;
+ for (unsigned i = 1; i <= max; ++i)
+ lut[i] = result(100 + std::rand() % 150,
+ 100 + std::rand() % 150,
+ 100 + std::rand() % 150);
+ }
+ result operator()(unsigned i) const
+ {
+ return lut[i];
+ }
+ std::vector<result> lut;
+ };
+
+} // mln
+
+
+
+void usage(char* argv[])
+{
+ std::cerr << "usage: " << argv[0] << " input.pgm" << std::endl;
+ std::abort();
+}
+
+
+
+int main(int argc, char* argv[])
+{
+ using namespace mln;
+ using value::int_u8;
+
+ if (argc != 2)
+ usage(argv);
+
+ unsigned nref, n;
+
+ typedef image2d<int_u8> I;
+ I f;
+ io::pgm::load(f, argv[1]);
+
+ labeling::regional_minima(f, c4(), nref);
+ std::cout << nref << std::endl;
+
+
+ image2d<unsigned> wst_f = morpho::meyer_wst(f, c4(), n);
+ mln_assertion(n == nref);
+
+ io::ppm::save(level::transform(wst_f, colorize(n)),
+ "wst_f.ppm");
+ mln_VAR(WST_f, (pw::value(wst_f) == pw::cst(0u)) | f.domain());
+ io::pbm::save(WST_f, "wst_f.pbm");
+
+
+ typedef p_array<point2d> S;
+ S s = level::sort_psites_decreasing(f);
+
+ // Children go towards lower levels so leafs are regional minima.
+ // We get a min-tree so that we can perform morphological closings.
+
+ morpho::tree::data<I,S> t(f, s, c4());
+ accu::volume<I> vol;
+ image2d<unsigned> a = morpho::tree::compute_attribute_image(vol, t);
+
+ labeling::regional_minima(a, c4(), n);
+ mln_assertion(n == nref);
+
+
+ image2d<unsigned> wst_a = morpho::meyer_wst(a, c4(), n);
+ mln_assertion(n == nref);
+
+ io::ppm::save(level::transform(wst_a, colorize(n)),
+ "wst_a.ppm");
+ mln_VAR(WST_a, (pw::value(wst_a) == pw::cst(0u)) | f.domain());
+ io::pbm::save(WST_a, "wst_a.pbm");
+
+
+ io::pbm::save((pw::value(WST_a) != pw::value(WST_f)) | f.domain(),
+ "diff.pbm");
+}
Index: geraud/tufa_2008/closed_gradient.cc
--- geraud/tufa_2008/closed_gradient.cc (revision 0)
+++ geraud/tufa_2008/closed_gradient.cc (revision 0)
@@ -0,0 +1,64 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// \file sandbox/geraud/tufa/closed_gradient.cc
+
+#include <mln/core/image/image2d.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/value/rgb8.hh>
+#include <mln/io/pgm/load.hh>
+#include <mln/io/pgm/save.hh>
+#include <mln/core/alias/neighb2d.hh>
+
+#include <mln/morpho/elementary/gradient.hh>
+#include <mln/morpho/closing_volume.hh>
+
+
+
+void usage(char* argv[])
+{
+ std::cerr << "usage: " << argv[0] << " input.pgm lambda output.pgm" << std::endl;
+ std::abort();
+}
+
+
+int main(int argc, char* argv[])
+{
+ using namespace mln;
+ using value::int_u8;
+
+ if (argc != 4)
+ usage(argv);
+
+ image2d<int_u8> f;
+ io::pgm::load(f, argv[1]);
+ unsigned lambda = std::atoi(argv[2]);
+ io::pgm::save(morpho::closing_volume(morpho::elementary::gradient(f, c4()),
+ c4(),
+ lambda),
+ argv[3]);
+}
Index: geraud/tufa_2008/fz_count.cc
--- geraud/tufa_2008/fz_count.cc (revision 0)
+++ geraud/tufa_2008/fz_count.cc (revision 0)
@@ -0,0 +1,159 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// \file sandbox/geraud/tufa/fz_count.cc
+
+#include <mln/core/image/image2d.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/io/pgm/load.hh>
+#include <mln/debug/println.hh>
+
+#include <mln/core/site_set/p_array.hh>
+#include <mln/level/sort_psites.hh>
+#include <mln/core/alias/neighb2d.hh>
+
+#include <mln/labeling/regional_minima.hh>
+#include <mln/labeling/flat_zones.hh>
+#include <mln/level/fill.hh>
+
+
+namespace mln
+{
+
+ template <typename I>
+ void println_par(const I& par)
+ {
+ int nr = par.nrows(), nc = par.ncols();
+ for (int r = 0; r < nr; ++r)
+ {
+ for (int c = 0; c < nc; ++c)
+ if (par.at(r,c) == point2d(r,c))
+ std::cout << "( ) ";
+ else
+ std::cout << par.at(r,c) << ' ';
+ std::cout << std::endl;
+ }
+ }
+
+ template <typename P>
+ inline
+ mln_value(P) find_root__(P& par, const mln_value(P)& x)
+ {
+ if (par(x) == x)
+ return x;
+ else
+ return par(x) = find_root__(par, par(x));
+ }
+
+
+ template <typename I, typename N>
+ unsigned fz_count(const I& f, const N& nbh)
+ {
+ typedef p_array<mln_psite(I)> S;
+ S s = level::sort_psites_increasing(f);
+ // s maps increasing attributes.
+
+ mln_ch_value(I, mln_site(I)) par;
+ mln_ch_value(I, bool) deja_vu;
+
+ unsigned counter = f.domain().nsites();
+
+ // Initialization.
+ {
+ mln_piter(I) p(f.domain());
+
+ // parent
+ initialize(par, f);
+ for_all(p)
+ par(p) = p;
+
+ // deja_vu
+ initialize(deja_vu, f);
+ level::fill(deja_vu, false);
+ }
+
+ // First pass.
+ {
+ mln_site(I) r;
+ mln_fwd_piter(S) p(s);
+ mln_niter(N) n(nbh, p);
+ for_all(p)
+ {
+ for_all(n)
+ if (f.domain().has(n) && deja_vu(n))
+ {
+ r = find_root__(par, n);
+ if (r != p) // not already merged
+ {
+ if (f(r) == f(p))
+ {
+
+ // Moving the line below out of this test
+ // (either before the test or after the block)
+ // makes the algorithm fail.
+ // The erroneous result is less than the ref
+ // result => we want this current block too many
+ // times. Since we merge (thru "par(r) = p")
+ // whatever "f(r) == f(p)" is true or not, we
+ // have more often "f(r) == f(p)" than expected.
+ par(r) = p;
+
+ --counter;
+ }
+ }
+ }
+
+ deja_vu(p) = true;
+ }
+ }
+
+ return counter;
+ }
+
+
+} // mln
+
+
+
+
+int main(int, char* argv[])
+{
+ using namespace mln;
+ using value::int_u8;
+
+ typedef image2d<int_u8> I;
+ I f;
+ io::pgm::load(f, argv[1]);
+
+ unsigned ref, n = fz_count(f, c4());
+ labeling::flat_zones(f, c4(), ref);
+
+ if (n == ref)
+ std::cout << "success: n flat zones = " << n << std::endl;
+ else
+ std::cout << "FAILURE: found = " << n << " v. ref = " << ref << std::endl;
+}
Index: geraud/tufa_2008/regmin_count.cc
--- geraud/tufa_2008/regmin_count.cc (revision 0)
+++ geraud/tufa_2008/regmin_count.cc (revision 0)
@@ -0,0 +1,173 @@
+// Copyright (C) 2008 EPITA Research and Development Laboratory (LRDE)
+//
+// This file is part of the Olena Library. This library is free
+// software; you can redistribute it and/or modify it under the terms
+// of the GNU General Public License version 2 as published by the
+// Free Software Foundation.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// General Public License for more details.
+//
+// You should have received a copy of the GNU General Public License
+// along with this library; see the file COPYING. If not, write to
+// the Free Software Foundation, 51 Franklin Street, Fifth Floor,
+// Boston, MA 02111-1307, USA.
+//
+// As a special exception, you may use this file as part of a free
+// software library without restriction. Specifically, if other files
+// instantiate templates or use macros or inline functions from this
+// file, or you compile this file and link it with other files to
+// produce an executable, this file does not by itself cause the
+// resulting executable to be covered by the GNU General Public
+// License. This exception does not however invalidate any other
+// reasons why the executable file might be covered by the GNU General
+// Public License.
+
+/// \file sandbox/geraud/tufa/regmin_count.cc
+
+#include <mln/core/image/image2d.hh>
+#include <mln/value/int_u8.hh>
+#include <mln/io/pgm/load.hh>
+#include <mln/debug/println.hh>
+
+#include <mln/core/site_set/p_array.hh>
+#include <mln/level/sort_psites.hh>
+#include <mln/core/alias/neighb2d.hh>
+
+#include <mln/labeling/regional_minima.hh>
+#include <mln/labeling/flat_zones.hh>
+#include <mln/level/fill.hh>
+
+
+namespace mln
+{
+
+ template <typename I>
+ void println_par(const I& par)
+ {
+ int nr = par.nrows(), nc = par.ncols();
+ for (int r = 0; r < nr; ++r)
+ {
+ for (int c = 0; c < nc; ++c)
+ if (par.at(r,c) == point2d(r,c))
+ std::cout << "( ) ";
+ else
+ std::cout << par.at(r,c) << ' ';
+ std::cout << std::endl;
+ }
+ }
+
+ template <typename P>
+ inline
+ mln_value(P) find_root__(P& par, const mln_value(P)& x)
+ {
+ if (par(x) == x)
+ return x;
+ else
+ return par(x) = find_root__(par, par(x));
+ }
+
+
+ template <typename I, typename N>
+ unsigned regmin_count(const I& f, const N& nbh)
+ {
+ typedef p_array<mln_psite(I)> S;
+ S s = level::sort_psites_increasing(f);
+ // s maps increasing attributes.
+
+ mln_ch_value(I, mln_site(I)) par;
+ mln_ch_value(I, bool) deja_vu, flag;
+
+ unsigned counter = f.domain().nsites();
+
+
+ // Initialization.
+ {
+ mln_piter(I) p(f.domain());
+
+ // parent
+ initialize(par, f);
+ for_all(p)
+ par(p) = p;
+
+ // flag
+ initialize(flag, f);
+ level::fill(flag, true);
+
+ // deja_vu
+ initialize(deja_vu, f);
+ level::fill(deja_vu, false);
+ }
+
+ // First pass.
+ {
+ mln_site(I) r;
+ mln_fwd_piter(S) p(s);
+ mln_niter(N) n(nbh, p);
+ for_all(p)
+ {
+ unsigned loc = 0;
+ for_all(n)
+ if (f.domain().has(n) && deja_vu(n))
+ {
+ r = find_root__(par, n);
+ if (r != p)
+ {
+ if (f(r) == f(p))
+ {
+ par(r) = p; // Union.
+ if (flag(p) == false && flag(r) == false)
+ {
+ // Two non-reg-min components merge (same flat
+ // zone) so we had an extra invalidation.
+ ++counter;
+ }
+ flag(p) = flag(p) && flag(r);
+ --counter; // So we get the number of flat zones
+ // minus the non-reg-min flat zones.
+ }
+ else
+ {
+ mln_invariant(f(r) < f(p));
+ if (flag(p) == true)
+ {
+ ++loc;
+ --counter; // Invalidation.
+ }
+ flag(p) = false;
+ }
+ }
+ }
+ mln_invariant(loc == 0 || loc == 1);
+ deja_vu(p) = true;
+ }
+ }
+
+ return counter;
+ }
+
+
+} // mln
+
+
+
+
+int main(int, char* argv[])
+{
+ using namespace mln;
+ using value::int_u8;
+
+ typedef image2d<int_u8> I;
+ I f;
+ io::pgm::load(f, argv[1]);
+
+ unsigned ref, n = regmin_count(f, c4());
+ labeling::regional_minima(f, c4(), ref);
+
+ if (n == ref)
+ std::cout << "success: n regional minima = " << n << std::endl;
+ else
+ std::cout << "FAILURE: found = " << n << " v. ref = " << ref << std::endl;
+}