23 int stuff[] = {1, 2, 3};
24 pdfium::span<
int> null_span;
25 pdfium::span<
int> stuff_span(stuff);
26 EXPECT_TRUE(null_span.empty());
27 EXPECT_FALSE(stuff_span.empty());
29 pdfium::span<
int> empty_first_span = stuff_span.first(0u);
30 pdfium::span<
int> empty_last_span = stuff_span.last(0u);
31 pdfium::span<
int> empty_sub_span1 = stuff_span.subspan(0u, 0u);
32 pdfium::span<
int> empty_sub_span2 = stuff_span.subspan(3u, 0u);
33 pdfium::span<
int> empty_sub_span3 = stuff_span.subspan(3u);
34 EXPECT_TRUE(empty_first_span.empty());
35 EXPECT_TRUE(empty_last_span.empty());
36 EXPECT_TRUE(empty_sub_span1.empty());
37 EXPECT_TRUE(empty_sub_span2.empty());
38 EXPECT_TRUE(empty_sub_span3.empty());
41 pdfium::span<
int> empty_first_span = stuff_span.first<0>();
42 pdfium::span<
int> empty_last_span = stuff_span.last<0>();
43 pdfium::span<
int> empty_sub_span1 = stuff_span.subspan<0, 0>();
44 pdfium::span<
int> empty_sub_span2 = stuff_span.subspan<3, 0>();
45 pdfium::span<
int> empty_sub_span3 = stuff_span.subspan<3>();
46 EXPECT_TRUE(empty_first_span.empty());
47 EXPECT_TRUE(empty_last_span.empty());
48 EXPECT_TRUE(empty_sub_span1.empty());
49 EXPECT_TRUE(empty_sub_span2.empty());
50 EXPECT_TRUE(empty_sub_span3.empty());
55 int stuff[] = {1, 2, 3};
56 pdfium::span<
int> stuff_span(stuff);
57 EXPECT_FALSE(stuff_span.empty());
59 pdfium::span<
int> first_span = stuff_span.first(2u);
60 pdfium::span<
int> last_span = stuff_span.last(2u);
61 pdfium::span<
int> sub_span1 = stuff_span.subspan(1u, 1u);
62 pdfium::span<
int> sub_span2 = stuff_span.subspan(2u, 1u);
63 pdfium::span<
int> sub_span3 = stuff_span.subspan(1u);
64 EXPECT_THAT(first_span, ElementsAre(1, 2));
65 EXPECT_THAT(last_span, ElementsAre(2, 3));
66 EXPECT_THAT(sub_span1, ElementsAre(2));
67 EXPECT_THAT(sub_span2, ElementsAre(3));
68 EXPECT_THAT(sub_span3, ElementsAre(2, 3));
71 pdfium::span<
int> first_span = stuff_span.first<2>();
72 pdfium::span<
int> last_span = stuff_span.last<2>();
73 pdfium::span<
int> sub_span1 = stuff_span.subspan<1, 1>();
74 pdfium::span<
int> sub_span2 = stuff_span.subspan<2, 1>();
75 pdfium::span<
int> sub_span3 = stuff_span.subspan<1>();
76 EXPECT_THAT(first_span, ElementsAre(1, 2));
77 EXPECT_THAT(last_span, ElementsAre(2, 3));
78 EXPECT_THAT(sub_span1, ElementsAre(2));
79 EXPECT_THAT(sub_span2, ElementsAre(3));
80 EXPECT_THAT(sub_span3, ElementsAre(2, 3));
97 int32_t c_style[] = {1, 2};
98 const int32_t const_c_style[] = {3, 4};
99 std::array<int32_t, 2> cxx_style = {1, 2};
100 std::array<
const int32_t, 2> const_cxx_style = {3, 4};
103 EXPECT_THAT(
pdfium::as_byte_span(c_style),
104 AnyOf(ElementsAre(0, 0, 0, 1, 0, 0, 0, 2),
105 ElementsAre(1, 0, 0, 0, 2, 0, 0, 0)));
106 EXPECT_THAT(
pdfium::as_writable_byte_span(c_style),
107 AnyOf(ElementsAre(0, 0, 0, 1, 0, 0, 0, 2),
108 ElementsAre(1, 0, 0, 0, 2, 0, 0, 0)));
109 EXPECT_THAT(
pdfium::as_byte_span(cxx_style),
110 AnyOf(ElementsAre(0, 0, 0, 1, 0, 0, 0, 2),
111 ElementsAre(1, 0, 0, 0, 2, 0, 0, 0)));
112 EXPECT_THAT(
pdfium::as_writable_byte_span(cxx_style),
113 AnyOf(ElementsAre(0, 0, 0, 1, 0, 0, 0, 2),
114 ElementsAre(1, 0, 0, 0, 2, 0, 0, 0)));
115 EXPECT_THAT(
pdfium::as_byte_span(const_c_style),
116 AnyOf(ElementsAre(0, 0, 0, 3, 0, 0, 0, 4),
117 ElementsAre(3, 0, 0, 0, 4, 0, 0, 0)));
118 EXPECT_THAT(
pdfium::as_byte_span(const_cxx_style),
119 AnyOf(ElementsAre(0, 0, 0, 3, 0, 0, 0, 4),
120 ElementsAre(3, 0, 0, 0, 4, 0, 0, 0)));
124 int arr1[] = {1, 3, 5};
125 int arr2[] = {1, 3, 5};
126 std::vector vec1(
std::begin(arr1),
std::end(arr1));
127 std::vector vec2(
std::begin(arr2),
std::end(arr2));
128 pdfium::span<
int, 3> static_span1(arr1);
129 pdfium::span<
int, 3> static_span2(arr2);
130 pdfium::span<
int> dynamic_span1(vec1);
131 pdfium::span<
int> dynamic_span2(vec2);
133 EXPECT_THAT(arr1, ElementsAreArray(static_span2));
134 EXPECT_THAT(arr1, ElementsAreArray(dynamic_span2));
136 EXPECT_THAT(vec1, ElementsAreArray(static_span2));
137 EXPECT_THAT(vec1, ElementsAreArray(dynamic_span2));
139 EXPECT_THAT(static_span1, ElementsAre(1, 3, 5));
140 EXPECT_THAT(static_span1, ElementsAreArray(arr2));
141 EXPECT_THAT(static_span1, ElementsAreArray(static_span2));
142 EXPECT_THAT(static_span1, ElementsAreArray(dynamic_span2));
143 EXPECT_THAT(static_span1, ElementsAreArray(vec2));
145 EXPECT_THAT(dynamic_span1, ElementsAre(1, 3, 5));
146 EXPECT_THAT(dynamic_span1, ElementsAreArray(arr2));
147 EXPECT_THAT(dynamic_span1, ElementsAreArray(static_span2));
148 EXPECT_THAT(dynamic_span1, ElementsAreArray(dynamic_span2));
149 EXPECT_THAT(dynamic_span1, ElementsAreArray(vec2));