Mercurial > hg > orthanc-stone
annotate UnitTestsSources/TestStrategy.cpp @ 1870:3889ae96d2e9
added copyright UCLouvain
author | Sebastien Jodogne <s.jodogne@gmail.com> |
---|---|
date | Tue, 11 Jan 2022 11:04:09 +0100 |
parents | 9ac2a65d4172 |
children | 7053b8a0aaec |
rev | line source |
---|---|
695 | 1 /** |
2 * Stone of Orthanc | |
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics | |
4 * Department, University Hospital of Liege, Belgium | |
1739
9ac2a65d4172
upgrade to year 2021
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1596
diff
changeset
|
5 * Copyright (C) 2017-2021 Osimis S.A., Belgium |
1870
3889ae96d2e9
added copyright UCLouvain
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1739
diff
changeset
|
6 * Copyright (C) 2021-2021 Sebastien Jodogne, ICTEAM UCLouvain, Belgium |
695 | 7 * |
8 * This program is free software: you can redistribute it and/or | |
9 * modify it under the terms of the GNU Affero General Public License | |
10 * as published by the Free Software Foundation, either version 3 of | |
11 * the License, or (at your option) any later version. | |
12 * | |
13 * This program is distributed in the hope that it will be useful, but | |
14 * WITHOUT ANY WARRANTY; without even the implied warranty of | |
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU | |
16 * Affero General Public License for more details. | |
1596
4fb8fdf03314
removed annoying whitespace
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1587
diff
changeset
|
17 * |
695 | 18 * You should have received a copy of the GNU Affero General Public License |
19 * along with this program. If not, see <http://www.gnu.org/licenses/>. | |
20 **/ | |
21 | |
22 | |
1455
30deba7bc8e2
simplifying include_directories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1270
diff
changeset
|
23 #include <gtest/gtest.h> |
695 | 24 |
1587 | 25 #include "../OrthancStone/Sources/Loaders/BasicFetchingStrategy.h" |
26 #include "../OrthancStone/Sources/Loaders/BasicFetchingItemsSorter.h" | |
695 | 27 |
1455
30deba7bc8e2
simplifying include_directories
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
1270
diff
changeset
|
28 #include <OrthancException.h> |
695 | 29 |
30 | |
697
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
31 namespace |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
32 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
33 class StrategyTester : public boost::noncopyable |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
34 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
35 private: |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
36 std::map<unsigned int, unsigned int> qualities_; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
37 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
38 public: |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
39 bool IsValidCommand(unsigned int item, |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
40 unsigned int quality) |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
41 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
42 if (qualities_.find(item) != qualities_.end() && |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
43 qualities_[item] >= quality) |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
44 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
45 return false; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
46 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
47 else |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
48 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
49 qualities_[item] = quality; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
50 return true; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
51 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
52 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
53 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
54 bool HasFinished(OrthancStone::BasicFetchingStrategy& strategy) |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
55 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
56 for (unsigned int i = 0; i < strategy.GetItemsCount(); i++) |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
57 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
58 if (qualities_.find(i) == qualities_.end() || |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
59 qualities_[i] != strategy.GetMaxQuality()) |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
60 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
61 return false; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
62 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
63 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
64 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
65 return true; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
66 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
67 }; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
68 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
69 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
70 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
71 TEST(BasicFetchingStrategy, Test1) |
695 | 72 { |
697
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
73 ASSERT_THROW(OrthancStone::BasicFetchingStrategy(NULL, 0), Orthanc::OrthancException); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
74 ASSERT_THROW(OrthancStone::BasicFetchingStrategy(new OrthancStone::BasicFetchingItemsSorter(0), 0), Orthanc::OrthancException); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
75 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
76 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
77 OrthancStone::BasicFetchingStrategy s(new OrthancStone::BasicFetchingItemsSorter(1), 0); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
78 unsigned int i, q; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
79 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(0u, i); ASSERT_EQ(0u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
80 ASSERT_FALSE(s.GetNext(i, q)); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
81 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
82 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
83 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
84 OrthancStone::BasicFetchingStrategy s(new OrthancStone::BasicFetchingItemsSorter(1), 5); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
85 unsigned int i, q; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
86 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(0u, i); ASSERT_EQ(5u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
87 ASSERT_FALSE(s.GetNext(i, q)); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
88 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
89 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
90 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
91 OrthancStone::BasicFetchingStrategy s(new OrthancStone::BasicFetchingItemsSorter(2), 2); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
92 unsigned int i, q; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
93 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(0u, i); ASSERT_EQ(2u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
94 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(1u, i); ASSERT_EQ(1u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
95 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(1u, i); ASSERT_EQ(2u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
96 ASSERT_FALSE(s.GetNext(i, q)); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
97 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
98 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
99 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
100 OrthancStone::BasicFetchingStrategy s(new OrthancStone::BasicFetchingItemsSorter(3), 2); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
101 unsigned int i, q; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
102 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(0u, i); ASSERT_EQ(2u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
103 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(1u, i); ASSERT_EQ(1u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
104 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(2u, i); ASSERT_EQ(1u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
105 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(1u, i); ASSERT_EQ(2u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
106 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(2u, i); ASSERT_EQ(2u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
107 ASSERT_FALSE(s.GetNext(i, q)); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
108 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
109 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
110 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
111 OrthancStone::BasicFetchingStrategy s(new OrthancStone::BasicFetchingItemsSorter(3), 2); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
112 s.SetBlockSize(1); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
113 s.SetCurrent(0); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
114 unsigned int i, q; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
115 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(0u, i); ASSERT_EQ(2u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
116 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(1u, i); ASSERT_EQ(1u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
117 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(1u, i); ASSERT_EQ(2u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
118 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(2u, i); ASSERT_EQ(0u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
119 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(2u, i); ASSERT_EQ(1u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
120 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(2u, i); ASSERT_EQ(2u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
121 ASSERT_FALSE(s.GetNext(i, q)); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
122 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
123 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
124 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
125 OrthancStone::BasicFetchingStrategy s(new OrthancStone::BasicFetchingItemsSorter(5), 0); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
126 ASSERT_THROW(s.SetCurrent(5), Orthanc::OrthancException); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
127 s.SetCurrent(2); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
128 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
129 unsigned int i, q; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
130 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(2u, i); ASSERT_EQ(0u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
131 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(3u, i); ASSERT_EQ(0u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
132 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(1u, i); ASSERT_EQ(0u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
133 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(4u, i); ASSERT_EQ(0u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
134 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(0u, i); ASSERT_EQ(0u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
135 ASSERT_FALSE(s.GetNext(i, q)); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
136 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
137 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
138 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
139 OrthancStone::BasicFetchingStrategy s(new OrthancStone::BasicFetchingItemsSorter(5), 0); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
140 s.SetCurrent(4); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
141 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
142 unsigned int i, q; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
143 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(4u, i); ASSERT_EQ(0u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
144 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(3u, i); ASSERT_EQ(0u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
145 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(2u, i); ASSERT_EQ(0u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
146 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(1u, i); ASSERT_EQ(0u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
147 ASSERT_TRUE(s.GetNext(i, q)); ASSERT_EQ(0u, i); ASSERT_EQ(0u, q); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
148 ASSERT_FALSE(s.GetNext(i, q)); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
149 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
150 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
151 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
152 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
153 TEST(BasicFetchingStrategy, Test2) |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
154 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
155 OrthancStone::BasicFetchingStrategy s(new OrthancStone::BasicFetchingItemsSorter(20), 2); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
156 ASSERT_EQ(20u, s.GetItemsCount()); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
157 ASSERT_EQ(2u, s.GetMaxQuality()); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
158 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
159 StrategyTester t; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
160 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
161 s.SetCurrent(10); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
162 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
163 unsigned int i, q; |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
164 while (s.GetNext(i, q)) |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
165 { |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
166 ASSERT_TRUE(t.IsValidCommand(i, q)); |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
167 } |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
168 |
14557e550920
BasicFetchingStrategy
Sebastien Jodogne <s.jodogne@gmail.com>
parents:
695
diff
changeset
|
169 ASSERT_TRUE(t.HasFinished(s)); |
695 | 170 } |
171 | |
172 | |
173 | |
174 | |
175 TEST(BasicFetchingItemsSorter, Small) | |
176 { | |
177 ASSERT_THROW(OrthancStone::BasicFetchingItemsSorter(0), Orthanc::OrthancException); | |
178 std::vector<unsigned int> v; | |
179 | |
180 { | |
181 OrthancStone::BasicFetchingItemsSorter s(1); | |
182 s.Sort(v, 0); | |
183 ASSERT_EQ(1u, v.size()); | |
184 ASSERT_EQ(0u, v[0]); | |
185 | |
186 ASSERT_THROW(s.Sort(v, 1), Orthanc::OrthancException); | |
187 } | |
188 | |
189 { | |
190 OrthancStone::BasicFetchingItemsSorter s(2); | |
191 s.Sort(v, 0); | |
192 ASSERT_EQ(2u, v.size()); | |
193 ASSERT_EQ(0u, v[0]); | |
194 ASSERT_EQ(1u, v[1]); | |
195 | |
196 s.Sort(v, 1); | |
197 ASSERT_EQ(2u, v.size()); | |
198 ASSERT_EQ(1u, v[0]); | |
199 ASSERT_EQ(0u, v[1]); | |
200 | |
201 ASSERT_THROW(s.Sort(v, 2), Orthanc::OrthancException); | |
202 } | |
203 | |
204 { | |
205 OrthancStone::BasicFetchingItemsSorter s(3); | |
206 s.Sort(v, 0); | |
207 ASSERT_EQ(3u, v.size()); | |
208 ASSERT_EQ(0u, v[0]); | |
209 ASSERT_EQ(1u, v[1]); | |
210 ASSERT_EQ(2u, v[2]); | |
211 | |
212 s.Sort(v, 1); | |
213 ASSERT_EQ(3u, v.size()); | |
214 ASSERT_EQ(1u, v[0]); | |
215 ASSERT_EQ(2u, v[1]); | |
216 ASSERT_EQ(0u, v[2]); | |
217 | |
218 s.Sort(v, 2); | |
219 ASSERT_EQ(3u, v.size()); | |
220 ASSERT_EQ(2u, v[0]); | |
221 ASSERT_EQ(1u, v[1]); | |
222 ASSERT_EQ(0u, v[2]); | |
223 | |
224 ASSERT_THROW(s.Sort(v, 3), Orthanc::OrthancException); | |
225 } | |
226 } | |
227 | |
228 | |
229 TEST(BasicFetchingItemsSorter, Odd) | |
230 { | |
231 OrthancStone::BasicFetchingItemsSorter s(7); | |
232 std::vector<unsigned int> v; | |
233 | |
234 ASSERT_THROW(s.Sort(v, 7), Orthanc::OrthancException); | |
235 | |
236 { | |
237 s.Sort(v, 0); | |
238 ASSERT_EQ(7u, v.size()); | |
239 ASSERT_EQ(0u, v[0]); | |
240 ASSERT_EQ(1u, v[1]); | |
241 ASSERT_EQ(2u, v[2]); | |
242 ASSERT_EQ(3u, v[3]); | |
243 ASSERT_EQ(4u, v[4]); | |
244 ASSERT_EQ(5u, v[5]); | |
245 ASSERT_EQ(6u, v[6]); | |
246 } | |
247 | |
248 { | |
249 s.Sort(v, 1); | |
250 ASSERT_EQ(7u, v.size()); | |
251 ASSERT_EQ(1u, v[0]); | |
252 ASSERT_EQ(2u, v[1]); | |
253 ASSERT_EQ(0u, v[2]); | |
254 ASSERT_EQ(3u, v[3]); | |
255 ASSERT_EQ(4u, v[4]); | |
256 ASSERT_EQ(5u, v[5]); | |
257 ASSERT_EQ(6u, v[6]); | |
258 } | |
259 | |
260 { | |
261 s.Sort(v, 2); | |
262 ASSERT_EQ(7u, v.size()); | |
263 ASSERT_EQ(2u, v[0]); | |
264 ASSERT_EQ(3u, v[1]); | |
265 ASSERT_EQ(1u, v[2]); | |
266 ASSERT_EQ(4u, v[3]); | |
267 ASSERT_EQ(0u, v[4]); | |
268 ASSERT_EQ(5u, v[5]); | |
269 ASSERT_EQ(6u, v[6]); | |
270 } | |
271 | |
272 { | |
273 s.Sort(v, 3); | |
274 ASSERT_EQ(7u, v.size()); | |
275 ASSERT_EQ(3u, v[0]); | |
276 ASSERT_EQ(4u, v[1]); | |
277 ASSERT_EQ(2u, v[2]); | |
278 ASSERT_EQ(5u, v[3]); | |
279 ASSERT_EQ(1u, v[4]); | |
280 ASSERT_EQ(6u, v[5]); | |
281 ASSERT_EQ(0u, v[6]); | |
282 } | |
283 | |
284 { | |
285 s.Sort(v, 4); | |
286 ASSERT_EQ(7u, v.size()); | |
287 ASSERT_EQ(4u, v[0]); | |
288 ASSERT_EQ(5u, v[1]); | |
289 ASSERT_EQ(3u, v[2]); | |
290 ASSERT_EQ(6u, v[3]); | |
291 ASSERT_EQ(2u, v[4]); | |
292 ASSERT_EQ(1u, v[5]); | |
293 ASSERT_EQ(0u, v[6]); | |
294 } | |
295 | |
296 { | |
297 s.Sort(v, 5); | |
298 ASSERT_EQ(7u, v.size()); | |
299 ASSERT_EQ(5u, v[0]); | |
300 ASSERT_EQ(6u, v[1]); | |
301 ASSERT_EQ(4u, v[2]); | |
302 ASSERT_EQ(3u, v[3]); | |
303 ASSERT_EQ(2u, v[4]); | |
304 ASSERT_EQ(1u, v[5]); | |
305 ASSERT_EQ(0u, v[6]); | |
306 } | |
307 | |
308 { | |
309 s.Sort(v, 6); | |
310 ASSERT_EQ(7u, v.size()); | |
311 ASSERT_EQ(6u, v[0]); | |
312 ASSERT_EQ(5u, v[1]); | |
313 ASSERT_EQ(4u, v[2]); | |
314 ASSERT_EQ(3u, v[3]); | |
315 ASSERT_EQ(2u, v[4]); | |
316 ASSERT_EQ(1u, v[5]); | |
317 ASSERT_EQ(0u, v[6]); | |
318 } | |
319 } | |
320 | |
321 | |
322 TEST(BasicFetchingItemsSorter, Even) | |
323 { | |
324 OrthancStone::BasicFetchingItemsSorter s(6); | |
325 std::vector<unsigned int> v; | |
326 | |
327 { | |
328 s.Sort(v, 0); | |
329 ASSERT_EQ(6u, v.size()); | |
330 ASSERT_EQ(0u, v[0]); | |
331 ASSERT_EQ(1u, v[1]); | |
332 ASSERT_EQ(2u, v[2]); | |
333 ASSERT_EQ(3u, v[3]); | |
334 ASSERT_EQ(4u, v[4]); | |
335 ASSERT_EQ(5u, v[5]); | |
336 } | |
337 | |
338 { | |
339 s.Sort(v, 1); | |
340 ASSERT_EQ(6u, v.size()); | |
341 ASSERT_EQ(1u, v[0]); | |
342 ASSERT_EQ(2u, v[1]); | |
343 ASSERT_EQ(0u, v[2]); | |
344 ASSERT_EQ(3u, v[3]); | |
345 ASSERT_EQ(4u, v[4]); | |
346 ASSERT_EQ(5u, v[5]); | |
347 } | |
348 | |
349 { | |
350 s.Sort(v, 2); | |
351 ASSERT_EQ(6u, v.size()); | |
352 ASSERT_EQ(2u, v[0]); | |
353 ASSERT_EQ(3u, v[1]); | |
354 ASSERT_EQ(1u, v[2]); | |
355 ASSERT_EQ(4u, v[3]); | |
356 ASSERT_EQ(0u, v[4]); | |
357 ASSERT_EQ(5u, v[5]); | |
358 } | |
359 | |
360 { | |
361 s.Sort(v, 3); | |
362 ASSERT_EQ(6u, v.size()); | |
363 ASSERT_EQ(3u, v[0]); | |
364 ASSERT_EQ(4u, v[1]); | |
365 ASSERT_EQ(2u, v[2]); | |
366 ASSERT_EQ(5u, v[3]); | |
367 ASSERT_EQ(1u, v[4]); | |
368 ASSERT_EQ(0u, v[5]); | |
369 } | |
370 | |
371 { | |
372 s.Sort(v, 4); | |
373 ASSERT_EQ(6u, v.size()); | |
374 ASSERT_EQ(4u, v[0]); | |
375 ASSERT_EQ(5u, v[1]); | |
376 ASSERT_EQ(3u, v[2]); | |
377 ASSERT_EQ(2u, v[3]); | |
378 ASSERT_EQ(1u, v[4]); | |
379 ASSERT_EQ(0u, v[5]); | |
380 } | |
381 | |
382 { | |
383 s.Sort(v, 5); | |
384 ASSERT_EQ(6u, v.size()); | |
385 ASSERT_EQ(5u, v[0]); | |
386 ASSERT_EQ(4u, v[1]); | |
387 ASSERT_EQ(3u, v[2]); | |
388 ASSERT_EQ(2u, v[3]); | |
389 ASSERT_EQ(1u, v[4]); | |
390 ASSERT_EQ(0u, v[5]); | |
391 } | |
392 } |