00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #include <mln/core/alias/point2d.hh>
00027 #include <mln/core/site_set/p_priority.hh>
00028 #include <mln/core/site_set/p_queue.hh>
00029 #include <mln/geom/bbox.hh>
00030 #include <mln/make/box2d.hh>
00031 #include <mln/set/has.hh>
00032 #include <mln/set/get.hh>
00033
00034
00035 int main()
00036 {
00037 using namespace mln;
00038
00039 typedef p_queue<point2d> Q;
00040 p_priority<unsigned, Q> q;
00041 point2d p1(6, 9);
00042 point2d p2(5, 1);
00043 point2d p3(4, 2);
00044
00045 mln_assertion(q.is_empty());
00046
00047 mln_assertion(q.nsites() == 0);
00048
00049 q.push(0, p3);
00050 q.push(3, p1);
00051 q.push(5, p2);
00052
00053 mln_assertion(geom::bbox(q) == make::box2d(4,1, 6,9));
00054
00055 mln_assertion(! q.is_empty());
00056
00057 mln_assertion(set::has(q, p1));
00058 mln_assertion(set::has(q, p2));
00059 mln_assertion(set::has(q, p3));
00060
00061 mln_assertion(q.nsites() == 3);
00062 mln_assertion(q.front() == p2);
00063 q.pop();
00064
00065 mln_assertion(set::has(q, p1));
00066 mln_assertion(! set::has(q, p2));
00067 mln_assertion(set::has(q, p3));
00068
00069 mln_assertion(q.nsites() == 2);
00070 mln_assertion(q.front() == p1);
00071 q.pop();
00072
00073 mln_assertion(! set::has(q, p1));
00074 mln_assertion(! set::has(q, p2));
00075 mln_assertion(set::has(q, p3));
00076
00077 mln_assertion(q.nsites() == 1);
00078 mln_assertion(q.front() == p3);
00079 q.pop();
00080
00081 mln_assertion(! set::has(q, p1));
00082 mln_assertion(! set::has(q, p2));
00083 mln_assertion(! set::has(q, p3));
00084 mln_assertion(q.nsites() == 0);
00085
00086 mln_assertion(q.is_empty());
00087
00088 q.push(0, p3);
00089 q.push(5, p2);
00090 q.push(3, p1);
00091
00092 mln_assertion(set::get(q, 2) == p3);
00093 mln_assertion(set::get(q, 0) == p2);
00094 mln_assertion(set::get(q, 1) == p1);
00095 q.clear();
00096 mln_assertion(q.is_empty());
00097 }