Skip to content

Commit 8064131

Browse files
committed
Add raw_queue unit tests
1 parent 362848c commit 8064131

File tree

1 file changed

+46
-198
lines changed

1 file changed

+46
-198
lines changed

tests/xtd.core.unit_tests/src/xtd/collections/generic/helpers/tests/raw_queue_tests.cpp

Lines changed: 46 additions & 198 deletions
Original file line numberDiff line numberDiff line change
@@ -183,6 +183,14 @@ namespace xtd::collections::generic::helpers::tests {
183183
assert::are_equal(84, items.front());
184184
}
185185

186+
void test_method_(push_move_value) {
187+
auto q = raw_queue<string>{};
188+
auto s = "hello"_s;
189+
q.push(std::move(s));
190+
assert::are_equal("hello", q.back());
191+
assert::is_true(s.empty() || s == "hello");
192+
}
193+
186194
void test_method_(reserve) {
187195
auto items = raw_queue<int>(std::deque<int> {84, 42, 21});
188196
assert::are_equal(3_z, items.capacity());
@@ -211,212 +219,52 @@ namespace xtd::collections::generic::helpers::tests {
211219
assert::are_equal(3_z, items.capacity());
212220
assert::are_equal(3_z, items.size());
213221
}
214-
215-
/*
216-
217-
void test_method_(pop_back) {
218-
auto items = raw_queue {84, 42, 21};
219-
items.pop_back();
220-
collection_assert::are_equal({84, 42}, items);
221-
}
222-
223-
void test_method_(pop_back_with_bool) {
224-
auto items = raw_queue {true, false, true};
225-
items.pop_back();
226-
collection_assert::are_equal({true, false}, items);
227-
}
228-
229-
void test_method_(push_back) {
230-
auto items = raw_queue {84, 42, 21};
231-
items.push_back(63);
232-
collection_assert::are_equal({84, 42, 21, 63}, items);
233-
}
234-
235-
void test_method_(push_back_with_bool) {
236-
auto items = raw_queue {true, false, true};
237-
items.push_back(false);
238-
collection_assert::are_equal({true, false, true, false}, items);
239-
}
240-
241-
void test_method_(push_back_with_move) {
242-
auto items = raw_queue {84, 42, 21};
243-
auto v = 63;
244-
items.push_back(std::move(v));
245-
collection_assert::are_equal({84, 42, 21, 63}, items);
246-
}
247-
248-
void test_method_(push_back_with_move_and_bool) {
249-
auto items = raw_queue {true, false, true};
250-
auto v = false;
251-
items.push_back(std::move(v));
252-
collection_assert::are_equal({true, false, true, false}, items);
253-
}
254-
255-
void test_method_(reserve) {
256-
auto items = raw_queue {84, 42, 21};
257-
items.reserve(42);
258-
assert::is_greater_or_equal(items.capacity(), 42_z);
259-
}
260-
261-
void test_method_(reserve_with_bool) {
262-
auto items = raw_queue {true, false, true};
263-
items.reserve(42);
264-
assert::is_greater_or_equal(items.capacity(), 42_z);
265-
}
266-
267-
void test_method_(resize) {
268-
auto items = raw_queue {84, 42, 21};
269-
items.resize(4);
270-
collection_assert::are_equal({84, 42, 21, 0}, items);
271-
items.resize(2);
272-
collection_assert::are_equal({84, 42}, items);
273-
}
274-
275-
void test_method_(resize_with_bool) {
276-
auto items = raw_queue {true, false, true};
277-
items.resize(4);
278-
collection_assert::are_equal({true, false, true, false}, items);
279-
items.resize(2);
280-
collection_assert::are_equal({true, false}, items);
281-
}
282-
283-
void test_method_(shrink_to_fit) {
284-
auto items = raw_queue {84, 42, 21};
285-
items.reserve(42);
286-
items.shrink_to_fit();
287-
assert::is_less(items.capacity(), 42_z);
288-
}
289222

290-
void test_method_(shrink_to_fit_with_bool) {
291-
auto items = raw_queue {true, false, true};
292-
items.reserve(42);
293-
items.shrink_to_fit();
294-
assert::is_less(items.capacity(), 42_z);
295-
}
296-
297-
void test_method_(swap) {
298-
auto items1 = raw_queue {84, 42, 21};
299-
auto items2 = raw_queue {63, 75, 96};
300-
items1.swap(items2);
301-
collection_assert::are_equal({63, 75, 96}, items1);
302-
collection_assert::are_equal({84, 42, 21}, items2);
223+
void test_method_(equality_operator) {
224+
auto q1 = raw_queue<int>(std::deque<int> {84, 42, 21});
225+
auto q2 = raw_queue<int> {};
226+
q2 = q1;
227+
assert::are_equal(3_z, q1.size());
228+
collection_assert::are_equal({84, 42, 21}, q1);
229+
assert::are_equal(3_z, q2.size());
230+
collection_assert::are_equal({84, 42, 21}, q2);
303231
}
304232

305-
void test_method_(swap_with_bool) {
306-
auto items1 = raw_queue {true, false, true};
307-
auto items2 = raw_queue {false, true, false};
308-
items1.swap(items2);
309-
collection_assert::are_equal({false, true, false}, items1);
310-
collection_assert::are_equal({true, false, true}, items2);
233+
void test_method_(move_equality_operator) {
234+
auto q1 = raw_queue<int>(std::deque<int> {84, 42, 21});
235+
auto q2 = raw_queue<int> {};
236+
q2 = std::move(q1);
237+
assert::is_zero(q1.size());
238+
assert::are_equal(3_z, q2.size());
239+
collection_assert::are_equal({84, 42, 21}, q2);
311240
}
312-
313-
void test_method_(operator_equal) {
314-
auto items1 = raw_queue {84, 42, 21};
315-
auto items2 = raw_queue {63, 75, 96};
316-
items1 = items2;
317-
collection_assert::are_equal({63, 75, 96}, items1);
318-
}
319-
320-
void test_method_(operator_equal_with_bool) {
321-
auto items1 = raw_queue {true, false, true};
322-
auto items2 = raw_queue {false, true, false};
323-
items1 = items2;
324-
collection_assert::are_equal({false, true, false}, items1);
325-
}
326-
327-
void test_method_(operator_equal_wtih_move) {
328-
auto items1 = raw_queue {84, 42, 21};
329-
auto items2 = raw_queue {63, 75, 96};
330-
items1 = std::move(items2);
331-
collection_assert::are_equal({63, 75, 96}, items1);
332-
}
333-
334-
void test_method_(operator_equal_with_move_and_bool) {
335-
auto items1 = raw_queue {true, false, true};
336-
auto items2 = raw_queue {false, true, false};
337-
items1 = std::move(items2);
338-
collection_assert::are_equal({false, true, false}, items1);
339-
}
340-
341-
void test_method_(operator_equal_with_initializer_list) {
342-
auto items1 = raw_queue {84, 42, 21};
343-
auto items2 = {63, 75, 96};
344-
items1 = items2;
345-
collection_assert::are_equal({63, 75, 96}, items1);
346-
}
347-
348-
void test_method_(operator_equal_with_initializer_list_and_bool) {
349-
auto items1 = raw_queue {true, false, true};
350-
auto items2 = {false, true, false};
351-
items1 = items2;
352-
collection_assert::are_equal({false, true, false}, items1);
353-
}
354-
355-
void test_method_(operator_index) {
356-
auto items = raw_queue {84, 42, 21};
357-
358-
assert::are_equal(84, items[0]);
359-
assert::are_equal(42, items[1]);
360-
assert::are_equal(21, items[2]);
361-
//assert::throws<std::out_of_range>([&] {[[maybe_unused]] auto i = items[3];});
362-
363-
items[0] = 63;
364-
items[1] = 31;
365-
items[2] = 10;
366-
//assert::throws<std::out_of_range>([&] {items[3] = 5;});
367-
368-
collection_assert::are_equal({63, 31, 10}, items);
241+
242+
void test_method_(base_type_cast_operator) {
243+
auto items = raw_queue<int>(std::deque<int> {84, 42, 21});
244+
assert::are_equal(typeof_<raw_queue<int>::base_type>(), typeof_(static_cast<raw_queue<int>::base_type&>(items)));
245+
246+
auto& inners = static_cast<raw_queue<int>::base_type&>(items);
247+
assert::are_equal(84, inners.front());
248+
assert::are_equal(21, inners.back());
369249
}
370250

371-
void test_method_(operator_index_with_epos) {
372-
auto items = raw_queue {1, 2, 3, 4, 5};
373-
374-
assert::are_equal(5, items[items.size() - 1]);
375-
assert::are_equal(5, items[items.epos]);
376-
assert::are_equal(5, items[xtd::epos]);
377-
378-
items[items.epos] = 6;
379-
assert::are_equal(6, items[items.size() - 1]);
380-
assert::are_equal(6, items[items.epos]);
381-
assert::are_equal(6, items[xtd::epos]);
382-
383-
items[xtd::epos] = 7;
384-
assert::are_equal(7, items[items.size() - 1]);
385-
assert::are_equal(7, items[items.epos]);
386-
assert::are_equal(7, items[xtd::epos]);
251+
void test_method_(base_type_cast_operator_const) {
252+
const auto items = raw_queue<int>(std::deque<int> {84, 42, 21});
253+
assert::are_equal(typeof_<raw_queue<int>::base_type>(), typeof_(static_cast<const raw_queue<int>::base_type&>(items)));
254+
255+
const auto& inners = static_cast<const raw_queue<int>::base_type&>(items);
256+
assert::are_equal(84, inners.front());
257+
assert::are_equal(21, inners.back());
387258
}
388-
389-
void test_method_(operator_index_with_bool) {
390-
auto items = raw_queue {true, false, true};
391-
392-
assert::are_equal(true, items[0]);
393-
assert::are_equal(false, items[1]);
394-
assert::are_equal(true, items[2]);
395-
//assert::throws<std::out_of_range>([&] {[[maybe_unused]] auto i = items[3];});
396-
397-
items[0] = false;
398-
items[1] = true;
399-
items[2] = false;
400-
//assert::throws<std::out_of_range>([&] {items[3] = true;});
401-
402-
collection_assert::are_equal({false, true, false}, items);
259+
260+
void test_method_(begin_end_on_empty_queue) {
261+
auto q = raw_queue<int>{};
262+
assert::are_equal(q.begin(), q.end());
403263
}
404-
405-
void test_method_(operator_base_type) {
406-
auto items = raw_queue {84, 42, 21};
407-
auto bt = raw_queue<int>::base_type {};
408-
bt = items;
409-
assert::are_equal(typeof_<raw_queue<int>::base_type>(), typeof_(bt));
410-
collection_assert::are_equal({84, 42, 21}, bt);
264+
265+
void test_method_(cbegin_cend_on_empty_queue) {
266+
auto q = raw_queue<int>{};
267+
assert::are_equal(q.cbegin(), q.cend());
411268
}
412-
413-
void test_method_(operator_base_type_with_bool) {
414-
auto items = raw_queue {true, false, true};
415-
auto bt = raw_queue<bool>::base_type {};
416-
bt = items;
417-
assert::are_equal(typeof_<raw_queue<bool>::base_type>(), typeof_(bt));
418-
collection_assert::are_equal({1u, 0u, 1u}, bt);
419-
}
420-
*/
421269
};
422270
}

0 commit comments

Comments
 (0)