1 | //===----------------------------------------------------------------------===// |
2 | // |
3 | // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. |
4 | // See https://llvm.org/LICENSE.txt for license information. |
5 | // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception |
6 | // |
7 | //===----------------------------------------------------------------------===// |
8 | |
9 | // <algorithm> |
10 | |
11 | // template<RandomAccessIterator Iter> |
12 | // requires LessThanComparable<Iter::value_type> |
13 | // constexpr bool // constexpr after C++17 |
14 | // is_heap(Iter first, Iter last); |
15 | |
16 | #include <algorithm> |
17 | #include <cassert> |
18 | |
19 | #include "test_macros.h" |
20 | #include "test_iterators.h" |
21 | |
22 | #if TEST_STD_VER > 17 |
23 | TEST_CONSTEXPR bool test_constexpr() { |
24 | int ia[] = {1, 1, 1, 1, 0, 1, 1}; |
25 | int ib[] = {0, 0, 1, 0, 0, 0, 0}; |
26 | return std::is_heap(std::begin(ia), std::end(ia)) |
27 | && !std::is_heap(std::begin(ib), std::end(ib)); |
28 | } |
29 | #endif |
30 | |
31 | void test() |
32 | { |
33 | typedef random_access_iterator<int *> RI; |
34 | int i1[] = {0, 0}; |
35 | assert(std::is_heap(i1, i1)); |
36 | assert(std::is_heap(i1, i1+1) == (std::is_heap_until(i1, i1+1) == i1+1)); |
37 | assert(std::is_heap(RI(i1), RI(i1))); |
38 | assert(std::is_heap(RI(i1), RI(i1+1)) == (std::is_heap_until(RI(i1), RI(i1+1)) == RI(i1+1))); |
39 | |
40 | int i2[] = {0, 1}; |
41 | int i3[] = {1, 0}; |
42 | assert(std::is_heap(i1, i1+2) == (std::is_heap_until(i1, i1+2) == i1+2)); |
43 | assert(std::is_heap(i2, i2+2) == (std::is_heap_until(i2, i2+2) == i2+2)); |
44 | assert(std::is_heap(i3, i3+2) == (std::is_heap_until(i3, i3+2) == i3+2)); |
45 | int i4[] = {0, 0, 0}; |
46 | int i5[] = {0, 0, 1}; |
47 | int i6[] = {0, 1, 0}; |
48 | int i7[] = {0, 1, 1}; |
49 | int i8[] = {1, 0, 0}; |
50 | int i9[] = {1, 0, 1}; |
51 | int i10[] = {1, 1, 0}; |
52 | assert(std::is_heap(i4, i4+3) == (std::is_heap_until(i4, i4+3) == i4+3)); |
53 | assert(std::is_heap(i5, i5+3) == (std::is_heap_until(i5, i5+3) == i5+3)); |
54 | assert(std::is_heap(i6, i6+3) == (std::is_heap_until(i6, i6+3) == i6+3)); |
55 | assert(std::is_heap(i7, i7+3) == (std::is_heap_until(i7, i7+3) == i7+3)); |
56 | assert(std::is_heap(i8, i8+3) == (std::is_heap_until(i8, i8+3) == i8+3)); |
57 | assert(std::is_heap(i9, i9+3) == (std::is_heap_until(i9, i9+3) == i9+3)); |
58 | assert(std::is_heap(i10, i10+3) == (std::is_heap_until(i10, i10+3) == i10+3)); |
59 | int i11[] = {0, 0, 0, 0}; |
60 | int i12[] = {0, 0, 0, 1}; |
61 | int i13[] = {0, 0, 1, 0}; |
62 | int i14[] = {0, 0, 1, 1}; |
63 | int i15[] = {0, 1, 0, 0}; |
64 | int i16[] = {0, 1, 0, 1}; |
65 | int i17[] = {0, 1, 1, 0}; |
66 | int i18[] = {0, 1, 1, 1}; |
67 | int i19[] = {1, 0, 0, 0}; |
68 | int i20[] = {1, 0, 0, 1}; |
69 | int i21[] = {1, 0, 1, 0}; |
70 | int i22[] = {1, 0, 1, 1}; |
71 | int i23[] = {1, 1, 0, 0}; |
72 | int i24[] = {1, 1, 0, 1}; |
73 | int i25[] = {1, 1, 1, 0}; |
74 | assert(std::is_heap(i11, i11+4) == (std::is_heap_until(i11, i11+4) == i11+4)); |
75 | assert(std::is_heap(i12, i12+4) == (std::is_heap_until(i12, i12+4) == i12+4)); |
76 | assert(std::is_heap(i13, i13+4) == (std::is_heap_until(i13, i13+4) == i13+4)); |
77 | assert(std::is_heap(i14, i14+4) == (std::is_heap_until(i14, i14+4) == i14+4)); |
78 | assert(std::is_heap(i15, i15+4) == (std::is_heap_until(i15, i15+4) == i15+4)); |
79 | assert(std::is_heap(i16, i16+4) == (std::is_heap_until(i16, i16+4) == i16+4)); |
80 | assert(std::is_heap(i17, i17+4) == (std::is_heap_until(i17, i17+4) == i17+4)); |
81 | assert(std::is_heap(i18, i18+4) == (std::is_heap_until(i18, i18+4) == i18+4)); |
82 | assert(std::is_heap(i19, i19+4) == (std::is_heap_until(i19, i19+4) == i19+4)); |
83 | assert(std::is_heap(i20, i20+4) == (std::is_heap_until(i20, i20+4) == i20+4)); |
84 | assert(std::is_heap(i21, i21+4) == (std::is_heap_until(i21, i21+4) == i21+4)); |
85 | assert(std::is_heap(i22, i22+4) == (std::is_heap_until(i22, i22+4) == i22+4)); |
86 | assert(std::is_heap(i23, i23+4) == (std::is_heap_until(i23, i23+4) == i23+4)); |
87 | assert(std::is_heap(i24, i24+4) == (std::is_heap_until(i24, i24+4) == i24+4)); |
88 | assert(std::is_heap(i25, i25+4) == (std::is_heap_until(i25, i25+4) == i25+4)); |
89 | int i26[] = {0, 0, 0, 0, 0}; |
90 | int i27[] = {0, 0, 0, 0, 1}; |
91 | int i28[] = {0, 0, 0, 1, 0}; |
92 | int i29[] = {0, 0, 0, 1, 1}; |
93 | int i30[] = {0, 0, 1, 0, 0}; |
94 | int i31[] = {0, 0, 1, 0, 1}; |
95 | int i32[] = {0, 0, 1, 1, 0}; |
96 | int i33[] = {0, 0, 1, 1, 1}; |
97 | int i34[] = {0, 1, 0, 0, 0}; |
98 | int i35[] = {0, 1, 0, 0, 1}; |
99 | int i36[] = {0, 1, 0, 1, 0}; |
100 | int i37[] = {0, 1, 0, 1, 1}; |
101 | int i38[] = {0, 1, 1, 0, 0}; |
102 | int i39[] = {0, 1, 1, 0, 1}; |
103 | int i40[] = {0, 1, 1, 1, 0}; |
104 | int i41[] = {0, 1, 1, 1, 1}; |
105 | int i42[] = {1, 0, 0, 0, 0}; |
106 | int i43[] = {1, 0, 0, 0, 1}; |
107 | int i44[] = {1, 0, 0, 1, 0}; |
108 | int i45[] = {1, 0, 0, 1, 1}; |
109 | int i46[] = {1, 0, 1, 0, 0}; |
110 | int i47[] = {1, 0, 1, 0, 1}; |
111 | int i48[] = {1, 0, 1, 1, 0}; |
112 | int i49[] = {1, 0, 1, 1, 1}; |
113 | int i50[] = {1, 1, 0, 0, 0}; |
114 | int i51[] = {1, 1, 0, 0, 1}; |
115 | int i52[] = {1, 1, 0, 1, 0}; |
116 | int i53[] = {1, 1, 0, 1, 1}; |
117 | int i54[] = {1, 1, 1, 0, 0}; |
118 | int i55[] = {1, 1, 1, 0, 1}; |
119 | int i56[] = {1, 1, 1, 1, 0}; |
120 | assert(std::is_heap(i26, i26+5) == (std::is_heap_until(i26, i26+5) == i26+5)); |
121 | assert(std::is_heap(i27, i27+5) == (std::is_heap_until(i27, i27+5) == i27+5)); |
122 | assert(std::is_heap(i28, i28+5) == (std::is_heap_until(i28, i28+5) == i28+5)); |
123 | assert(std::is_heap(i29, i29+5) == (std::is_heap_until(i29, i29+5) == i29+5)); |
124 | assert(std::is_heap(i30, i30+5) == (std::is_heap_until(i30, i30+5) == i30+5)); |
125 | assert(std::is_heap(i31, i31+5) == (std::is_heap_until(i31, i31+5) == i31+5)); |
126 | assert(std::is_heap(i32, i32+5) == (std::is_heap_until(i32, i32+5) == i32+5)); |
127 | assert(std::is_heap(i33, i33+5) == (std::is_heap_until(i33, i33+5) == i33+5)); |
128 | assert(std::is_heap(i34, i34+5) == (std::is_heap_until(i34, i34+5) == i34+5)); |
129 | assert(std::is_heap(i35, i35+5) == (std::is_heap_until(i35, i35+5) == i35+5)); |
130 | assert(std::is_heap(i36, i36+5) == (std::is_heap_until(i36, i36+5) == i36+5)); |
131 | assert(std::is_heap(i37, i37+5) == (std::is_heap_until(i37, i37+5) == i37+5)); |
132 | assert(std::is_heap(i38, i38+5) == (std::is_heap_until(i38, i38+5) == i38+5)); |
133 | assert(std::is_heap(i39, i39+5) == (std::is_heap_until(i39, i39+5) == i39+5)); |
134 | assert(std::is_heap(i40, i40+5) == (std::is_heap_until(i40, i40+5) == i40+5)); |
135 | assert(std::is_heap(i41, i41+5) == (std::is_heap_until(i41, i41+5) == i41+5)); |
136 | assert(std::is_heap(i42, i42+5) == (std::is_heap_until(i42, i42+5) == i42+5)); |
137 | assert(std::is_heap(i43, i43+5) == (std::is_heap_until(i43, i43+5) == i43+5)); |
138 | assert(std::is_heap(i44, i44+5) == (std::is_heap_until(i44, i44+5) == i44+5)); |
139 | assert(std::is_heap(i45, i45+5) == (std::is_heap_until(i45, i45+5) == i45+5)); |
140 | assert(std::is_heap(i46, i46+5) == (std::is_heap_until(i46, i46+5) == i46+5)); |
141 | assert(std::is_heap(i47, i47+5) == (std::is_heap_until(i47, i47+5) == i47+5)); |
142 | assert(std::is_heap(i48, i48+5) == (std::is_heap_until(i48, i48+5) == i48+5)); |
143 | assert(std::is_heap(i49, i49+5) == (std::is_heap_until(i49, i49+5) == i49+5)); |
144 | assert(std::is_heap(i50, i50+5) == (std::is_heap_until(i50, i50+5) == i50+5)); |
145 | assert(std::is_heap(i51, i51+5) == (std::is_heap_until(i51, i51+5) == i51+5)); |
146 | assert(std::is_heap(i52, i52+5) == (std::is_heap_until(i52, i52+5) == i52+5)); |
147 | assert(std::is_heap(i53, i53+5) == (std::is_heap_until(i53, i53+5) == i53+5)); |
148 | assert(std::is_heap(i54, i54+5) == (std::is_heap_until(i54, i54+5) == i54+5)); |
149 | assert(std::is_heap(i55, i55+5) == (std::is_heap_until(i55, i55+5) == i55+5)); |
150 | assert(std::is_heap(i56, i56+5) == (std::is_heap_until(i56, i56+5) == i56+5)); |
151 | int i57[] = {0, 0, 0, 0, 0, 0}; |
152 | int i58[] = {0, 0, 0, 0, 0, 1}; |
153 | int i59[] = {0, 0, 0, 0, 1, 0}; |
154 | int i60[] = {0, 0, 0, 0, 1, 1}; |
155 | int i61[] = {0, 0, 0, 1, 0, 0}; |
156 | int i62[] = {0, 0, 0, 1, 0, 1}; |
157 | int i63[] = {0, 0, 0, 1, 1, 0}; |
158 | int i64[] = {0, 0, 0, 1, 1, 1}; |
159 | int i65[] = {0, 0, 1, 0, 0, 0}; |
160 | int i66[] = {0, 0, 1, 0, 0, 1}; |
161 | int i67[] = {0, 0, 1, 0, 1, 0}; |
162 | int i68[] = {0, 0, 1, 0, 1, 1}; |
163 | int i69[] = {0, 0, 1, 1, 0, 0}; |
164 | int i70[] = {0, 0, 1, 1, 0, 1}; |
165 | int i71[] = {0, 0, 1, 1, 1, 0}; |
166 | int i72[] = {0, 0, 1, 1, 1, 1}; |
167 | int i73[] = {0, 1, 0, 0, 0, 0}; |
168 | int i74[] = {0, 1, 0, 0, 0, 1}; |
169 | int i75[] = {0, 1, 0, 0, 1, 0}; |
170 | int i76[] = {0, 1, 0, 0, 1, 1}; |
171 | int i77[] = {0, 1, 0, 1, 0, 0}; |
172 | int i78[] = {0, 1, 0, 1, 0, 1}; |
173 | int i79[] = {0, 1, 0, 1, 1, 0}; |
174 | int i80[] = {0, 1, 0, 1, 1, 1}; |
175 | int i81[] = {0, 1, 1, 0, 0, 0}; |
176 | int i82[] = {0, 1, 1, 0, 0, 1}; |
177 | int i83[] = {0, 1, 1, 0, 1, 0}; |
178 | int i84[] = {0, 1, 1, 0, 1, 1}; |
179 | int i85[] = {0, 1, 1, 1, 0, 0}; |
180 | int i86[] = {0, 1, 1, 1, 0, 1}; |
181 | int i87[] = {0, 1, 1, 1, 1, 0}; |
182 | int i88[] = {0, 1, 1, 1, 1, 1}; |
183 | int i89[] = {1, 0, 0, 0, 0, 0}; |
184 | int i90[] = {1, 0, 0, 0, 0, 1}; |
185 | int i91[] = {1, 0, 0, 0, 1, 0}; |
186 | int i92[] = {1, 0, 0, 0, 1, 1}; |
187 | int i93[] = {1, 0, 0, 1, 0, 0}; |
188 | int i94[] = {1, 0, 0, 1, 0, 1}; |
189 | int i95[] = {1, 0, 0, 1, 1, 0}; |
190 | int i96[] = {1, 0, 0, 1, 1, 1}; |
191 | int i97[] = {1, 0, 1, 0, 0, 0}; |
192 | int i98[] = {1, 0, 1, 0, 0, 1}; |
193 | int i99[] = {1, 0, 1, 0, 1, 0}; |
194 | int i100[] = {1, 0, 1, 0, 1, 1}; |
195 | int i101[] = {1, 0, 1, 1, 0, 0}; |
196 | int i102[] = {1, 0, 1, 1, 0, 1}; |
197 | int i103[] = {1, 0, 1, 1, 1, 0}; |
198 | int i104[] = {1, 0, 1, 1, 1, 1}; |
199 | int i105[] = {1, 1, 0, 0, 0, 0}; |
200 | int i106[] = {1, 1, 0, 0, 0, 1}; |
201 | int i107[] = {1, 1, 0, 0, 1, 0}; |
202 | int i108[] = {1, 1, 0, 0, 1, 1}; |
203 | int i109[] = {1, 1, 0, 1, 0, 0}; |
204 | int i110[] = {1, 1, 0, 1, 0, 1}; |
205 | int i111[] = {1, 1, 0, 1, 1, 0}; |
206 | int i112[] = {1, 1, 0, 1, 1, 1}; |
207 | int i113[] = {1, 1, 1, 0, 0, 0}; |
208 | int i114[] = {1, 1, 1, 0, 0, 1}; |
209 | int i115[] = {1, 1, 1, 0, 1, 0}; |
210 | int i116[] = {1, 1, 1, 0, 1, 1}; |
211 | int i117[] = {1, 1, 1, 1, 0, 0}; |
212 | int i118[] = {1, 1, 1, 1, 0, 1}; |
213 | int i119[] = {1, 1, 1, 1, 1, 0}; |
214 | assert(std::is_heap(i57, i57+6) == (std::is_heap_until(i57, i57+6) == i57+6)); |
215 | assert(std::is_heap(i58, i58+6) == (std::is_heap_until(i58, i58+6) == i58+6)); |
216 | assert(std::is_heap(i59, i59+6) == (std::is_heap_until(i59, i59+6) == i59+6)); |
217 | assert(std::is_heap(i60, i60+6) == (std::is_heap_until(i60, i60+6) == i60+6)); |
218 | assert(std::is_heap(i61, i61+6) == (std::is_heap_until(i61, i61+6) == i61+6)); |
219 | assert(std::is_heap(i62, i62+6) == (std::is_heap_until(i62, i62+6) == i62+6)); |
220 | assert(std::is_heap(i63, i63+6) == (std::is_heap_until(i63, i63+6) == i63+6)); |
221 | assert(std::is_heap(i64, i64+6) == (std::is_heap_until(i64, i64+6) == i64+6)); |
222 | assert(std::is_heap(i65, i65+6) == (std::is_heap_until(i65, i65+6) == i65+6)); |
223 | assert(std::is_heap(i66, i66+6) == (std::is_heap_until(i66, i66+6) == i66+6)); |
224 | assert(std::is_heap(i67, i67+6) == (std::is_heap_until(i67, i67+6) == i67+6)); |
225 | assert(std::is_heap(i68, i68+6) == (std::is_heap_until(i68, i68+6) == i68+6)); |
226 | assert(std::is_heap(i69, i69+6) == (std::is_heap_until(i69, i69+6) == i69+6)); |
227 | assert(std::is_heap(i70, i70+6) == (std::is_heap_until(i70, i70+6) == i70+6)); |
228 | assert(std::is_heap(i71, i71+6) == (std::is_heap_until(i71, i71+6) == i71+6)); |
229 | assert(std::is_heap(i72, i72+6) == (std::is_heap_until(i72, i72+6) == i72+6)); |
230 | assert(std::is_heap(i73, i73+6) == (std::is_heap_until(i73, i73+6) == i73+6)); |
231 | assert(std::is_heap(i74, i74+6) == (std::is_heap_until(i74, i74+6) == i74+6)); |
232 | assert(std::is_heap(i75, i75+6) == (std::is_heap_until(i75, i75+6) == i75+6)); |
233 | assert(std::is_heap(i76, i76+6) == (std::is_heap_until(i76, i76+6) == i76+6)); |
234 | assert(std::is_heap(i77, i77+6) == (std::is_heap_until(i77, i77+6) == i77+6)); |
235 | assert(std::is_heap(i78, i78+6) == (std::is_heap_until(i78, i78+6) == i78+6)); |
236 | assert(std::is_heap(i79, i79+6) == (std::is_heap_until(i79, i79+6) == i79+6)); |
237 | assert(std::is_heap(i80, i80+6) == (std::is_heap_until(i80, i80+6) == i80+6)); |
238 | assert(std::is_heap(i81, i81+6) == (std::is_heap_until(i81, i81+6) == i81+6)); |
239 | assert(std::is_heap(i82, i82+6) == (std::is_heap_until(i82, i82+6) == i82+6)); |
240 | assert(std::is_heap(i83, i83+6) == (std::is_heap_until(i83, i83+6) == i83+6)); |
241 | assert(std::is_heap(i84, i84+6) == (std::is_heap_until(i84, i84+6) == i84+6)); |
242 | assert(std::is_heap(i85, i85+6) == (std::is_heap_until(i85, i85+6) == i85+6)); |
243 | assert(std::is_heap(i86, i86+6) == (std::is_heap_until(i86, i86+6) == i86+6)); |
244 | assert(std::is_heap(i87, i87+6) == (std::is_heap_until(i87, i87+6) == i87+6)); |
245 | assert(std::is_heap(i88, i88+6) == (std::is_heap_until(i88, i88+6) == i88+6)); |
246 | assert(std::is_heap(i89, i89+6) == (std::is_heap_until(i89, i89+6) == i89+6)); |
247 | assert(std::is_heap(i90, i90+6) == (std::is_heap_until(i90, i90+6) == i90+6)); |
248 | assert(std::is_heap(i91, i91+6) == (std::is_heap_until(i91, i91+6) == i91+6)); |
249 | assert(std::is_heap(i92, i92+6) == (std::is_heap_until(i92, i92+6) == i92+6)); |
250 | assert(std::is_heap(i93, i93+6) == (std::is_heap_until(i93, i93+6) == i93+6)); |
251 | assert(std::is_heap(i94, i94+6) == (std::is_heap_until(i94, i94+6) == i94+6)); |
252 | assert(std::is_heap(i95, i95+6) == (std::is_heap_until(i95, i95+6) == i95+6)); |
253 | assert(std::is_heap(i96, i96+6) == (std::is_heap_until(i96, i96+6) == i96+6)); |
254 | assert(std::is_heap(i97, i97+6) == (std::is_heap_until(i97, i97+6) == i97+6)); |
255 | assert(std::is_heap(i98, i98+6) == (std::is_heap_until(i98, i98+6) == i98+6)); |
256 | assert(std::is_heap(i99, i99+6) == (std::is_heap_until(i99, i99+6) == i99+6)); |
257 | assert(std::is_heap(i100, i100+6) == (std::is_heap_until(i100, i100+6) == i100+6)); |
258 | assert(std::is_heap(i101, i101+6) == (std::is_heap_until(i101, i101+6) == i101+6)); |
259 | assert(std::is_heap(i102, i102+6) == (std::is_heap_until(i102, i102+6) == i102+6)); |
260 | assert(std::is_heap(i103, i103+6) == (std::is_heap_until(i103, i103+6) == i103+6)); |
261 | assert(std::is_heap(i104, i104+6) == (std::is_heap_until(i104, i104+6) == i104+6)); |
262 | assert(std::is_heap(i105, i105+6) == (std::is_heap_until(i105, i105+6) == i105+6)); |
263 | assert(std::is_heap(i106, i106+6) == (std::is_heap_until(i106, i106+6) == i106+6)); |
264 | assert(std::is_heap(i107, i107+6) == (std::is_heap_until(i107, i107+6) == i107+6)); |
265 | assert(std::is_heap(i108, i108+6) == (std::is_heap_until(i108, i108+6) == i108+6)); |
266 | assert(std::is_heap(i109, i109+6) == (std::is_heap_until(i109, i109+6) == i109+6)); |
267 | assert(std::is_heap(i110, i110+6) == (std::is_heap_until(i110, i110+6) == i110+6)); |
268 | assert(std::is_heap(i111, i111+6) == (std::is_heap_until(i111, i111+6) == i111+6)); |
269 | assert(std::is_heap(i112, i112+6) == (std::is_heap_until(i112, i112+6) == i112+6)); |
270 | assert(std::is_heap(i113, i113+6) == (std::is_heap_until(i113, i113+6) == i113+6)); |
271 | assert(std::is_heap(i114, i114+6) == (std::is_heap_until(i114, i114+6) == i114+6)); |
272 | assert(std::is_heap(i115, i115+6) == (std::is_heap_until(i115, i115+6) == i115+6)); |
273 | assert(std::is_heap(i116, i116+6) == (std::is_heap_until(i116, i116+6) == i116+6)); |
274 | assert(std::is_heap(i117, i117+6) == (std::is_heap_until(i117, i117+6) == i117+6)); |
275 | assert(std::is_heap(i118, i118+6) == (std::is_heap_until(i118, i118+6) == i118+6)); |
276 | assert(std::is_heap(i119, i119+6) == (std::is_heap_until(i119, i119+6) == i119+6)); |
277 | int i120[] = {0, 0, 0, 0, 0, 0, 0}; |
278 | int i121[] = {0, 0, 0, 0, 0, 0, 1}; |
279 | int i122[] = {0, 0, 0, 0, 0, 1, 0}; |
280 | int i123[] = {0, 0, 0, 0, 0, 1, 1}; |
281 | int i124[] = {0, 0, 0, 0, 1, 0, 0}; |
282 | int i125[] = {0, 0, 0, 0, 1, 0, 1}; |
283 | int i126[] = {0, 0, 0, 0, 1, 1, 0}; |
284 | int i127[] = {0, 0, 0, 0, 1, 1, 1}; |
285 | int i128[] = {0, 0, 0, 1, 0, 0, 0}; |
286 | int i129[] = {0, 0, 0, 1, 0, 0, 1}; |
287 | int i130[] = {0, 0, 0, 1, 0, 1, 0}; |
288 | int i131[] = {0, 0, 0, 1, 0, 1, 1}; |
289 | int i132[] = {0, 0, 0, 1, 1, 0, 0}; |
290 | int i133[] = {0, 0, 0, 1, 1, 0, 1}; |
291 | int i134[] = {0, 0, 0, 1, 1, 1, 0}; |
292 | int i135[] = {0, 0, 0, 1, 1, 1, 1}; |
293 | int i136[] = {0, 0, 1, 0, 0, 0, 0}; |
294 | int i137[] = {0, 0, 1, 0, 0, 0, 1}; |
295 | int i138[] = {0, 0, 1, 0, 0, 1, 0}; |
296 | int i139[] = {0, 0, 1, 0, 0, 1, 1}; |
297 | int i140[] = {0, 0, 1, 0, 1, 0, 0}; |
298 | int i141[] = {0, 0, 1, 0, 1, 0, 1}; |
299 | int i142[] = {0, 0, 1, 0, 1, 1, 0}; |
300 | int i143[] = {0, 0, 1, 0, 1, 1, 1}; |
301 | int i144[] = {0, 0, 1, 1, 0, 0, 0}; |
302 | int i145[] = {0, 0, 1, 1, 0, 0, 1}; |
303 | int i146[] = {0, 0, 1, 1, 0, 1, 0}; |
304 | int i147[] = {0, 0, 1, 1, 0, 1, 1}; |
305 | int i148[] = {0, 0, 1, 1, 1, 0, 0}; |
306 | int i149[] = {0, 0, 1, 1, 1, 0, 1}; |
307 | int i150[] = {0, 0, 1, 1, 1, 1, 0}; |
308 | int i151[] = {0, 0, 1, 1, 1, 1, 1}; |
309 | int i152[] = {0, 1, 0, 0, 0, 0, 0}; |
310 | int i153[] = {0, 1, 0, 0, 0, 0, 1}; |
311 | int i154[] = {0, 1, 0, 0, 0, 1, 0}; |
312 | int i155[] = {0, 1, 0, 0, 0, 1, 1}; |
313 | int i156[] = {0, 1, 0, 0, 1, 0, 0}; |
314 | int i157[] = {0, 1, 0, 0, 1, 0, 1}; |
315 | int i158[] = {0, 1, 0, 0, 1, 1, 0}; |
316 | int i159[] = {0, 1, 0, 0, 1, 1, 1}; |
317 | int i160[] = {0, 1, 0, 1, 0, 0, 0}; |
318 | int i161[] = {0, 1, 0, 1, 0, 0, 1}; |
319 | int i162[] = {0, 1, 0, 1, 0, 1, 0}; |
320 | int i163[] = {0, 1, 0, 1, 0, 1, 1}; |
321 | int i164[] = {0, 1, 0, 1, 1, 0, 0}; |
322 | int i165[] = {0, 1, 0, 1, 1, 0, 1}; |
323 | int i166[] = {0, 1, 0, 1, 1, 1, 0}; |
324 | int i167[] = {0, 1, 0, 1, 1, 1, 1}; |
325 | int i168[] = {0, 1, 1, 0, 0, 0, 0}; |
326 | int i169[] = {0, 1, 1, 0, 0, 0, 1}; |
327 | int i170[] = {0, 1, 1, 0, 0, 1, 0}; |
328 | int i171[] = {0, 1, 1, 0, 0, 1, 1}; |
329 | int i172[] = {0, 1, 1, 0, 1, 0, 0}; |
330 | int i173[] = {0, 1, 1, 0, 1, 0, 1}; |
331 | int i174[] = {0, 1, 1, 0, 1, 1, 0}; |
332 | int i175[] = {0, 1, 1, 0, 1, 1, 1}; |
333 | int i176[] = {0, 1, 1, 1, 0, 0, 0}; |
334 | int i177[] = {0, 1, 1, 1, 0, 0, 1}; |
335 | int i178[] = {0, 1, 1, 1, 0, 1, 0}; |
336 | int i179[] = {0, 1, 1, 1, 0, 1, 1}; |
337 | int i180[] = {0, 1, 1, 1, 1, 0, 0}; |
338 | int i181[] = {0, 1, 1, 1, 1, 0, 1}; |
339 | int i182[] = {0, 1, 1, 1, 1, 1, 0}; |
340 | int i183[] = {0, 1, 1, 1, 1, 1, 1}; |
341 | int i184[] = {1, 0, 0, 0, 0, 0, 0}; |
342 | int i185[] = {1, 0, 0, 0, 0, 0, 1}; |
343 | int i186[] = {1, 0, 0, 0, 0, 1, 0}; |
344 | int i187[] = {1, 0, 0, 0, 0, 1, 1}; |
345 | int i188[] = {1, 0, 0, 0, 1, 0, 0}; |
346 | int i189[] = {1, 0, 0, 0, 1, 0, 1}; |
347 | int i190[] = {1, 0, 0, 0, 1, 1, 0}; |
348 | int i191[] = {1, 0, 0, 0, 1, 1, 1}; |
349 | int i192[] = {1, 0, 0, 1, 0, 0, 0}; |
350 | int i193[] = {1, 0, 0, 1, 0, 0, 1}; |
351 | int i194[] = {1, 0, 0, 1, 0, 1, 0}; |
352 | int i195[] = {1, 0, 0, 1, 0, 1, 1}; |
353 | int i196[] = {1, 0, 0, 1, 1, 0, 0}; |
354 | int i197[] = {1, 0, 0, 1, 1, 0, 1}; |
355 | int i198[] = {1, 0, 0, 1, 1, 1, 0}; |
356 | int i199[] = {1, 0, 0, 1, 1, 1, 1}; |
357 | int i200[] = {1, 0, 1, 0, 0, 0, 0}; |
358 | int i201[] = {1, 0, 1, 0, 0, 0, 1}; |
359 | int i202[] = {1, 0, 1, 0, 0, 1, 0}; |
360 | int i203[] = {1, 0, 1, 0, 0, 1, 1}; |
361 | int i204[] = {1, 0, 1, 0, 1, 0, 0}; |
362 | int i205[] = {1, 0, 1, 0, 1, 0, 1}; |
363 | int i206[] = {1, 0, 1, 0, 1, 1, 0}; |
364 | int i207[] = {1, 0, 1, 0, 1, 1, 1}; |
365 | int i208[] = {1, 0, 1, 1, 0, 0, 0}; |
366 | int i209[] = {1, 0, 1, 1, 0, 0, 1}; |
367 | int i210[] = {1, 0, 1, 1, 0, 1, 0}; |
368 | int i211[] = {1, 0, 1, 1, 0, 1, 1}; |
369 | int i212[] = {1, 0, 1, 1, 1, 0, 0}; |
370 | int i213[] = {1, 0, 1, 1, 1, 0, 1}; |
371 | int i214[] = {1, 0, 1, 1, 1, 1, 0}; |
372 | int i215[] = {1, 0, 1, 1, 1, 1, 1}; |
373 | int i216[] = {1, 1, 0, 0, 0, 0, 0}; |
374 | int i217[] = {1, 1, 0, 0, 0, 0, 1}; |
375 | int i218[] = {1, 1, 0, 0, 0, 1, 0}; |
376 | int i219[] = {1, 1, 0, 0, 0, 1, 1}; |
377 | int i220[] = {1, 1, 0, 0, 1, 0, 0}; |
378 | int i221[] = {1, 1, 0, 0, 1, 0, 1}; |
379 | int i222[] = {1, 1, 0, 0, 1, 1, 0}; |
380 | int i223[] = {1, 1, 0, 0, 1, 1, 1}; |
381 | int i224[] = {1, 1, 0, 1, 0, 0, 0}; |
382 | int i225[] = {1, 1, 0, 1, 0, 0, 1}; |
383 | int i226[] = {1, 1, 0, 1, 0, 1, 0}; |
384 | int i227[] = {1, 1, 0, 1, 0, 1, 1}; |
385 | int i228[] = {1, 1, 0, 1, 1, 0, 0}; |
386 | int i229[] = {1, 1, 0, 1, 1, 0, 1}; |
387 | int i230[] = {1, 1, 0, 1, 1, 1, 0}; |
388 | int i231[] = {1, 1, 0, 1, 1, 1, 1}; |
389 | int i232[] = {1, 1, 1, 0, 0, 0, 0}; |
390 | int i233[] = {1, 1, 1, 0, 0, 0, 1}; |
391 | int i234[] = {1, 1, 1, 0, 0, 1, 0}; |
392 | int i235[] = {1, 1, 1, 0, 0, 1, 1}; |
393 | int i236[] = {1, 1, 1, 0, 1, 0, 0}; |
394 | int i237[] = {1, 1, 1, 0, 1, 0, 1}; |
395 | int i238[] = {1, 1, 1, 0, 1, 1, 0}; |
396 | int i239[] = {1, 1, 1, 0, 1, 1, 1}; |
397 | int i240[] = {1, 1, 1, 1, 0, 0, 0}; |
398 | int i241[] = {1, 1, 1, 1, 0, 0, 1}; |
399 | int i242[] = {1, 1, 1, 1, 0, 1, 0}; |
400 | int i243[] = {1, 1, 1, 1, 0, 1, 1}; |
401 | int i244[] = {1, 1, 1, 1, 1, 0, 0}; |
402 | int i245[] = {1, 1, 1, 1, 1, 0, 1}; |
403 | int i246[] = {1, 1, 1, 1, 1, 1, 0}; |
404 | assert(std::is_heap(i120, i120+7) == (std::is_heap_until(i120, i120+7) == i120+7)); |
405 | assert(std::is_heap(i121, i121+7) == (std::is_heap_until(i121, i121+7) == i121+7)); |
406 | assert(std::is_heap(i122, i122+7) == (std::is_heap_until(i122, i122+7) == i122+7)); |
407 | assert(std::is_heap(i123, i123+7) == (std::is_heap_until(i123, i123+7) == i123+7)); |
408 | assert(std::is_heap(i124, i124+7) == (std::is_heap_until(i124, i124+7) == i124+7)); |
409 | assert(std::is_heap(i125, i125+7) == (std::is_heap_until(i125, i125+7) == i125+7)); |
410 | assert(std::is_heap(i126, i126+7) == (std::is_heap_until(i126, i126+7) == i126+7)); |
411 | assert(std::is_heap(i127, i127+7) == (std::is_heap_until(i127, i127+7) == i127+7)); |
412 | assert(std::is_heap(i128, i128+7) == (std::is_heap_until(i128, i128+7) == i128+7)); |
413 | assert(std::is_heap(i129, i129+7) == (std::is_heap_until(i129, i129+7) == i129+7)); |
414 | assert(std::is_heap(i130, i130+7) == (std::is_heap_until(i130, i130+7) == i130+7)); |
415 | assert(std::is_heap(i131, i131+7) == (std::is_heap_until(i131, i131+7) == i131+7)); |
416 | assert(std::is_heap(i132, i132+7) == (std::is_heap_until(i132, i132+7) == i132+7)); |
417 | assert(std::is_heap(i133, i133+7) == (std::is_heap_until(i133, i133+7) == i133+7)); |
418 | assert(std::is_heap(i134, i134+7) == (std::is_heap_until(i134, i134+7) == i134+7)); |
419 | assert(std::is_heap(i135, i135+7) == (std::is_heap_until(i135, i135+7) == i135+7)); |
420 | assert(std::is_heap(i136, i136+7) == (std::is_heap_until(i136, i136+7) == i136+7)); |
421 | assert(std::is_heap(i137, i137+7) == (std::is_heap_until(i137, i137+7) == i137+7)); |
422 | assert(std::is_heap(i138, i138+7) == (std::is_heap_until(i138, i138+7) == i138+7)); |
423 | assert(std::is_heap(i139, i139+7) == (std::is_heap_until(i139, i139+7) == i139+7)); |
424 | assert(std::is_heap(i140, i140+7) == (std::is_heap_until(i140, i140+7) == i140+7)); |
425 | assert(std::is_heap(i141, i141+7) == (std::is_heap_until(i141, i141+7) == i141+7)); |
426 | assert(std::is_heap(i142, i142+7) == (std::is_heap_until(i142, i142+7) == i142+7)); |
427 | assert(std::is_heap(i143, i143+7) == (std::is_heap_until(i143, i143+7) == i143+7)); |
428 | assert(std::is_heap(i144, i144+7) == (std::is_heap_until(i144, i144+7) == i144+7)); |
429 | assert(std::is_heap(i145, i145+7) == (std::is_heap_until(i145, i145+7) == i145+7)); |
430 | assert(std::is_heap(i146, i146+7) == (std::is_heap_until(i146, i146+7) == i146+7)); |
431 | assert(std::is_heap(i147, i147+7) == (std::is_heap_until(i147, i147+7) == i147+7)); |
432 | assert(std::is_heap(i148, i148+7) == (std::is_heap_until(i148, i148+7) == i148+7)); |
433 | assert(std::is_heap(i149, i149+7) == (std::is_heap_until(i149, i149+7) == i149+7)); |
434 | assert(std::is_heap(i150, i150+7) == (std::is_heap_until(i150, i150+7) == i150+7)); |
435 | assert(std::is_heap(i151, i151+7) == (std::is_heap_until(i151, i151+7) == i151+7)); |
436 | assert(std::is_heap(i152, i152+7) == (std::is_heap_until(i152, i152+7) == i152+7)); |
437 | assert(std::is_heap(i153, i153+7) == (std::is_heap_until(i153, i153+7) == i153+7)); |
438 | assert(std::is_heap(i154, i154+7) == (std::is_heap_until(i154, i154+7) == i154+7)); |
439 | assert(std::is_heap(i155, i155+7) == (std::is_heap_until(i155, i155+7) == i155+7)); |
440 | assert(std::is_heap(i156, i156+7) == (std::is_heap_until(i156, i156+7) == i156+7)); |
441 | assert(std::is_heap(i157, i157+7) == (std::is_heap_until(i157, i157+7) == i157+7)); |
442 | assert(std::is_heap(i158, i158+7) == (std::is_heap_until(i158, i158+7) == i158+7)); |
443 | assert(std::is_heap(i159, i159+7) == (std::is_heap_until(i159, i159+7) == i159+7)); |
444 | assert(std::is_heap(i160, i160+7) == (std::is_heap_until(i160, i160+7) == i160+7)); |
445 | assert(std::is_heap(i161, i161+7) == (std::is_heap_until(i161, i161+7) == i161+7)); |
446 | assert(std::is_heap(i162, i162+7) == (std::is_heap_until(i162, i162+7) == i162+7)); |
447 | assert(std::is_heap(i163, i163+7) == (std::is_heap_until(i163, i163+7) == i163+7)); |
448 | assert(std::is_heap(i164, i164+7) == (std::is_heap_until(i164, i164+7) == i164+7)); |
449 | assert(std::is_heap(i165, i165+7) == (std::is_heap_until(i165, i165+7) == i165+7)); |
450 | assert(std::is_heap(i166, i166+7) == (std::is_heap_until(i166, i166+7) == i166+7)); |
451 | assert(std::is_heap(i167, i167+7) == (std::is_heap_until(i167, i167+7) == i167+7)); |
452 | assert(std::is_heap(i168, i168+7) == (std::is_heap_until(i168, i168+7) == i168+7)); |
453 | assert(std::is_heap(i169, i169+7) == (std::is_heap_until(i169, i169+7) == i169+7)); |
454 | assert(std::is_heap(i170, i170+7) == (std::is_heap_until(i170, i170+7) == i170+7)); |
455 | assert(std::is_heap(i171, i171+7) == (std::is_heap_until(i171, i171+7) == i171+7)); |
456 | assert(std::is_heap(i172, i172+7) == (std::is_heap_until(i172, i172+7) == i172+7)); |
457 | assert(std::is_heap(i173, i173+7) == (std::is_heap_until(i173, i173+7) == i173+7)); |
458 | assert(std::is_heap(i174, i174+7) == (std::is_heap_until(i174, i174+7) == i174+7)); |
459 | assert(std::is_heap(i175, i175+7) == (std::is_heap_until(i175, i175+7) == i175+7)); |
460 | assert(std::is_heap(i176, i176+7) == (std::is_heap_until(i176, i176+7) == i176+7)); |
461 | assert(std::is_heap(i177, i177+7) == (std::is_heap_until(i177, i177+7) == i177+7)); |
462 | assert(std::is_heap(i178, i178+7) == (std::is_heap_until(i178, i178+7) == i178+7)); |
463 | assert(std::is_heap(i179, i179+7) == (std::is_heap_until(i179, i179+7) == i179+7)); |
464 | assert(std::is_heap(i180, i180+7) == (std::is_heap_until(i180, i180+7) == i180+7)); |
465 | assert(std::is_heap(i181, i181+7) == (std::is_heap_until(i181, i181+7) == i181+7)); |
466 | assert(std::is_heap(i182, i182+7) == (std::is_heap_until(i182, i182+7) == i182+7)); |
467 | assert(std::is_heap(i183, i183+7) == (std::is_heap_until(i183, i183+7) == i183+7)); |
468 | assert(std::is_heap(i184, i184+7) == (std::is_heap_until(i184, i184+7) == i184+7)); |
469 | assert(std::is_heap(i185, i185+7) == (std::is_heap_until(i185, i185+7) == i185+7)); |
470 | assert(std::is_heap(i186, i186+7) == (std::is_heap_until(i186, i186+7) == i186+7)); |
471 | assert(std::is_heap(i187, i187+7) == (std::is_heap_until(i187, i187+7) == i187+7)); |
472 | assert(std::is_heap(i188, i188+7) == (std::is_heap_until(i188, i188+7) == i188+7)); |
473 | assert(std::is_heap(i189, i189+7) == (std::is_heap_until(i189, i189+7) == i189+7)); |
474 | assert(std::is_heap(i190, i190+7) == (std::is_heap_until(i190, i190+7) == i190+7)); |
475 | assert(std::is_heap(i191, i191+7) == (std::is_heap_until(i191, i191+7) == i191+7)); |
476 | assert(std::is_heap(i192, i192+7) == (std::is_heap_until(i192, i192+7) == i192+7)); |
477 | assert(std::is_heap(i193, i193+7) == (std::is_heap_until(i193, i193+7) == i193+7)); |
478 | assert(std::is_heap(i194, i194+7) == (std::is_heap_until(i194, i194+7) == i194+7)); |
479 | assert(std::is_heap(i195, i195+7) == (std::is_heap_until(i195, i195+7) == i195+7)); |
480 | assert(std::is_heap(i196, i196+7) == (std::is_heap_until(i196, i196+7) == i196+7)); |
481 | assert(std::is_heap(i197, i197+7) == (std::is_heap_until(i197, i197+7) == i197+7)); |
482 | assert(std::is_heap(i198, i198+7) == (std::is_heap_until(i198, i198+7) == i198+7)); |
483 | assert(std::is_heap(i199, i199+7) == (std::is_heap_until(i199, i199+7) == i199+7)); |
484 | assert(std::is_heap(i200, i200+7) == (std::is_heap_until(i200, i200+7) == i200+7)); |
485 | assert(std::is_heap(i201, i201+7) == (std::is_heap_until(i201, i201+7) == i201+7)); |
486 | assert(std::is_heap(i202, i202+7) == (std::is_heap_until(i202, i202+7) == i202+7)); |
487 | assert(std::is_heap(i203, i203+7) == (std::is_heap_until(i203, i203+7) == i203+7)); |
488 | assert(std::is_heap(i204, i204+7) == (std::is_heap_until(i204, i204+7) == i204+7)); |
489 | assert(std::is_heap(i205, i205+7) == (std::is_heap_until(i205, i205+7) == i205+7)); |
490 | assert(std::is_heap(i206, i206+7) == (std::is_heap_until(i206, i206+7) == i206+7)); |
491 | assert(std::is_heap(i207, i207+7) == (std::is_heap_until(i207, i207+7) == i207+7)); |
492 | assert(std::is_heap(i208, i208+7) == (std::is_heap_until(i208, i208+7) == i208+7)); |
493 | assert(std::is_heap(i209, i209+7) == (std::is_heap_until(i209, i209+7) == i209+7)); |
494 | assert(std::is_heap(i210, i210+7) == (std::is_heap_until(i210, i210+7) == i210+7)); |
495 | assert(std::is_heap(i211, i211+7) == (std::is_heap_until(i211, i211+7) == i211+7)); |
496 | assert(std::is_heap(i212, i212+7) == (std::is_heap_until(i212, i212+7) == i212+7)); |
497 | assert(std::is_heap(i213, i213+7) == (std::is_heap_until(i213, i213+7) == i213+7)); |
498 | assert(std::is_heap(i214, i214+7) == (std::is_heap_until(i214, i214+7) == i214+7)); |
499 | assert(std::is_heap(i215, i215+7) == (std::is_heap_until(i215, i215+7) == i215+7)); |
500 | assert(std::is_heap(i216, i216+7) == (std::is_heap_until(i216, i216+7) == i216+7)); |
501 | assert(std::is_heap(i217, i217+7) == (std::is_heap_until(i217, i217+7) == i217+7)); |
502 | assert(std::is_heap(i218, i218+7) == (std::is_heap_until(i218, i218+7) == i218+7)); |
503 | assert(std::is_heap(i219, i219+7) == (std::is_heap_until(i219, i219+7) == i219+7)); |
504 | assert(std::is_heap(i220, i220+7) == (std::is_heap_until(i220, i220+7) == i220+7)); |
505 | assert(std::is_heap(i221, i221+7) == (std::is_heap_until(i221, i221+7) == i221+7)); |
506 | assert(std::is_heap(i222, i222+7) == (std::is_heap_until(i222, i222+7) == i222+7)); |
507 | assert(std::is_heap(i223, i223+7) == (std::is_heap_until(i223, i223+7) == i223+7)); |
508 | assert(std::is_heap(i224, i224+7) == (std::is_heap_until(i224, i224+7) == i224+7)); |
509 | assert(std::is_heap(i225, i225+7) == (std::is_heap_until(i225, i225+7) == i225+7)); |
510 | assert(std::is_heap(i226, i226+7) == (std::is_heap_until(i226, i226+7) == i226+7)); |
511 | assert(std::is_heap(i227, i227+7) == (std::is_heap_until(i227, i227+7) == i227+7)); |
512 | assert(std::is_heap(i228, i228+7) == (std::is_heap_until(i228, i228+7) == i228+7)); |
513 | assert(std::is_heap(i229, i229+7) == (std::is_heap_until(i229, i229+7) == i229+7)); |
514 | assert(std::is_heap(i230, i230+7) == (std::is_heap_until(i230, i230+7) == i230+7)); |
515 | assert(std::is_heap(i231, i231+7) == (std::is_heap_until(i231, i231+7) == i231+7)); |
516 | assert(std::is_heap(i232, i232+7) == (std::is_heap_until(i232, i232+7) == i232+7)); |
517 | assert(std::is_heap(i233, i233+7) == (std::is_heap_until(i233, i233+7) == i233+7)); |
518 | assert(std::is_heap(i234, i234+7) == (std::is_heap_until(i234, i234+7) == i234+7)); |
519 | assert(std::is_heap(i235, i235+7) == (std::is_heap_until(i235, i235+7) == i235+7)); |
520 | assert(std::is_heap(i236, i236+7) == (std::is_heap_until(i236, i236+7) == i236+7)); |
521 | assert(std::is_heap(i237, i237+7) == (std::is_heap_until(i237, i237+7) == i237+7)); |
522 | assert(std::is_heap(i238, i238+7) == (std::is_heap_until(i238, i238+7) == i238+7)); |
523 | assert(std::is_heap(i239, i239+7) == (std::is_heap_until(i239, i239+7) == i239+7)); |
524 | assert(std::is_heap(i240, i240+7) == (std::is_heap_until(i240, i240+7) == i240+7)); |
525 | assert(std::is_heap(i241, i241+7) == (std::is_heap_until(i241, i241+7) == i241+7)); |
526 | assert(std::is_heap(i242, i242+7) == (std::is_heap_until(i242, i242+7) == i242+7)); |
527 | assert(std::is_heap(i243, i243+7) == (std::is_heap_until(i243, i243+7) == i243+7)); |
528 | assert(std::is_heap(i244, i244+7) == (std::is_heap_until(i244, i244+7) == i244+7)); |
529 | assert(std::is_heap(i245, i245+7) == (std::is_heap_until(i245, i245+7) == i245+7)); |
530 | assert(std::is_heap(i246, i246+7) == (std::is_heap_until(i246, i246+7) == i246+7)); |
531 | } |
532 | |
533 | int main(int, char**) |
534 | { |
535 | test(); |
536 | |
537 | #if TEST_STD_VER > 17 |
538 | static_assert(test_constexpr()); |
539 | #endif |
540 | |
541 | return 0; |
542 | } |
543 | |