Commit 9f4af749 authored by Nicolas Neri's avatar Nicolas Neri
Browse files

Add tests for queue.


	* queue_p_fast.cc,
	* queue_p_fast_priority.cc,
	* queue_p_priority.cc: New tests.

	* image2d.cc: Update test for (id_) in mln/core/internal.

git-svn-id: https://svn.lrde.epita.fr/svn/oln/trunk@1325 4aad255d-cdde-0310-9447-f3009e2ae8c0
parent 78091070
2007-10-12 Guillaume Duhamel <guillaume.duhamel@lrde.epita.fr>
Add tests for queue.
* queue_p_fast.cc,
* queue_p_fast_priority.cc,
* queue_p_priority.cc: New tests.
* image2d.cc: Update test for (id_) in mln/core/internal.
2007-10-12 Guillaume Duhamel <guillaume.duhamel@lrde.epita.fr>
Add new kind of queue.
......
......@@ -34,6 +34,7 @@
#include <mln/geom/size2d.hh>
#include <mln/core/init.hh>
#include <mln/border/resize.hh>
......@@ -47,6 +48,15 @@ int main()
image2d<int> f(nrows, ncols, border);
{
std::cout << f.id_() << std::endl;
image2d<int> g;
std::cout << g.id_() << std::endl;
g = f;
// border::resize (g, 2);
std::cout << g.id_() << std::endl;
}
mln_assertion(f.npoints() == geom::nrows(f) * geom::ncols(f));
mln_assertion(f.ncells() == (nrows + 2 * border) * (ncols + 2 * border));
}
// 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/queue_p.cc
*
* \brief Tests on mln::queue_p.
*/
#include <mln/core/point2d.hh>
#include <mln/core/queue_p_fast.hh>
int main()
{
using namespace mln;
queue_p_fast<point2d> q;
q
.push(make::point2d(6, 9))
.push(make::point2d(5, 1))
.push(make::point2d(4, 2));
mln_assertion(q.npoints() == 3);
std::cout << q.bbox() << std::endl;
std::cout << q << std::endl;
q.pop();
mln_assertion(q.npoints() == 2);
point2d p = q.front();
mln_assertion(q.npoints() == 2);
mln_assertion(p == make::point2d(5, 1));
}
// 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/queue_p_priority.cc
*
* \brief Tests on mln::queue_p_priority.
*/
#include <mln/core/point2d.hh>
#include <mln/core/queue_p_fast_priority.hh>
int main ()
{
using namespace mln;
mln::queue_p_fast_priority<point2d, unsigned> q;
point2d p1 (6, 9);
point2d p2 (5, 1);
point2d p3 (4, 2);
mln_assertion (q.empty ());
mln_assertion (q.npoints () == 0);
q.push_force (p3);
q.push_force (p1, 3);
q.push_force (p2, 5);
std::cout << q.bbox () << std::endl;
std::cout << q << std::endl;
mln_assertion (!q.empty ());
mln_assertion (q.has (p1));
mln_assertion (q.has (p2));
mln_assertion (q.has (p3));
mln_assertion (q.npoints () == 3);
mln_assertion (q.front () == p2);
q.pop ();
mln_assertion (q.has (p1));
mln_assertion (!q.has (p2));
mln_assertion (q.has (p3));
mln_assertion (q.npoints () == 2);
mln_assertion (q.front () == p1);
q.pop ();
mln_assertion (!q.has (p1));
mln_assertion (!q.has (p2));
mln_assertion (q.has (p3));
mln_assertion (q.npoints () == 1);
mln_assertion (q.front () == p3);
q.pop ();
mln_assertion (!q.has (p1));
mln_assertion (!q.has (p2));
mln_assertion (!q.has (p3));
mln_assertion (q.npoints () == 0);
mln_assertion (q.empty ());
q.push_force (p3);
q.push_force (p2, 5);
q.push_force (p1, 3);
mln_assertion (q[2] == p3);
mln_assertion (q[1] == p1);
mln_assertion (q[0] == p2);
q.clear ();
mln_assertion (q.empty ());
}
// 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/queue_p_priority.cc
*
* \brief Tests on mln::queue_p_priority.
*/
#include <mln/core/point2d.hh>
#include <mln/core/queue_p_priority.hh>
int main ()
{
using namespace mln;
mln::queue_p_priority<point2d, unsigned> q;
point2d p1 (6, 9);
point2d p2 (5, 1);
point2d p3 (4, 2);
mln_assertion (q.empty ());
mln_assertion (q.npoints () == 0);
q.push_force (p3);
q.push_force (p1, 3);
q.push_force (p2, 5);
std::cout << q.bbox () << std::endl;
std::cout << q << std::endl;
mln_assertion (!q.empty ());
mln_assertion (q.has (p1));
mln_assertion (q.has (p2));
mln_assertion (q.has (p3));
mln_assertion (q.npoints () == 3);
mln_assertion (q.front () == p2);
q.pop ();
mln_assertion (q.has (p1));
mln_assertion (!q.has (p2));
mln_assertion (q.has (p3));
mln_assertion (q.npoints () == 2);
mln_assertion (q.front () == p1);
q.pop ();
mln_assertion (!q.has (p1));
mln_assertion (!q.has (p2));
mln_assertion (q.has (p3));
mln_assertion (q.npoints () == 1);
mln_assertion (q.front () == p3);
q.pop ();
mln_assertion (!q.has (p1));
mln_assertion (!q.has (p2));
mln_assertion (!q.has (p3));
mln_assertion (q.npoints () == 0);
mln_assertion (q.empty ());
q.push_force (p3);
q.push_force (p2, 5);
q.push_force (p1, 3);
mln_assertion (q[2] == p3);
mln_assertion (q[1] == p1);
mln_assertion (q[0] == p2);
q.clear ();
mln_assertion (q.empty ());
}
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment