|
29 | 29 | #include <algorithm> // std::transform |
30 | 30 | #include <array> // std::array |
31 | 31 | #include <chrono> // std::chrono_literals namespace |
32 | | -#include <cstddef> // std::size_t |
33 | 32 | #include <filesystem> // std::filesystem::is_empty |
34 | 33 | #include <iostream> // std::cout, std::clog |
35 | 34 | #include <map> // std::map |
36 | 35 | #include <string> // std::string |
37 | | -#include <utility> // std::move |
38 | 36 | #include <vector> // std::vector |
39 | 37 |
|
40 | 38 | using namespace plssvm::detail::literals; // NOLINT(google-build-using-namespace): only imports custom user-defined literals into this namespace |
@@ -111,132 +109,6 @@ class PerformanceTracker : public ::testing::Test, |
111 | 109 | plssvm::detail::tracking::performance_tracker tracker_; |
112 | 110 | }; |
113 | 111 |
|
114 | | -TEST_F(PerformanceTracker, CopyConstruct) { |
115 | | - // get performance tracker from fixture class |
116 | | - plssvm::detail::tracking::performance_tracker &tracker = this->get_performance_tracker(); |
117 | | - |
118 | | - // add different tracking entries |
119 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "foo", "bar", 42 }); |
120 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "foo", "baz", 3.1415 }); |
121 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "foo", "mem", 1_KiB }); |
122 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "", "foobar", 'a' }); |
123 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "", "foobar", 'b' }); |
124 | | - |
125 | | - // copy-construct new performance tracker |
126 | | - const plssvm::detail::tracking::performance_tracker tracker2{ tracker }; |
127 | | - |
128 | | - // check the contents |
129 | | - EXPECT_EQ(tracker2.get_tracking_entries(), tracker.get_tracking_entries()); |
130 | | - ASSERT_EQ(tracker2.get_events().num_events(), tracker.get_events().num_events()); |
131 | | - for (std::size_t i = 0; i < tracker.get_events().num_events(); ++i) { |
132 | | - EXPECT_EQ(tracker2.get_events()[i].time_point, tracker.get_events()[i].time_point); |
133 | | - EXPECT_EQ(tracker2.get_events()[i].name, tracker.get_events()[i].name); |
134 | | - } |
135 | | - EXPECT_EQ(tracker2.get_reference_time(), tracker.get_reference_time()); |
136 | | - EXPECT_EQ(tracker2.is_tracking(), tracker.is_tracking()); |
137 | | -} |
138 | | - |
139 | | -TEST_F(PerformanceTracker, MoveConstruct) { |
140 | | - // get performance tracker from fixture class |
141 | | - plssvm::detail::tracking::performance_tracker &tracker = this->get_performance_tracker(); |
142 | | - |
143 | | - // add different tracking entries |
144 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "foo", "bar", 42 }); |
145 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "foo", "baz", 3.1415 }); |
146 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "foo", "mem", 1_KiB }); |
147 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "", "foobar", 'a' }); |
148 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "", "foobar", 'b' }); |
149 | | - |
150 | | - // save (i.e. copy contents as ground truth) |
151 | | - const auto entries = tracker.get_tracking_entries(); |
152 | | - const auto events = tracker.get_events(); |
153 | | - const auto reference_time = tracker.get_reference_time(); |
154 | | - const bool is_tracking = tracker.is_tracking(); |
155 | | - |
156 | | - // move-construct new performance tracker |
157 | | - const plssvm::detail::tracking::performance_tracker tracker2{ std::move(tracker) }; |
158 | | - |
159 | | - // check the contents |
160 | | - EXPECT_EQ(tracker2.get_tracking_entries(), entries); |
161 | | - ASSERT_EQ(tracker2.get_events().num_events(), events.num_events()); |
162 | | - for (std::size_t i = 0; i < events.num_events(); ++i) { |
163 | | - EXPECT_EQ(tracker2.get_events()[i].time_point, events[i].time_point); |
164 | | - EXPECT_EQ(tracker2.get_events()[i].name, events[i].name); |
165 | | - } |
166 | | - EXPECT_EQ(tracker2.get_reference_time(), reference_time); |
167 | | - EXPECT_EQ(tracker2.is_tracking(), is_tracking); |
168 | | - |
169 | | - // check moved-from state |
170 | | - // NOLINTBEGIN: use after move wanted since this is tested here |
171 | | - EXPECT_TRUE(tracker.get_tracking_entries().empty()); |
172 | | - EXPECT_TRUE(tracker.get_events().empty()); |
173 | | - // NOLINTEND |
174 | | -} |
175 | | - |
176 | | -TEST_F(PerformanceTracker, CopyAssign) { |
177 | | - // get performance tracker from fixture class |
178 | | - plssvm::detail::tracking::performance_tracker &tracker = this->get_performance_tracker(); |
179 | | - |
180 | | - // add different tracking entries |
181 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "foo", "bar", 42 }); |
182 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "foo", "baz", 3.1415 }); |
183 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "foo", "mem", 1_KiB }); |
184 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "", "foobar", 'a' }); |
185 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "", "foobar", 'b' }); |
186 | | - |
187 | | - // default-construct new performance tracker then copy-assign another performance tracker |
188 | | - plssvm::detail::tracking::performance_tracker tracker2{}; |
189 | | - tracker2 = tracker; |
190 | | - |
191 | | - // check the contents |
192 | | - EXPECT_EQ(tracker2.get_tracking_entries(), tracker.get_tracking_entries()); |
193 | | - ASSERT_EQ(tracker2.get_events().num_events(), tracker.get_events().num_events()); |
194 | | - for (std::size_t i = 0; i < tracker.get_events().num_events(); ++i) { |
195 | | - EXPECT_EQ(tracker2.get_events()[i].time_point, tracker.get_events()[i].time_point); |
196 | | - EXPECT_EQ(tracker2.get_events()[i].name, tracker.get_events()[i].name); |
197 | | - } |
198 | | - EXPECT_EQ(tracker2.get_reference_time(), tracker.get_reference_time()); |
199 | | - EXPECT_EQ(tracker2.is_tracking(), tracker.is_tracking()); |
200 | | -} |
201 | | - |
202 | | -TEST_F(PerformanceTracker, MoveAssign) { |
203 | | - // get performance tracker from fixture class |
204 | | - plssvm::detail::tracking::performance_tracker &tracker = this->get_performance_tracker(); |
205 | | - |
206 | | - // add different tracking entries |
207 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "foo", "bar", 42 }); |
208 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "foo", "baz", 3.1415 }); |
209 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "foo", "mem", 1_KiB }); |
210 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "", "foobar", 'a' }); |
211 | | - tracker.add_tracking_entry(plssvm::detail::tracking::tracking_entry{ "", "foobar", 'b' }); |
212 | | - |
213 | | - // save (i.e. copy contents as ground truth) |
214 | | - const auto entries = tracker.get_tracking_entries(); |
215 | | - const auto events = tracker.get_events(); |
216 | | - const auto reference_time = tracker.get_reference_time(); |
217 | | - const bool is_tracking = tracker.is_tracking(); |
218 | | - |
219 | | - // default-construct new performance tracker then move-assign another performance tracker |
220 | | - plssvm::detail::tracking::performance_tracker tracker2{}; |
221 | | - tracker2 = std::move(tracker); |
222 | | - |
223 | | - // check the contents |
224 | | - EXPECT_EQ(tracker2.get_tracking_entries(), entries); |
225 | | - ASSERT_EQ(tracker2.get_events().num_events(), events.num_events()); |
226 | | - for (std::size_t i = 0; i < events.num_events(); ++i) { |
227 | | - EXPECT_EQ(tracker2.get_events()[i].time_point, events[i].time_point); |
228 | | - EXPECT_EQ(tracker2.get_events()[i].name, events[i].name); |
229 | | - } |
230 | | - EXPECT_EQ(tracker2.get_reference_time(), reference_time); |
231 | | - EXPECT_EQ(tracker2.is_tracking(), is_tracking); |
232 | | - |
233 | | - // check moved-from state |
234 | | - // NOLINTBEGIN: use after move wanted since this is tested here |
235 | | - EXPECT_TRUE(tracker.get_tracking_entries().empty()); |
236 | | - EXPECT_TRUE(tracker.get_events().empty()); |
237 | | - // NOLINTEND |
238 | | -} |
239 | | - |
240 | 112 | // the macros are only available if PLSSVM_PERFORMANCE_TRACKER_ENABLED is defined! |
241 | 113 | #if defined(PLSSVM_PERFORMANCE_TRACKER_ENABLED) |
242 | 114 |
|
|
0 commit comments