
URL: https://svn.lrde.epita.fr/svn/oln/trunk/milena ChangeLog: 2007-12-06 Matthieu Garrigues <garrigues@lrde.epita.fr> Fix doxygen header of value tests. * bool.cc, * builtin.cc, * equiv.cc, * float01.cc, * float01_bis.cc, * float01_f.cc, * int_s.cc, * int_s16.cc, * int_u8.cc, * interop.cc, * label.cc, * quat.cc, * rgb8.cc, * rgb_full.cc, * scalar.cc, * set.cc: Fix doxygen headers. * Makefile.am: Disable check_full_PROGRAMS to pass ./bootstrap. * graylevel.cc: Rename as... * graylevel_full.cc: ...this. --- Makefile.am | 11 + bool.cc | 2 builtin.cc | 2 equiv.cc | 2 float01.cc | 2 float01_bis.cc | 27 +-- float01_f.cc | 2 graylevel_full.cc | 370 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ int_s.cc | 2 int_s16.cc | 2 int_u8.cc | 2 interop.cc | 2 label.cc | 2 quat.cc | 2 rgb8.cc | 2 rgb_full.cc | 3 scalar.cc | 2 set.cc | 2 18 files changed, 404 insertions(+), 35 deletions(-) Index: trunk/milena/tests/value/graylevel.cc (deleted) =================================================================== Index: trunk/milena/tests/value/set.cc =================================================================== --- trunk/milena/tests/value/set.cc (revision 1596) +++ trunk/milena/tests/value/set.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_set.cc +/*! \file tests/value/set.cc * * \brief Tests on mln::value::set_<T>. */ Index: trunk/milena/tests/value/bool.cc =================================================================== --- trunk/milena/tests/value/bool.cc (revision 1596) +++ trunk/milena/tests/value/bool.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_bool.cc +/*! \file tests/value/bool.cc * * \brief Tests on mln::value::set. */ Index: trunk/milena/tests/value/rgb_full.cc =================================================================== --- trunk/milena/tests/value/rgb_full.cc (revision 1596) +++ trunk/milena/tests/value/rgb_full.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_rgb.cc +/*! \file tests/value/rgb.cc * * \brief Tests on mln::value::rgb. */ @@ -55,6 +55,7 @@ V1.green() OP V2 , \ V1.blue() OP V2 \ ) + // Interop between 2 rgbs. #define test_interop(T1, T2, OP, V1, V2) \ { \ Index: trunk/milena/tests/value/rgb8.cc =================================================================== --- trunk/milena/tests/value/rgb8.cc (revision 1596) +++ trunk/milena/tests/value/rgb8.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_rgb8.cc +/*! \file tests/value/rgb8.cc * * \brief Tests on mln::value::rgb8. */ Index: trunk/milena/tests/value/float01_bis.cc =================================================================== --- trunk/milena/tests/value/float01_bis.cc (revision 1596) +++ trunk/milena/tests/value/float01_bis.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_float01_bis.cc +/*! \file tests/value/float01_bis.cc * * \brief Tests on mln::value::float01. */ @@ -38,21 +38,16 @@ { using namespace mln::value; -// float01_8 a; + float01_8 a; - std::cout << "a = " << std::endl; - std::cout << "testsetestest\n"<< std::endl; + gl8 a = white; + gl16 b = white; + assert((a == b) == true); + gl8 c = (a + b) / 2; + assert(c == white); + c = a; + assert(c == white); -// gl8 a = white; -// gl16 b = white; -// assert((a == b) == true); -// gl8 c = (a + b) / 2; -// assert(c == white); -// c = a; -// assert(c == white); - -// c = (a * 2) / 2; -// assert(c == white); - - std::cout << "testsetestest\n"<< std::endl; + c = (a * 2) / 2; + assert(c == white); } Index: trunk/milena/tests/value/scalar.cc =================================================================== --- trunk/milena/tests/value/scalar.cc (revision 1596) +++ trunk/milena/tests/value/scalar.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_scalar.cc +/*! \file tests/value/scalar.cc * * \brief Tests on mln::value::scalar. */ Index: trunk/milena/tests/value/int_u8.cc =================================================================== --- trunk/milena/tests/value/int_u8.cc (revision 1596) +++ trunk/milena/tests/value/int_u8.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_int_u8.cc +/*! \file tests/value/int_u8.cc * * \brief Tests on mln::value::int_u8. */ Index: trunk/milena/tests/value/float01.cc =================================================================== --- trunk/milena/tests/value/float01.cc (revision 1596) +++ trunk/milena/tests/value/float01.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_float01.cc +/*! \file tests/value/float01.cc * * \brief Tests on mln::value::float01. */ Index: trunk/milena/tests/value/builtin.cc =================================================================== --- trunk/milena/tests/value/builtin.cc (revision 1596) +++ trunk/milena/tests/value/builtin.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_builtin.cc +/*! \file tests/value/builtin.cc * * \brief Tests on mln::trait::op with a builtin. */ Index: trunk/milena/tests/value/quat.cc =================================================================== --- trunk/milena/tests/value/quat.cc (revision 1596) +++ trunk/milena/tests/value/quat.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_quat.cc +/*! \file tests/value/quat.cc * * \brief Tests on mln::value::quat. */ Index: trunk/milena/tests/value/float01_f.cc =================================================================== --- trunk/milena/tests/value/float01_f.cc (revision 1596) +++ trunk/milena/tests/value/float01_f.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_float01_f.cc +/*! \file tests/value/float01_f.cc * * \brief Tests on mln::value::float01_f. */ Index: trunk/milena/tests/value/graylevel_full.cc =================================================================== --- trunk/milena/tests/value/graylevel_full.cc (revision 0) +++ trunk/milena/tests/value/graylevel_full.cc (revision 1597) @@ -0,0 +1,370 @@ +// Copyright (C) 2007 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. + +/*! \file tests/value/graylevel_full.cc + * + * \brief Tests on mln::value::graylevel. Tests operations between + * graylevel of different encodings. + * + */ + +#include <mln/value/graylevel2.hh> +#include <mln/value/int_u8.hh> + +#include <mln/literal/black.hh> +#include <mln/literal/white.hh> + + + +int main() +{ + using namespace mln::value; + + using mln::literal::white; + using mln::literal::black; + + gl8 a = 255; + gl8 b = 255; + + // Constructions + { + gl8 x; + + gl8 a = 12; + gl8 b(12); + mln_assertion(a == b); + + { + gl16 c = 2335; + gl8 d = c; + mln_assertion(c == d); + } + + gl8 d = 250; + gl16 c = d; + mln_assertion(c == d); + + gl8 e = gray(white); + std::cout << e << std::endl; + std::cout << gray(white) << std::endl; + + mln_assertion(gray(e) == gray(white)); + + gl8 f = 12; + gl8 g = f; + gl8 h(f); + + mln_assertion(f == g); + mln_assertion(h == g); + } + + // Literals + { + gl8 a(white); + gl16 b(white); + + mln_assertion(a == b); + mln_assertion(a.value() == float(255)); + mln_assertion(b.value() == float(65535)); + mln_assertion(a == white); + mln_assertion(b == white); + + gl8 c(white); + mln_assertion(c == white); + mln_assertion(c.value() == float(255)); + + a = black; + b = black; + + mln_assertion(a == b); + mln_assertion(a.value() == float(0)); + mln_assertion(b.value() == float(0)); + } + + // Assigment + { + gl8 a; + gl16 b; + + a = white; + mln_assertion(a == white); + mln_assertion(a.value() == float(255)); + + a = 23; + mln_assertion(a != white); + mln_assertion(a != black); + mln_assertion(a.value() == float(23)); + + b = 2; + mln_assertion(b != white); + mln_assertion(b != black); + mln_assertion(b.value() == float(2)); + + a = b; + mln_assertion(a.value() == float(2 / 257)); + + signed char c = 51; + a = c; + mln_assertion(a.value() == float(51)); + + // bounds + a = 255; + mln_assertion(a.value() == float(255)); + a = 0; + mln_assertion(a.value() == float(0)); + } + + // Addition + { + gl8 a; + gl16 b; + + // gl8 <- gl8 + gl8 + a = 42; + a += a; + mln_assertion(a.value() == float(84)); + + a = 42; + a = a + a; + mln_assertion(a.value() == float(84)); + + // gl8 <- gl8 + gl16 + a = 42; + b = 16969; + a = a + b; + mln_assertion(a.value() == float((42 + b.value() / 257) )); + a = 42; + b = 16969; + a += b; + mln_assertion(a.value() == float((42 + b.value() / 256) )); + + + // gl16 <- gl8 + gl16 + a = 42; + b = 16969; + b += a; + std::cout << "b = " << b << std::endl; + std::cout << "res = " << float(42 * 256 + 128 + 16969) << std::endl; + mln_assertion(b.value() == float((42 * 256 + 128 + 16969) )); + + a = 42; + b = 16969; + b = a + b; + mln_assertion(b.value() == float((42 * 256 + 128 + 16969) )); + + // misc + a = 255; + b = 0; + a = a + b; + mln_assertion(a.value() == float(255)); + + a = 0; + b = 65535; + //FIXME for tomorow: this doesn't work. + a = a + b; + std::cout << "a = " << a << std::endl; + std::cout << "a + b = " << a + b << std::endl; + mln_assertion(a.value() == float(255)); + } + + + // Soustraction + { + gl8 a; + gl16 b; + + // gl8 <- gl8 - gl8 + a = 42; + a -= a; + mln_assertion(a == black); + + a = 42; + a = a - a; + mln_assertion(a == black); + + // gl8 <- gl8 - gl16 + a = 42; + b = 5969; + + a = b; + std::cout << "a.value() = " << int(a.value()) << std::endl; + std::cout << "should be " << (b.value() / 256) << std::endl; + + { + a = 42; + gl8 t; + t = a - b; + t = t + b; + std::cout << t << " == " << a << std::endl; + mln_assertion(a == t); + } + + a = 42; + a = a - b; + std::cout << int(a.value()) << ":" << floor(42 - b.value() / 256.0) << std::endl; + mln_assertion(a.value() == float((42 - b.value() / 256) )); + a = 42; + b = 9969; + a -= b; + mln_assertion(a.value() == float((42 - round(float(b.value()) / 256)) )); + + + // gl16 <- gl8 - gl16 + a = 100; + b = 30969; + b -= a; + mln_assertion(b.value() == float(30969 - 100 * 256)); + + a = 100; + b = 20969; + b = a - b; + mln_assertion(b.value() == float((100 * 256 - 20969) )); + + // misc + a = 255; + b = 0; + a = a - b; + mln_assertion(a.value() == float(255)); + + a = 255; + b = 65535; + a = a - b; + mln_assertion(a.value() == float(0)); + + // ... + { + graylevel<2> a = 2; + graylevel<3> b = 5; + graylevel<2> c; + graylevel<3> d; + + c = a - b; + d = a - b; + mln_assertion(c == d); + } + + { + + // ... + gl8 a = 42; + gl16 b = 5969; + gl8 p; + p = b; + gl8 q; + gl8 r; + + q = a - p; + r = a - b; + std::cout << int(q.value()) << " " << int(r.value()) << std::endl; + mln_assertion(q == r); + + } + + } + + // Multiplication + { + gl8 a; + gl16 b; + + // gl8 <- gl8 * gl8 + a = 8; + a *= a; + std::cout << a << std::endl; + mln_assertion(a.value() == 42); + + a = 21; + a = a * a; + mln_assertion(a.value() == 42); + + // gl8 <- gl8 * gl16 + a = 10; + b = 5969; + a = a * b; + mln_assertion(a.value() == float((10 * b.value() / 256) )); + + a = 10; + b = 16969; + a *= b; + mln_assertion(a.value() == float((10 * b.value() / 256) )); + + + // gl16 <- gl8 * gl16 + a = 10; + b = 5969; + b *= a; + mln_assertion(b.value() == float((10 * 256 * 5969) )); + + a = 10; + b = 5969; + b = a * b; + mln_assertion(b.value() == float((10 * 256 * 5969) )); + + // misc + a = 255; + b = 0; + a = a * b; + mln_assertion(a == black); + + a = 0; + b = 65535; + a = a * b; + mln_assertion(a == black); + + // ... + { + graylevel<2> a = 2; + graylevel<3> b = 5; + graylevel<2> c; + graylevel<3> d; + + c = a * b; + d = a * b; + mln_assertion(c == d); + } + + { + + // ... + gl8 a = 7; + gl16 b = 5969; + + gl8 p; + p = b; + + gl8 q; + gl8 r; + + q = a * p; + r = a * b; + std::cout << int(q.value()) << " " << int(r.value()) << std::endl; + mln_assertion(q == r); + + } + + } +} Index: trunk/milena/tests/value/int_s.cc =================================================================== --- trunk/milena/tests/value/int_s.cc (revision 1596) +++ trunk/milena/tests/value/int_s.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_int_s.cc +/*! \file tests/value/int_s.cc * * \brief Tests on mln::value::int_s. */ Index: trunk/milena/tests/value/label.cc =================================================================== --- trunk/milena/tests/value/label.cc (revision 1596) +++ trunk/milena/tests/value/label.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_label.cc +/*! \file tests/value/label.cc * * \brief Tests on mln::value::label. */ Index: trunk/milena/tests/value/interop.cc =================================================================== --- trunk/milena/tests/value/interop.cc (revision 1596) +++ trunk/milena/tests/value/interop.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_interop.cc +/*! \file tests/value/interop.cc * * \brief Tests interoperability on mln::value::*. */ Index: trunk/milena/tests/value/int_s16.cc =================================================================== --- trunk/milena/tests/value/int_s16.cc (revision 1596) +++ trunk/milena/tests/value/int_s16.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_int_s16.cc +/*! \file tests/value/int_s16.cc * * \brief Tests on mln::value::int_s16. */ Index: trunk/milena/tests/value/Makefile.am =================================================================== --- trunk/milena/tests/value/Makefile.am (revision 1596) +++ trunk/milena/tests/value/Makefile.am (revision 1597) @@ -24,8 +24,9 @@ scalar \ set -check_full_PROGRAMS = \ - rgb_full +# FIXME: activate when make check_full will work. +# check_full_PROGRAMS = \ +# rgb_full bool_SOURCES = bool.cc builtin_SOURCES = builtin.cc @@ -44,7 +45,9 @@ scalar_SOURCES = scalar.cc set_SOURCES = set.cc -rgb_full_SOURCES = rgb_full.cc +# FIXME: activate when make check_full will work. +# rgb_full_SOURCES = rgb_full.cc TESTS = $(check_PROGRAMS) -TESTS_FULL = $(check_full_PROGRAMS) +# FIXME: activate when make check_full will work. +# TESTS_FULL = $(check_full_PROGRAMS) Index: trunk/milena/tests/value/equiv.cc =================================================================== --- trunk/milena/tests/value/equiv.cc (revision 1596) +++ trunk/milena/tests/value/equiv.cc (revision 1597) @@ -25,7 +25,7 @@ // reasons why the executable file might be covered by the GNU General // Public License. -/*! \file tests/value_equiv.cc +/*! \file tests/value/equiv.cc * * \brief Tests on mln::value::equiv. *