]> git.saurik.com Git - apple/xnu.git/blob - tests/bounded_array_ref_src/size.cpp
xnu-7195.101.1.tar.gz
[apple/xnu.git] / tests / bounded_array_ref_src / size.cpp
1 //
2 // Tests for
3 // size_t size() const;
4 //
5
6 #include <libkern/c++/bounded_array_ref.h>
7 #include "test_policy.h"
8 #include <cstddef>
9 #include <darwintest.h>
10 #include <darwintest_utils.h>
11
12 struct T { int i; };
13
14 template <typename T>
15 static void
16 tests()
17 {
18 T array[5] = {T{0}, T{1}, T{2}, T{3}, T{4}};
19
20 {
21 test_bounded_array_ref<T> const view(&array[0], static_cast<std::size_t>(0));
22 std::size_t size = view.size();
23 CHECK(size == 0);
24 }
25 {
26 test_bounded_array_ref<T> const view(&array[0], 1);
27 std::size_t size = view.size();
28 CHECK(size == 1);
29 }
30 {
31 test_bounded_array_ref<T> const view(&array[0], 2);
32 std::size_t size = view.size();
33 CHECK(size == 2);
34 }
35 {
36 test_bounded_array_ref<T> const view(&array[0], 5);
37 std::size_t size = view.size();
38 CHECK(size == 5);
39 }
40 }
41
42 T_DECL(size, "bounded_array_ref.size") {
43 tests<T>();
44 tests<T const>();
45 }