$extrastylesheet
Olena  User documentation 2.1
An Image Processing Platform
 All Classes Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
rank.cc
1 // Copyright (C) 2007, 2008, 2009 EPITA Research and Development Laboratory (LRDE)
2 //
3 // This file is part of Olena.
4 //
5 // Olena is free software: you can redistribute it and/or modify it under
6 // the terms of the GNU General Public License as published by the Free
7 // Software Foundation, version 2 of the License.
8 //
9 // Olena is distributed in the hope that it will be useful,
10 // but WITHOUT ANY WARRANTY; without even the implied warranty of
11 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
12 // General Public License for more details.
13 //
14 // You should have received a copy of the GNU General Public License
15 // along with Olena. If not, see <http://www.gnu.org/licenses/>.
16 //
17 // As a special exception, you may use this file as part of a free
18 // software project without restriction. Specifically, if other files
19 // instantiate templates or use macros or inline functions from this
20 // file, or you compile this file and link it with other files to produce
21 // an executable, this file does not by itself cause the resulting
22 // executable to be covered by the GNU General Public License. This
23 // exception does not however invalidate any other reasons why the
24 // executable file might be covered by the GNU General Public License.
25 
26 #include <mln/accu/stat/rank.hh>
27 #include <mln/value/int_u8.hh>
28 
29 
30 
31 template <typename A>
32 void fill(mln::Accumulator<A>& accu_)
33 {
34  A& accu = exact(accu_);
35  accu.take(2);
36  accu.take(3);
37  accu.take(1);
38  accu.take(4);
39  accu.take(5);
40  accu.take(5);
41  accu.take(2);
42  accu.take(5);
43 }
44 
45 
46 int main()
47 {
48  using namespace mln;
49  using value::int_u8;
50 
51  {
53  accu::stat::rank<int_u8> a = accu::unmeta(r, int_u8());
54  mln_assertion(a.k() == 4);
55 // Meta_Accumulator<accu::meta::stat::rank>& R = r;
56 // accu::unmeta(R, int_u8());
57  }
58 
59  {
61  fill(accu);
62  mln_assertion(accu.to_result() == 1u);
63  }
64  {
66  fill(accu);
67  mln_assertion(accu.to_result() == 2u);
68  }
69  {
71  fill(accu);
72  mln_assertion(accu.to_result() == 2u);
73  }
74  {
76  fill(accu);
77  mln_assertion(accu.to_result() == 3u);
78  }
79  {
81  fill(accu);
82  mln_assertion(accu.to_result() == 4u);
83  }
84  {
86  fill(accu);
87  mln_assertion(accu.to_result() == 5u);
88  }
89  {
91  fill(accu);
92  mln_assertion(accu.to_result() == 5u);
93  }
94  {
96  fill(accu);
97  mln_assertion(accu.to_result() == 5u);
98  }
99  {
100  accu::stat::rank<bool> accu_bool(1);
101  accu_bool.take(true);
102  accu_bool.take(true);
103  accu_bool.take(true);
104  accu_bool.take(true);
105  accu_bool.take(false);
106  mln_assertion(accu_bool == true);
107  }
108 }