1# /* **************************************************************************
2# * *
3# * (C) Copyright Paul Mensonides 2002.
4# * Distributed under the Boost Software License, Version 1.0. (See
5# * accompanying file LICENSE_1_0.txt or copy at
6# * http://www.boost.org/LICENSE_1_0.txt)
7# * *
8# ************************************************************************** */
9#
10# /* Revised by Edward Diener (2011) */
11#
12# /* See http://www.boost.org for most recent version. */
13#
14# include <boost/preprocessor/config/limits.hpp>
15# include <boost/preprocessor/arithmetic/add.hpp>
16# include <boost/preprocessor/arithmetic/sub.hpp>
17# include <boost/preprocessor/comparison/equal.hpp>
18# include <boost/preprocessor/comparison/less.hpp>
19# include <boost/preprocessor/control/iif.hpp>
20# include <boost/preprocessor/facilities/is_empty.hpp>
21# include <boost/preprocessor/list.hpp>
22# include <boost/preprocessor/tuple/elem.hpp>
23# include <boost/preprocessor/tuple/size.hpp>
24# include <boost/preprocessor/array/elem.hpp>
25# include <boost/preprocessor/array/size.hpp>
26# include <boost/preprocessor/seq/elem.hpp>
27# include <boost/preprocessor/seq/size.hpp>
28# include <boost/preprocessor/variadic/elem.hpp>
29# include "test.h"
30
31# define LISTNIL BOOST_PP_NIL
32# define LIST (4, (1, (5, (2, BOOST_PP_NIL))))
33# define REVERSAL(d, x, y) BOOST_PP_SUB_D(d, y, x)
34# define F1(r, state, x) + x + state
35# define FI2(r, state, i, x) BOOST_PP_IIF(BOOST_PP_EQUAL(i,1),+ x + x + state,+ x + state)
36# define F2(r, x) + BOOST_PP_TUPLE_ELEM(2, 0, x) + 2 - BOOST_PP_TUPLE_ELEM(2, 1, x)
37# define L1 (0, (x, BOOST_PP_NIL))
38# define L2 (a, (1, (b, (2, BOOST_PP_NIL))))
39# define L3 (c, (3, (d, BOOST_PP_NIL)))
40# define LL (L1, (L2, (L3, BOOST_PP_NIL)))
41
42# if BOOST_PP_LIMIT_MAG == 512
43
44# define LIST_256 \
45 (1,(2,(3,(4,(5,(6,(7,(8,(9, \
46 (10,(11,(12,(13,(14,(15,(16,(17,(18,(19, \
47 (20,(21,(22,(23,(24,(25,(26,(27,(28,(29, \
48 (30,(31,(32,(33,(34,(35,(36,(37,(38,(39, \
49 (40,(41,(42,(43,(44,(45,(46,(47,(48,(49, \
50 (50,(51,(52,(53,(54,(55,(56,(57,(58,(59, \
51 (60,(61,(62,(63,(64,(65,(66,(67,(68,(69, \
52 (70,(71,(72,(73,(74,(75,(76,(77,(78,(79, \
53 (80,(81,(82,(83,(84,(85,(86,(87,(88,(89, \
54 (90,(91,(92,(93,(94,(95,(96,(97,(98,(99, \
55 (100,(101,(102,(103,(104,(105,(106,(107,(108,(109, \
56 (110,(111,(112,(113,(114,(115,(116,(117,(118,(119, \
57 (120,(121,(122,(123,(124,(125,(126,(127,(128,(129, \
58 (130,(131,(132,(133,(134,(135,(136,(137,(138,(139, \
59 (140,(141,(142,(143,(144,(145,(146,(147,(148,(149, \
60 (150,(151,(152,(153,(154,(155,(156,(157,(158,(159, \
61 (160,(161,(162,(163,(164,(165,(166,(167,(168,(169, \
62 (170,(171,(172,(173,(174,(175,(176,(177,(178,(179, \
63 (180,(181,(182,(183,(184,(185,(186,(187,(188,(189, \
64 (190,(191,(192,(193,(194,(195,(196,(197,(198,(199, \
65 (200,(201,(202,(203,(204,(205,(206,(207,(208,(209, \
66 (210,(211,(212,(213,(214,(215,(216,(217,(218,(219, \
67 (220,(221,(222,(223,(224,(225,(226,(227,(228,(229, \
68 (230,(231,(232,(233,(234,(235,(236,(237,(238,(239, \
69 (240,(241,(242,(243,(244,(245,(246,(247,(248,(249, \
70 (250,(251,(252,(253,(254,(255,(256, BOOST_PP_NIL \
71 )))))))))))))))))))))))))))))))) \
72 )))))))))))))))))))))))))))))))) \
73 )))))))))))))))))))))))))))))))) \
74 )))))))))))))))))))))))))))))))) \
75 )))))))))))))))))))))))))))))))) \
76 )))))))))))))))))))))))))))))))) \
77 )))))))))))))))))))))))))))))))) \
78 ))))))))))))))))))))))))))))))))
79
80#endif
81
82# if BOOST_PP_LIMIT_MAG == 512 || BOOST_PP_LIMIT_MAG == 1024
83
84# define LIST_512 \
85 (1,(2,(3,(4,(5,(6,(7,(8,(9, \
86 (10,(11,(12,(13,(14,(15,(16,(17,(18,(19, \
87 (20,(21,(22,(23,(24,(25,(26,(27,(28,(29, \
88 (30,(31,(32,(33,(34,(35,(36,(37,(38,(39, \
89 (40,(41,(42,(43,(44,(45,(46,(47,(48,(49, \
90 (50,(51,(52,(53,(54,(55,(56,(57,(58,(59, \
91 (60,(61,(62,(63,(64,(65,(66,(67,(68,(69, \
92 (70,(71,(72,(73,(74,(75,(76,(77,(78,(79, \
93 (80,(81,(82,(83,(84,(85,(86,(87,(88,(89, \
94 (90,(91,(92,(93,(94,(95,(96,(97,(98,(99, \
95 (100,(101,(102,(103,(104,(105,(106,(107,(108,(109, \
96 (110,(111,(112,(113,(114,(115,(116,(117,(118,(119, \
97 (120,(121,(122,(123,(124,(125,(126,(127,(128,(129, \
98 (130,(131,(132,(133,(134,(135,(136,(137,(138,(139, \
99 (140,(141,(142,(143,(144,(145,(146,(147,(148,(149, \
100 (150,(151,(152,(153,(154,(155,(156,(157,(158,(159, \
101 (160,(161,(162,(163,(164,(165,(166,(167,(168,(169, \
102 (170,(171,(172,(173,(174,(175,(176,(177,(178,(179, \
103 (180,(181,(182,(183,(184,(185,(186,(187,(188,(189, \
104 (190,(191,(192,(193,(194,(195,(196,(197,(198,(199, \
105 (200,(201,(202,(203,(204,(205,(206,(207,(208,(209, \
106 (210,(211,(212,(213,(214,(215,(216,(217,(218,(219, \
107 (220,(221,(222,(223,(224,(225,(226,(227,(228,(229, \
108 (230,(231,(232,(233,(234,(235,(236,(237,(238,(239, \
109 (240,(241,(242,(243,(244,(245,(246,(247,(248,(249, \
110 (250,(251,(252,(253,(254,(255,(256,(257,(258,(259, \
111 (260,(261,(262,(263,(264,(265,(266,(267,(268,(269, \
112 (270,(271,(272,(273,(274,(275,(276,(277,(278,(279, \
113 (280,(281,(282,(283,(284,(285,(286,(287,(288,(289, \
114 (290,(291,(292,(293,(294,(295,(296,(297,(298,(299, \
115 (300,(301,(302,(303,(304,(305,(306,(307,(308,(309, \
116 (310,(311,(312,(313,(314,(315,(316,(317,(318,(319, \
117 (320,(321,(322,(323,(324,(325,(326,(327,(328,(329, \
118 (330,(331,(332,(333,(334,(335,(336,(337,(338,(339, \
119 (340,(341,(342,(343,(344,(345,(346,(347,(348,(349, \
120 (350,(351,(352,(353,(354,(355,(356,(357,(358,(359, \
121 (360,(361,(362,(363,(364,(365,(366,(367,(368,(369, \
122 (370,(371,(372,(373,(374,(375,(376,(377,(378,(379, \
123 (380,(381,(382,(383,(384,(385,(386,(387,(388,(389, \
124 (390,(391,(392,(393,(394,(395,(396,(397,(398,(399, \
125 (400,(401,(402,(403,(404,(405,(406,(407,(408,(409, \
126 (410,(411,(412,(413,(414,(415,(416,(417,(418,(419, \
127 (420,(421,(422,(423,(424,(425,(426,(427,(428,(429, \
128 (430,(431,(432,(433,(434,(435,(436,(437,(438,(439, \
129 (440,(441,(442,(443,(444,(445,(446,(447,(448,(449, \
130 (450,(451,(452,(453,(454,(455,(456,(457,(458,(459, \
131 (460,(461,(462,(463,(464,(465,(466,(467,(468,(469, \
132 (470,(471,(472,(473,(474,(475,(476,(477,(478,(479, \
133 (480,(481,(482,(483,(484,(485,(486,(487,(488,(489, \
134 (490,(491,(492,(493,(494,(495,(496,(497,(498,(499, \
135 (500,(501,(502,(503,(504,(505,(506,(507,(508,(509, \
136 (510,(511,(512, BOOST_PP_NIL \
137 )))))))))))))))))))))))))))))))) \
138 )))))))))))))))))))))))))))))))) \
139 )))))))))))))))))))))))))))))))) \
140 )))))))))))))))))))))))))))))))) \
141 )))))))))))))))))))))))))))))))) \
142 )))))))))))))))))))))))))))))))) \
143 )))))))))))))))))))))))))))))))) \
144 )))))))))))))))))))))))))))))))) \
145 )))))))))))))))))))))))))))))))) \
146 )))))))))))))))))))))))))))))))) \
147 )))))))))))))))))))))))))))))))) \
148 )))))))))))))))))))))))))))))))) \
149 )))))))))))))))))))))))))))))))) \
150 )))))))))))))))))))))))))))))))) \
151 )))))))))))))))))))))))))))))))) \
152 ))))))))))))))))))))))))))))))))
153
154#endif
155
156# if BOOST_PP_LIMIT_MAG == 1024
157
158# define LIST_1024 \
159 (1,(2,(3,(4,(5,(6,(7,(8,(9, \
160 (10,(11,(12,(13,(14,(15,(16,(17,(18,(19, \
161 (20,(21,(22,(23,(24,(25,(26,(27,(28,(29, \
162 (30,(31,(32,(33,(34,(35,(36,(37,(38,(39, \
163 (40,(41,(42,(43,(44,(45,(46,(47,(48,(49, \
164 (50,(51,(52,(53,(54,(55,(56,(57,(58,(59, \
165 (60,(61,(62,(63,(64,(65,(66,(67,(68,(69, \
166 (70,(71,(72,(73,(74,(75,(76,(77,(78,(79, \
167 (80,(81,(82,(83,(84,(85,(86,(87,(88,(89, \
168 (90,(91,(92,(93,(94,(95,(96,(97,(98,(99, \
169 (100,(101,(102,(103,(104,(105,(106,(107,(108,(109, \
170 (110,(111,(112,(113,(114,(115,(116,(117,(118,(119, \
171 (120,(121,(122,(123,(124,(125,(126,(127,(128,(129, \
172 (130,(131,(132,(133,(134,(135,(136,(137,(138,(139, \
173 (140,(141,(142,(143,(144,(145,(146,(147,(148,(149, \
174 (150,(151,(152,(153,(154,(155,(156,(157,(158,(159, \
175 (160,(161,(162,(163,(164,(165,(166,(167,(168,(169, \
176 (170,(171,(172,(173,(174,(175,(176,(177,(178,(179, \
177 (180,(181,(182,(183,(184,(185,(186,(187,(188,(189, \
178 (190,(191,(192,(193,(194,(195,(196,(197,(198,(199, \
179 (200,(201,(202,(203,(204,(205,(206,(207,(208,(209, \
180 (210,(211,(212,(213,(214,(215,(216,(217,(218,(219, \
181 (220,(221,(222,(223,(224,(225,(226,(227,(228,(229, \
182 (230,(231,(232,(233,(234,(235,(236,(237,(238,(239, \
183 (240,(241,(242,(243,(244,(245,(246,(247,(248,(249, \
184 (250,(251,(252,(253,(254,(255,(256,(257,(258,(259, \
185 (260,(261,(262,(263,(264,(265,(266,(267,(268,(269, \
186 (270,(271,(272,(273,(274,(275,(276,(277,(278,(279, \
187 (280,(281,(282,(283,(284,(285,(286,(287,(288,(289, \
188 (290,(291,(292,(293,(294,(295,(296,(297,(298,(299, \
189 (300,(301,(302,(303,(304,(305,(306,(307,(308,(309, \
190 (310,(311,(312,(313,(314,(315,(316,(317,(318,(319, \
191 (320,(321,(322,(323,(324,(325,(326,(327,(328,(329, \
192 (330,(331,(332,(333,(334,(335,(336,(337,(338,(339, \
193 (340,(341,(342,(343,(344,(345,(346,(347,(348,(349, \
194 (350,(351,(352,(353,(354,(355,(356,(357,(358,(359, \
195 (360,(361,(362,(363,(364,(365,(366,(367,(368,(369, \
196 (370,(371,(372,(373,(374,(375,(376,(377,(378,(379, \
197 (380,(381,(382,(383,(384,(385,(386,(387,(388,(389, \
198 (390,(391,(392,(393,(394,(395,(396,(397,(398,(399, \
199 (400,(401,(402,(403,(404,(405,(406,(407,(408,(409, \
200 (410,(411,(412,(413,(414,(415,(416,(417,(418,(419, \
201 (420,(421,(422,(423,(424,(425,(426,(427,(428,(429, \
202 (430,(431,(432,(433,(434,(435,(436,(437,(438,(439, \
203 (440,(441,(442,(443,(444,(445,(446,(447,(448,(449, \
204 (450,(451,(452,(453,(454,(455,(456,(457,(458,(459, \
205 (460,(461,(462,(463,(464,(465,(466,(467,(468,(469, \
206 (470,(471,(472,(473,(474,(475,(476,(477,(478,(479, \
207 (480,(481,(482,(483,(484,(485,(486,(487,(488,(489, \
208 (490,(491,(492,(493,(494,(495,(496,(497,(498,(499, \
209 (500,(501,(502,(503,(504,(505,(506,(507,(508,(509, \
210 (510,(511,(512, \
211 (513,(514,(515,(516,(517,(518,(519,(520,(521, \
212 (522,(523,(524,(525,(526,(527,(528,(529,(530,(531, \
213 (532,(533,(534,(535,(536,(537,(538,(539,(540,(541, \
214 (542,(543,(544,(545,(546,(547,(548,(549,(550,(551, \
215 (552,(553,(554,(555,(556,(557,(558,(559,(560,(561, \
216 (562,(563,(564,(565,(566,(567,(568,(569,(570,(571, \
217 (572,(573,(574,(575,(576,(577,(578,(579,(580,(581, \
218 (582,(583,(584,(585,(586,(587,(588,(589,(590,(591, \
219 (592,(593,(594,(595,(596,(597,(598,(599,(600,(601, \
220 (602,(603,(604,(605,(606,(607,(608,(609,(610,(611, \
221 (612,(613,(614,(615,(616,(617,(618,(619,(620,(621, \
222 (622,(623,(624,(625,(626,(627,(628,(629,(630,(631, \
223 (632,(633,(634,(635,(636,(637,(638,(639,(640,(641, \
224 (642,(643,(644,(645,(646,(647,(648,(649,(650,(651, \
225 (652,(653,(654,(655,(656,(657,(658,(659,(660,(661, \
226 (662,(663,(664,(665,(666,(667,(668,(669,(670,(671, \
227 (672,(673,(674,(675,(676,(677,(678,(679,(680,(681, \
228 (682,(683,(684,(685,(686,(687,(688,(689,(690,(691, \
229 (692,(693,(694,(695,(696,(697,(698,(699,(700,(701, \
230 (702,(703,(704,(705,(706,(707,(708,(709,(710,(711, \
231 (712,(713,(714,(715,(716,(717,(718,(719,(720,(721, \
232 (722,(723,(724,(725,(726,(727,(728,(729,(730,(731, \
233 (732,(733,(734,(735,(736,(737,(738,(739,(740,(741, \
234 (742,(743,(744,(745,(746,(747,(748,(749,(750,(751, \
235 (752,(753,(754,(755,(756,(757,(758,(759,(760,(761, \
236 (762,(763,(764,(765,(766,(767,(768,(769,(770,(771, \
237 (772,(773,(774,(775,(776,(777,(778,(779,(780,(781, \
238 (782,(783,(784,(785,(786,(787,(788,(789,(790,(791, \
239 (792,(793,(794,(795,(796,(797,(798,(799,(800,(801, \
240 (802,(803,(804,(805,(806,(807,(808,(809,(810,(811, \
241 (812,(813,(814,(815,(816,(817,(818,(819,(820,(821, \
242 (822,(823,(824,(825,(826,(827,(828,(829,(830,(831, \
243 (832,(833,(834,(835,(836,(837,(838,(839,(840,(841, \
244 (842,(843,(844,(845,(846,(847,(848,(849,(850,(851, \
245 (852,(853,(854,(855,(856,(857,(858,(859,(860,(861, \
246 (862,(863,(864,(865,(866,(867,(868,(869,(870,(871, \
247 (872,(873,(874,(875,(876,(877,(878,(879,(880,(881, \
248 (882,(883,(884,(885,(886,(887,(888,(889,(890,(891, \
249 (892,(893,(894,(895,(896,(897,(898,(899,(900,(901, \
250 (902,(903,(904,(905,(906,(907,(908,(909,(910,(911, \
251 (912,(913,(914,(915,(916,(917,(918,(919,(920,(921, \
252 (922,(923,(924,(925,(926,(927,(928,(929,(930,(931, \
253 (932,(933,(934,(935,(936,(937,(938,(939,(940,(941, \
254 (942,(943,(944,(945,(946,(947,(948,(949,(950,(951, \
255 (952,(953,(954,(955,(956,(957,(958,(959,(960,(961, \
256 (962,(963,(964,(965,(966,(967,(968,(969,(970,(971, \
257 (972,(973,(974,(975,(976,(977,(978,(979,(980,(981, \
258 (982,(983,(984,(985,(986,(987,(988,(989,(990,(991, \
259 (992,(993,(994,(995,(996,(997,(998,(999,(1000,(1001, \
260 (1002,(1003,(1004,(1005,(1006,(1007,(1008,(1009,(1010,(1011, \
261 (1012,(1013,(1014,(1015,(1016,(1017,(1018,(1019,(1020,(1021, \
262 (1022,(1023,(1024, \
263 BOOST_PP_NIL \
264 )))))))))))))))))))))))))))))))) \
265 )))))))))))))))))))))))))))))))) \
266 )))))))))))))))))))))))))))))))) \
267 )))))))))))))))))))))))))))))))) \
268 )))))))))))))))))))))))))))))))) \
269 )))))))))))))))))))))))))))))))) \
270 )))))))))))))))))))))))))))))))) \
271 )))))))))))))))))))))))))))))))) \
272 )))))))))))))))))))))))))))))))) \
273 )))))))))))))))))))))))))))))))) \
274 )))))))))))))))))))))))))))))))) \
275 )))))))))))))))))))))))))))))))) \
276 )))))))))))))))))))))))))))))))) \
277 )))))))))))))))))))))))))))))))) \
278 )))))))))))))))))))))))))))))))) \
279 )))))))))))))))))))))))))))))))) \
280 )))))))))))))))))))))))))))))))) \
281 )))))))))))))))))))))))))))))))) \
282 )))))))))))))))))))))))))))))))) \
283 )))))))))))))))))))))))))))))))) \
284 )))))))))))))))))))))))))))))))) \
285 )))))))))))))))))))))))))))))))) \
286 )))))))))))))))))))))))))))))))) \
287 )))))))))))))))))))))))))))))))) \
288 )))))))))))))))))))))))))))))))) \
289 )))))))))))))))))))))))))))))))) \
290 )))))))))))))))))))))))))))))))) \
291 )))))))))))))))))))))))))))))))) \
292 )))))))))))))))))))))))))))))))) \
293 )))))))))))))))))))))))))))))))) \
294 )))))))))))))))))))))))))))))))) \
295 )))))))))))))))))))))))))))))))) \
296/* */
297
298#endif
299
300BEGIN BOOST_PP_LIST_FIRST(LIST) == 4 END
301BEGIN BOOST_PP_LIST_IS_CONS(LIST) == 1 END
302BEGIN BOOST_PP_LIST_IS_CONS(LISTNIL) == 0 END
303BEGIN BOOST_PP_LIST_IS_NIL(LIST) == 0 END
304BEGIN BOOST_PP_LIST_IS_NIL(LISTNIL) == 1 END
305
306# if BOOST_PP_LIMIT_MAG == 512
307
308BEGIN BOOST_PP_LIST_FIRST(LIST_512) == 1 END
309BEGIN BOOST_PP_LIST_IS_CONS(LIST_512) == 1 END
310BEGIN BOOST_PP_LIST_IS_NIL(LIST_512) == 0 END
311
312#endif
313
314# if BOOST_PP_LIMIT_MAG == 1024
315
316BEGIN BOOST_PP_LIST_FIRST(LIST_1024) == 1 END
317BEGIN BOOST_PP_LIST_IS_CONS(LIST_1024) == 1 END
318BEGIN BOOST_PP_LIST_IS_NIL(LIST_1024) == 0 END
319
320#endif
321
322BEGIN BOOST_PP_VARIADIC_ELEM(2,BOOST_PP_LIST_ENUM(LIST)) == 5 END
323BEGIN BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_SUB_D, 22, LIST) == 10 END
324BEGIN BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_SUB_D, 22, LISTNIL) == 22 END
325BEGIN BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_ADD_D, 0, LIST) == 12 END
326BEGIN BOOST_PP_LIST_FOLD_RIGHT(BOOST_PP_ADD_D, 0, LISTNIL) == 0 END
327BEGIN BOOST_PP_LIST_FOLD_RIGHT(REVERSAL, 0, LIST) == 4 END
328
329BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_REVERSE(LIST)) == 2514 END
330BEGIN BOOST_PP_LIST_IS_NIL(BOOST_PP_LIST_REVERSE(LISTNIL)) == 1 END
331
332# if BOOST_PP_LIMIT_MAG == 512
333
334BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_REVERSE(LIST_512),493) == 19 END
335
336#endif
337
338# if BOOST_PP_LIMIT_MAG == 1024
339
340BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_REVERSE(LIST_1024),931) == 93 END
341
342#endif
343
344BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_REST_N(2, LIST)) == 52 END
345BEGIN BOOST_PP_LIST_IS_NIL(BOOST_PP_LIST_REST_N(0, LISTNIL)) == 1 END
346BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FIRST_N(2, LIST)) == 41 END
347
348# if BOOST_PP_LIMIT_MAG == 512
349
350BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_FIRST_N(357, LIST_512),291) == 292 END
351BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_LIST_REST_N(411, LIST_512)) == 101 END
352
353#endif
354
355# if BOOST_PP_LIMIT_MAG == 1024
356
357BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_FIRST_N(738, LIST_1024),629) == 630 END
358BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_LIST_REST_N(813, LIST_1024)) == 211 END
359
360#endif
361
362BEGIN BOOST_PP_LIST_AT(LIST, 2) == 5 END
363BEGIN BOOST_PP_LIST_SIZE(LIST) == 4 END
364BEGIN BOOST_PP_LIST_SIZE(LISTNIL) == 0 END
365
366# if BOOST_PP_LIMIT_MAG == 512
367
368BEGIN BOOST_PP_LIST_AT(LIST_512, 279) == 280 END
369BEGIN BOOST_PP_LIST_SIZE(LIST_512) == 512 END
370
371#endif
372
373# if BOOST_PP_LIMIT_MAG == 1024
374
375BEGIN BOOST_PP_LIST_AT(LIST_1024, 925) == 926 END
376BEGIN BOOST_PP_LIST_SIZE(LIST_1024) == 1024 END
377
378#endif
379
380BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D, 2, LIST)) == 6374 END
381BEGIN BOOST_PP_LIST_IS_NIL(BOOST_PP_LIST_TRANSFORM(BOOST_PP_ADD_D, 2, LISTNIL)) == 1 END
382
383# if BOOST_PP_LIMIT_MAG == 512
384
385#define BOOST_PP_LIST_TEST_TRANSFORM_OP(d, data, elem) BOOST_PP_EQUAL(elem,data)
386
387BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_LIST_TEST_TRANSFORM_OP, 472, LIST_512),471) == 1 END
388BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_LIST_TEST_TRANSFORM_OP, 267, LIST_512),333) == 0 END
389
390#endif
391
392# if BOOST_PP_LIMIT_MAG == 1024 && !defined(__clang__)
393
394#define BOOST_PP_LIST_TEST_TRANSFORM_OP(d, data, elem) BOOST_PP_EQUAL(elem,data)
395
396BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_LIST_TEST_TRANSFORM_OP, 876, LIST_1024),875) == 1 END
397BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_TRANSFORM(BOOST_PP_LIST_TEST_TRANSFORM_OP, 637, LIST_1024),741) == 0 END
398
399#endif
400
401BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_APPEND(BOOST_PP_LIST_REST(LIST), LIST)) == 1524152 END
402BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_APPEND(LIST,LISTNIL)) == 4152 END
403BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_APPEND(LISTNIL,LIST)) == 4152 END
404BEGIN BOOST_PP_LIST_IS_NIL(BOOST_PP_LIST_APPEND(LISTNIL,LISTNIL)) == 1 END
405
406# if BOOST_PP_LIMIT_MAG == 512
407
408BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_APPEND(LIST_256,LIST),258) == 5 END
409BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_APPEND(LIST,LIST_256),258) == 255 END
410
411#endif
412
413# if BOOST_PP_LIMIT_MAG == 1024
414
415BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_APPEND(LIST_512,LIST),515) == 2 END
416BEGIN BOOST_PP_LIST_AT(BOOST_PP_LIST_APPEND(LIST,LIST_512),513) == 510 END
417
418#endif
419
420BEGIN BOOST_PP_LIST_FOR_EACH(F1, 1, LIST) == 16 END
421BEGIN BOOST_PP_LIST_FOR_EACH_I(FI2, 1, LIST) == 17 END
422
423BEGIN BOOST_PP_TUPLE_ELEM(4, 3, BOOST_PP_LIST_TO_TUPLE(LIST)) == 2 END
424
425BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FILTER(BOOST_PP_LESS_D, 3, LIST)) == 45 END
426BEGIN BOOST_PP_LIST_IS_NIL(BOOST_PP_LIST_FILTER(BOOST_PP_LESS_D, 3, LISTNIL)) == 1 END
427
428# if BOOST_PP_LIMIT_MAG == 512
429
430BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_LIST_FILTER(BOOST_PP_EQUAL_D, 372, LIST_512)) == 1 END
431
432#endif
433
434# if BOOST_PP_LIMIT_MAG == 1024 && (!defined(__clang__) || defined(_MSC_VER) || defined(__CODEGEARC__))
435
436BEGIN BOOST_PP_LIST_SIZE(BOOST_PP_LIST_FILTER(BOOST_PP_EQUAL_D, 923, LIST_1024)) == 1 END
437
438#endif
439
440BEGIN BOOST_PP_LIST_FOR_EACH_PRODUCT(F2, 2, ( (1, (0, BOOST_PP_NIL)), (2, (3, BOOST_PP_NIL)) )) == 0 END
441BEGIN BOOST_PP_LIST_FOR_EACH_PRODUCT(F2, ( (1, (0, BOOST_PP_NIL)), (2, (3, BOOST_PP_NIL)) )) == 0 END
442BEGIN BOOST_PP_LIST_CAT(BOOST_PP_LIST_FOLD_LEFT(BOOST_PP_LIST_APPEND_D, BOOST_PP_NIL, LL)) == 0x0a1b2c3d END
443
444BEGIN BOOST_PP_ARRAY_ELEM(2, BOOST_PP_LIST_TO_ARRAY(LIST)) == 5 END
445BEGIN BOOST_PP_ARRAY_SIZE(BOOST_PP_LIST_TO_ARRAY(LISTNIL)) == 0 END
446BEGIN BOOST_PP_SEQ_ELEM(3, BOOST_PP_LIST_TO_SEQ(LIST)) == 2 END
447
448# if BOOST_PP_LIMIT_MAG == 512 && BOOST_PP_LIMIT_FOR == 512
449
450BEGIN BOOST_PP_SEQ_ELEM(437, BOOST_PP_LIST_TO_SEQ(LIST_512)) == 438 END
451
452#endif
453
454# if BOOST_PP_LIMIT_MAG == 1024 && BOOST_PP_LIMIT_FOR == 1024
455
456BEGIN BOOST_PP_SEQ_ELEM(736, BOOST_PP_LIST_TO_SEQ(LIST_1024)) == 737 END
457
458#endif
459

source code of boost/libs/preprocessor/test/list.cxx