Branch data Line data Source code
1 : : // *****************************************************************************
2 : : /*!
3 : : \file src/RNGTest/Crush.cpp
4 : : \copyright 2012-2015 J. Bakosi,
5 : : 2016-2018 Los Alamos National Security, LLC.,
6 : : 2019-2021 Triad National Security, LLC.
7 : : All rights reserved. See the LICENSE file for details.
8 : : \brief Class re-creating the TestU01 library's Crush battery
9 : : \details Class re-creating the TestU01 library's Crush battery.
10 : : */
11 : : // *****************************************************************************
12 : :
13 : : #include "NoWarning/charm.hpp"
14 : : #include "NoWarning/pup_stl.hpp"
15 : : #include "NoWarning/pup.hpp"
16 : :
17 : : extern "C" {
18 : : #include <gdef.h>
19 : : #include <gofw.h>
20 : : #include <scomp.h>
21 : : #include <sknuth.h>
22 : : #include <smarsa.h>
23 : : #include <snpair.h>
24 : : #include <sres.h>
25 : : #include <sspectral.h>
26 : : #include <sstring.h>
27 : : #include <swalk.h>
28 : : }
29 : :
30 : : #include "Tags.hpp"
31 : : #include "PUPUtil.hpp"
32 : : #include "TestU01.hpp"
33 : : #include "StatTest.hpp"
34 : : #include "TestStack.hpp"
35 : : #include "TestU01Props.hpp"
36 : : #include "TestU01Stack.hpp"
37 : : #include "Crush.hpp"
38 : :
39 : : namespace rngtest {
40 : :
41 : : extern TestStack g_testStack;
42 : :
43 : : } // rngtest::
44 : :
45 : : using rngtest::Crush;
46 : :
47 : : void
48 : 0 : Crush::addTests( std::vector< std::function< StatTest() > >& tests,
49 : : tk::ctr::RNGType rng,
50 : : CProxy_TestU01Suite& proxy )
51 : : // *****************************************************************************
52 : : // Add statistical tests to battery
53 : : //! \details This function adds, i.e., registers, all statistical tests to the
54 : : //! test stack corresponding to the TestU01 library's Crush battery.
55 : : //! \param[in] tests Vector of test constructors
56 : : //! \param[in] rng RNG ID enum associated with the RNG to be tested
57 : : //! \param[in] proxy Charm++ host proxy to which the tests will call back to
58 : : // *****************************************************************************
59 : : {
60 : : // Select test stack
61 : : const auto& stack = g_testStack.TestU01;
62 : :
63 : : // Find RNG
64 : 0 : auto gen = stack.generator(rng);
65 : :
66 : : static const long THOUSAND = 1000;
67 : : static const long MILLION = THOUSAND * THOUSAND;
68 : : static const long BILLION = THOUSAND * MILLION;
69 : :
70 : : // Marsaglia's Serial Over, t = 2
71 : : stack.add< TestU01< TestU01Props< tag::SerialOver, CProxy_TestU01Suite,
72 : : sres_Basic, sres_CreateBasic,
73 : : sres_DeleteBasic,
74 : : long, long, int, long, int > > >
75 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Serial Over t=2"},
76 [ - - ][ - - ]: 0 : 1L, 500L * MILLION, 0, 4096L, 2 );
[ - - ][ - - ]
[ - - ]
77 : :
78 : : // Marsaglia's Serial Over, t = 4
79 : : stack.add< TestU01< TestU01Props< tag::SerialOver, CProxy_TestU01Suite,
80 : : sres_Basic, sres_CreateBasic,
81 : : sres_DeleteBasic,
82 : : long, long, int, long, int > > >
83 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Serial Over t=4"},
84 [ - - ][ - - ]: 0 : 1L, 300L * MILLION, 0, 64L, 4 );
[ - - ][ - - ]
[ - - ]
85 : :
86 : : // Marsaglia's Collision Over, t = 2, r = 0
87 : : stack.add< TestU01< TestU01Props< tag::CollisionOver, CProxy_TestU01Suite,
88 : : smarsa_Res, smarsa_CreateRes,
89 : : smarsa_DeleteRes,
90 : : long, long, int, long, int > > >
91 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Collision Over t=2 r=0"},
92 [ - - ][ - - ]: 0 : 10L, 10L * MILLION, 0, 1024L * 1024, 2 );
[ - - ][ - - ]
[ - - ]
93 : :
94 : : // Marsaglia's Collision Over, t = 2, r = 10
95 : : stack.add< TestU01< TestU01Props< tag::CollisionOver, CProxy_TestU01Suite,
96 : : smarsa_Res, smarsa_CreateRes,
97 : : smarsa_DeleteRes,
98 : : long, long, int, long, int > > >
99 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Collision Over t=2 r=10"},
100 [ - - ][ - - ]: 0 : 10L, 10L * MILLION, 10, 1024L * 1024, 2 );
[ - - ][ - - ]
[ - - ]
101 : :
102 : : // Marsaglia's Collision Over, t = 4, r = 0
103 : : stack.add< TestU01< TestU01Props< tag::CollisionOver, CProxy_TestU01Suite,
104 : : smarsa_Res, smarsa_CreateRes,
105 : : smarsa_DeleteRes,
106 : : long, long, int, long, int > > >
107 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Collision Over t=4 r=0"},
108 [ - - ][ - - ]: 0 : 10L, 10L * MILLION, 0, 1024L, 4 );
[ - - ][ - - ]
[ - - ]
109 : :
110 : : // Marsaglia's Collision Over, t = 4, r = 20
111 : : stack.add< TestU01< TestU01Props< tag::CollisionOver, CProxy_TestU01Suite,
112 : : smarsa_Res, smarsa_CreateRes,
113 : : smarsa_DeleteRes,
114 : : long, long, int, long, int > > >
115 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Collision Over t=4 r=20"},
116 [ - - ][ - - ]: 0 : 10L, 10L * MILLION, 20, 1024L, 4 );
[ - - ][ - - ]
[ - - ]
117 : :
118 : : // Marsaglia's Collision Over, t = 8, r = 0
119 : : stack.add< TestU01< TestU01Props< tag::CollisionOver, CProxy_TestU01Suite,
120 : : smarsa_Res, smarsa_CreateRes,
121 : : smarsa_DeleteRes,
122 : : long, long, int, long, int > > >
123 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Collision Over t=8 r=0"},
124 [ - - ][ - - ]: 0 : 10L, 10L * MILLION, 0, 32L, 8 );
[ - - ][ - - ]
[ - - ]
125 : :
126 : : // Marsaglia's Collision Over, t = 8, r = 25
127 : : stack.add< TestU01< TestU01Props< tag::CollisionOver, CProxy_TestU01Suite,
128 : : smarsa_Res, smarsa_CreateRes,
129 : : smarsa_DeleteRes,
130 : : long, long, int, long, int > > >
131 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Collision Over t=8 r=25"},
132 [ - - ][ - - ]: 0 : 10L, 10L * MILLION, 25, 32L, 8 );
[ - - ][ - - ]
[ - - ]
133 : :
134 : : // Marsaglia's Collision Over, t = 20, r = 0
135 : : stack.add< TestU01< TestU01Props< tag::CollisionOver, CProxy_TestU01Suite,
136 : : smarsa_Res, smarsa_CreateRes,
137 : : smarsa_DeleteRes,
138 : : long, long, int, long, int > > >
139 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Collision Over t=20 r=0"},
140 [ - - ][ - - ]: 0 : 10L, 10L * MILLION, 0, 4L, 20 );
[ - - ][ - - ]
[ - - ]
141 : :
142 : : // Marsaglia's Collision Over, t = 20, r = 28
143 : : stack.add< TestU01< TestU01Props< tag::CollisionOver, CProxy_TestU01Suite,
144 : : smarsa_Res, smarsa_CreateRes,
145 : : smarsa_DeleteRes,
146 : : long, long, int, long, int > > >
147 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Collision Over t=20 r=28"},
148 [ - - ][ - - ]: 0 : 10L, 10L * MILLION, 28, 4L, 20 );
[ - - ][ - - ]
[ - - ]
149 : :
150 : : #ifdef USE_LONGLONG
151 : :
152 : : // Marsaglia's Birthday Spacings, t = 2, r = 0
153 : : #if LONG_MAX <= 2147483647L
154 : : stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
155 : : sres_Poisson, sres_CreatePoisson,
156 : : sres_DeletePoisson,
157 : : long, long, int, long, int, int > > >
158 : : ( proxy, tests, rng, gen, {"Birthday Spacings t=2 r=0"},
159 : : 10L, 10L * MILLION, 0, 1073741824L, 2, 1 );
160 : : #else // LONG_MAX
161 : : stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
162 : : sres_Poisson, sres_CreatePoisson,
163 : : sres_DeletePoisson,
164 : : long, long, int, long, int, int > > >
165 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Birthday Spacings t=2 r=0"},
166 [ - - ][ - - ]: 0 : 5L, 20L * MILLION, 0, 2L*1073741824L, 2, 1 );
[ - - ][ - - ]
[ - - ]
167 : : #endif // LONG_MAX
168 : :
169 : : // Marsaglia's Birthday Spacings, t = 3, r = 0
170 : : stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
171 : : sres_Poisson, sres_CreatePoisson,
172 : : sres_DeletePoisson,
173 : : long, long, int, long, int, int > > >
174 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Birthday Spacings t=3 r=0"},
175 [ - - ][ - - ]: 0 : 5L, 20L * MILLION, 0, 2097152L, 3, 1 );
[ - - ][ - - ]
[ - - ]
176 : :
177 : : // Marsaglia's Birthday Spacings, t = 4, r = 0
178 : : stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
179 : : sres_Poisson, sres_CreatePoisson,
180 : : sres_DeletePoisson,
181 : : long, long, int, long, int, int > > >
182 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Birthday Spacings t=4 r=0"},
183 [ - - ][ - - ]: 0 : 5L, 20L * MILLION, 0, 65536L, 4, 1 );
[ - - ][ - - ]
[ - - ]
184 : :
185 : : // Marsaglia's Birthday Spacings, t = 7, r = 0
186 : : stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
187 : : sres_Poisson, sres_CreatePoisson,
188 : : sres_DeletePoisson,
189 : : long, long, int, long, int, int > > >
190 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Birthday Spacings t=7 r=0"},
191 [ - - ][ - - ]: 0 : 3L, 20L * MILLION, 0, 512L, 7, 1 );
[ - - ][ - - ]
[ - - ]
192 : :
193 : : // Marsaglia's Birthday Spacings, t = 7, r = 7
194 : : stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
195 : : sres_Poisson, sres_CreatePoisson,
196 : : sres_DeletePoisson,
197 : : long, long, int, long, int, int > > >
198 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Birthday Spacings t=7 r=7"},
199 [ - - ][ - - ]: 0 : 3L, 20L * MILLION, 7, 512L, 7, 1 );
[ - - ][ - - ]
[ - - ]
200 : :
201 : : // Marsaglia's Birthday Spacings, t = 8, r = 14
202 : : stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
203 : : sres_Poisson, sres_CreatePoisson,
204 : : sres_DeletePoisson,
205 : : long, long, int, long, int, int > > >
206 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Birthday Spacings t=8 r=14"},
207 [ - - ][ - - ]: 0 : 3L, 20L * MILLION, 14, 256L, 8, 1 );
[ - - ][ - - ]
[ - - ]
208 : :
209 : : // Marsaglia's Birthday Spacings, t = 8, r = 22
210 : : stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
211 : : sres_Poisson, sres_CreatePoisson,
212 : : sres_DeletePoisson,
213 : : long, long, int, long, int, int > > >
214 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Birthday Spacings t=8 r=22"},
215 [ - - ][ - - ]: 0 : 3L, 20L * MILLION, 22, 256L, 8, 1 );
[ - - ][ - - ]
[ - - ]
216 : :
217 : : #else // USE_LONGLONG
218 : :
219 : : // Marsaglia's Birthday Spacings, t = 2, r = 0
220 : : stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
221 : : sres_Poisson, sres_CreatePoisson,
222 : : sres_DeletePoisson,
223 : : long, long, int, long, int, int > > >
224 : : ( proxy, tests, rng, gen, {"Birthday Spacings t=2 r=0"},
225 : : 200L, 4L * MILLION / 10, 0, 67108864L, 2, 1 );
226 : :
227 : : // Marsaglia's Birthday Spacings, t = 3, r = 0
228 : : stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
229 : : sres_Poisson, sres_CreatePoisson,
230 : : sres_DeletePoisson,
231 : : long, long, int, long, int, int > > >
232 : : ( proxy, tests, rng, gen, {"Birthday Spacings t=3 r=0"},
233 : : 100L, 4L * MILLION / 10, 0, 131072L, 3, 1 );
234 : :
235 : : // Marsaglia's Birthday Spacings, t = 4, r = 0
236 : : stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
237 : : sres_Poisson, sres_CreatePoisson,
238 : : sres_DeletePoisson,
239 : : long, long, int, long, int, int > > >
240 : : ( proxy, tests, rng, gen, {"Birthday Spacings t=4 r=0"},
241 : : 200L, 4L * MILLION / 10, 0, 1024L * 8, 4, 1 );
242 : :
243 : : // Marsaglia's Birthday Spacings, t = 13, r = 0
244 : : stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
245 : : sres_Poisson, sres_CreatePoisson,
246 : : sres_DeletePoisson,
247 : : long, long, int, long, int, int > > >
248 : : ( proxy, tests, rng, gen, {"Birthday Spacings t=13 r=0"},
249 : : 100L, 4L * MILLION / 10, 0, 16L, 13, 1 );
250 : :
251 : : // Marsaglia's Birthday Spacings, t = 13, r = 10
252 : : stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
253 : : sres_Poisson, sres_CreatePoisson,
254 : : sres_DeletePoisson,
255 : : long, long, int, long, int, int > > >
256 : : ( proxy, tests, rng, gen, {"Birthday Spacings t=13 r=10"},
257 : : 100L, 4L * MILLION / 10, 10, 16L, 13, 1 );
258 : :
259 : : // Marsaglia's Birthday Spacings, t = 13, r = 20
260 : : stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
261 : : sres_Poisson, sres_CreatePoisson,
262 : : sres_DeletePoisson,
263 : : long, long, int, long, int, int > > >
264 : : ( proxy, tests, rng, gen, {"Birthday Spacings t=13 r=20"},
265 : : 100L, 4L * MILLION / 10, 20, 16L, 13, 1 );
266 : :
267 : : // Marsaglia's Birthday Spacings, t = 13, r = 26
268 : : stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
269 : : sres_Poisson, sres_CreatePoisson,
270 : : sres_DeletePoisson,
271 : : long, long, int, long, int, int > > >
272 : : ( proxy, tests, rng, gen, rng, {"Birthday Spacings t=13 r=26"},
273 : : 100L, 4L * MILLION / 10, 26, 16L, 13, 1 );
274 : :
275 : : #endif // USE_LONGLONG
276 : :
277 : : // Close Pairs, t = 2
278 : : stack.add< TestU01< TestU01Props< tag::ClosePairs, CProxy_TestU01Suite,
279 : : snpair_Res, snpair_CreateRes,
280 : : snpair_DeleteRes,
281 : : long, long, int, int, int, int, int > > >
282 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Close Pairs NP t=2",
283 : : "Close Pairs mNP t=2",
284 : : "Close Pairs mNP1 t=2",
285 : : "Close Pairs mNP2 t=2",
286 : : "Close Pairs mNJumps t=2"},
287 [ - - ][ - - ]: 0 : 10L, 2L * MILLION, 0, 2, 0, 30, 0 );
[ - - ][ - - ]
[ - - ]
288 : :
289 : : // Close Pairs, t = 3
290 : : stack.add< TestU01< TestU01Props< tag::ClosePairs, CProxy_TestU01Suite,
291 : : snpair_Res, snpair_CreateRes,
292 : : snpair_DeleteRes,
293 : : long, long, int, int, int, int, int > > >
294 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Close Pairs NP t=3",
295 : : "Close Pairs mNP t=3",
296 : : "Close Pairs mNP1 t=3",
297 : : "Close Pairs mNP2 t=3",
298 : : "Close Pairs mNJumps t=3",
299 : : "Close Pairs mNP2S t=3"},
300 [ - - ][ - - ]: 0 : 10L, 2L * MILLION, 0, 3, 0, 30, 1 );
[ - - ][ - - ]
[ - - ]
301 : :
302 : : // Close Pairs, t = 7
303 : : stack.add< TestU01< TestU01Props< tag::ClosePairs, CProxy_TestU01Suite,
304 : : snpair_Res, snpair_CreateRes,
305 : : snpair_DeleteRes,
306 : : long, long, int, int, int, int, int > > >
307 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Close Pairs NP t=3",
308 : : "Close Pairs mNP t=3",
309 : : "Close Pairs mNP1 t=3",
310 : : "Close Pairs mNP2 t=3",
311 : : "Close Pairs mNJumps t=3",
312 : : "Close Pairs mNP2S t=3"},
313 [ - - ][ - - ]: 0 : 5L, 2L * MILLION, 0, 7, 0, 30, 1 );
[ - - ][ - - ]
[ - - ]
314 : :
315 : : // Close Pairs Bit Match, t = 2
316 : : stack.add< TestU01< TestU01Props< tag::ClosePairsBitMatch, CProxy_TestU01Suite,
317 : : snpair_Res, snpair_CreateRes,
318 : : snpair_DeleteRes,
319 : : long, long, int, int > > >
320 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Close Pairs Bit Match t=2"},
321 [ - - ][ - - ]: 0 : 4L, 4L * MILLION, 0, 2 );
[ - - ][ - - ]
[ - - ]
322 : :
323 : : // Close Pairs Bit Match, t = 4
324 : : stack.add< TestU01< TestU01Props< tag::ClosePairsBitMatch, CProxy_TestU01Suite,
325 : : snpair_Res, snpair_CreateRes,
326 : : snpair_DeleteRes,
327 : : long, long, int, int > > >
328 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Close Pairs Bit Match t=4"},
329 [ - - ][ - - ]: 0 : 2L, 4L * MILLION, 0, 4 );
[ - - ][ - - ]
[ - - ]
330 : :
331 : : // Knuth's Simple Poker, d = 16, r = 0
332 : : stack.add< TestU01< TestU01Props< tag::SimplePoker, CProxy_TestU01Suite,
333 : : sres_Chi2, sres_CreateChi2,
334 : : sres_DeleteChi2,
335 : : long, long, int, int, int > > >
336 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Simplified Poker d=16 r=0"},
337 [ - - ][ - - ]: 0 : 1L, 40L * MILLION, 0, 16, 16 );
[ - - ][ - - ]
[ - - ]
338 : :
339 : : // Knuth's Simple Poker, d = 16, r = 26
340 : : stack.add< TestU01< TestU01Props< tag::SimplePoker, CProxy_TestU01Suite,
341 : : sres_Chi2, sres_CreateChi2,
342 : : sres_DeleteChi2,
343 : : long, long, int, int, int > > >
344 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Simplified Poker d=16 r=26"},
345 [ - - ][ - - ]: 0 : 1L, 40L * MILLION, 26, 16, 16 );
[ - - ][ - - ]
[ - - ]
346 : :
347 : : // Knuth's Simple Poker, d = 64, r = 0
348 : : stack.add< TestU01< TestU01Props< tag::SimplePoker, CProxy_TestU01Suite,
349 : : sres_Chi2, sres_CreateChi2,
350 : : sres_DeleteChi2,
351 : : long, long, int, int, int > > >
352 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Simplified Poker d=64 r=0"},
353 [ - - ][ - - ]: 0 : 1L, 10L * MILLION, 0, 64, 64 );
[ - - ][ - - ]
[ - - ]
354 : :
355 : : // Knuth's Simple Poker, d = 64, r = 24
356 : : stack.add< TestU01< TestU01Props< tag::SimplePoker, CProxy_TestU01Suite,
357 : : sres_Chi2, sres_CreateChi2,
358 : : sres_DeleteChi2,
359 : : long, long, int, int, int > > >
360 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Simplified Poker d=64 r=24"},
361 [ - - ][ - - ]: 0 : 1L, 10L * MILLION, 24, 64, 64 );
[ - - ][ - - ]
[ - - ]
362 : :
363 : : // Knuth's Coupon Collector, d = 4, r = 0
364 : : stack.add< TestU01< TestU01Props< tag::CouponCollector, CProxy_TestU01Suite,
365 : : sres_Chi2, sres_CreateChi2,
366 : : sres_DeleteChi2,
367 : : long, long, int, int > > >
368 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Coupon Collector d=4 r=0"},
369 [ - - ][ - - ]: 0 : 1L, 40L * MILLION, 0, 4 );
[ - - ][ - - ]
[ - - ]
370 : :
371 : : // Knuth's Coupon Collector, d = 4, r = 28
372 : : stack.add< TestU01< TestU01Props< tag::CouponCollector, CProxy_TestU01Suite,
373 : : sres_Chi2, sres_CreateChi2,
374 : : sres_DeleteChi2,
375 : : long, long, int, int > > >
376 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Coupon Collector d=4 r=28"},
377 [ - - ][ - - ]: 0 : 1L, 40L * MILLION, 28, 4 );
[ - - ][ - - ]
[ - - ]
378 : :
379 : : // Knuth's Coupon Collector, d = 16, r = 0
380 : : stack.add< TestU01< TestU01Props< tag::CouponCollector, CProxy_TestU01Suite,
381 : : sres_Chi2, sres_CreateChi2,
382 : : sres_DeleteChi2,
383 : : long, long, int, int > > >
384 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Coupon Collector d=16 r=0"},
385 [ - - ][ - - ]: 0 : 1L, 10L * MILLION, 0, 16 );
[ - - ][ - - ]
[ - - ]
386 : :
387 : : // Knuth's Coupon Collector, d = 16, r = 26
388 : : stack.add< TestU01< TestU01Props< tag::CouponCollector, CProxy_TestU01Suite,
389 : : sres_Chi2, sres_CreateChi2,
390 : : sres_DeleteChi2,
391 : : long, long, int, int > > >
392 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Coupon Collector d=16 r=26"},
393 [ - - ][ - - ]: 0 : 1L, 10L * MILLION, 26, 16 );
[ - - ][ - - ]
[ - - ]
394 : :
395 : : // Knuth's Gap, r = 0
396 : : stack.add< TestU01< TestU01Props< tag::Gap, CProxy_TestU01Suite,
397 : : sres_Chi2, sres_CreateChi2,
398 : : sres_DeleteChi2,
399 : : long, long, int, double, double > > >
400 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Gap r=0"},
401 [ - - ][ - - ]: 0 : 1L, 100L * MILLION, 0, 0.0, 0.125 );
[ - - ][ - - ]
[ - - ]
402 : :
403 : : // Knuth's Gap, r = 27
404 : : stack.add< TestU01< TestU01Props< tag::Gap, CProxy_TestU01Suite,
405 : : sres_Chi2, sres_CreateChi2,
406 : : sres_DeleteChi2,
407 : : long, long, int, double, double > > >
408 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Gap r=27"},
409 [ - - ][ - - ]: 0 : 1L, 100L * MILLION, 27, 0.0, 0.125 );
[ - - ][ - - ]
[ - - ]
410 : :
411 : : // Knuth's Gap, r = 0, n = 5e+6
412 : : stack.add< TestU01< TestU01Props< tag::Gap, CProxy_TestU01Suite,
413 : : sres_Chi2, sres_CreateChi2,
414 : : sres_DeleteChi2,
415 : : long, long, int, double, double > > >
416 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Gap r=0 n=5M"},
417 [ - - ][ - - ]: 0 : 1L, 5L * MILLION, 0, 0.0, 1.0/256.0 );
[ - - ][ - - ]
[ - - ]
418 : :
419 : : // Knuth's Gap, r = 22, n = 5e+6
420 : : stack.add< TestU01< TestU01Props< tag::Gap, CProxy_TestU01Suite,
421 : : sres_Chi2, sres_CreateChi2,
422 : : sres_DeleteChi2,
423 : : long, long, int, double, double > > >
424 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Gap r=22 n=5M"},
425 [ - - ][ - - ]: 0 : 1L, 5L * MILLION, 22, 0.0, 1.0/256.0 );
[ - - ][ - - ]
[ - - ]
426 : :
427 : : // Knuth's Run, r = 0
428 : : stack.add< TestU01< TestU01Props< tag::Run, CProxy_TestU01Suite,
429 : : sres_Chi2, sres_CreateChi2,
430 : : sres_DeleteChi2,
431 : : long, long, int, int > > >
432 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Run r=0"},
433 [ - - ][ - - ]: 0 : 1L, 500L * MILLION, 0, 1 );
[ - - ][ - - ]
[ - - ]
434 : :
435 : : // Knuth's Run, r = 15
436 : : stack.add< TestU01< TestU01Props< tag::Run, CProxy_TestU01Suite,
437 : : sres_Chi2, sres_CreateChi2,
438 : : sres_DeleteChi2,
439 : : long, long, int, int > > >
440 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Run r=15"},
441 [ - - ][ - - ]: 0 : 1L, 500L * MILLION, 15, 0 );
[ - - ][ - - ]
[ - - ]
442 : :
443 : : // Knuth's Permutation, r = 0
444 : : stack.add< TestU01< TestU01Props< tag::Permutation, CProxy_TestU01Suite,
445 : : sres_Chi2, sres_CreateChi2,
446 : : sres_DeleteChi2,
447 : : long, long, int, int > > >
448 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Permutation r=0"},
449 [ - - ][ - - ]: 0 : 1L, 50L * MILLION, 0, 10 );
[ - - ][ - - ]
[ - - ]
450 : :
451 : : // Knuth's Permutation, r = 15
452 : : stack.add< TestU01< TestU01Props< tag::Permutation, CProxy_TestU01Suite,
453 : : sres_Chi2, sres_CreateChi2,
454 : : sres_DeleteChi2,
455 : : long, long, int, int > > >
456 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Permutation r=15"},
457 [ - - ][ - - ]: 0 : 1L, 50L * MILLION, 15, 10 );
[ - - ][ - - ]
[ - - ]
458 : :
459 : : // Knuth's Collision with permutations, r = 0
460 : : stack.add< TestU01< TestU01Props< tag::CollisionPermut, CProxy_TestU01Suite,
461 : : sknuth_Res2, sknuth_CreateRes2,
462 : : sknuth_DeleteRes2,
463 : : long, long, int, int > > >
464 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Collision w. Permutations r=0"},
465 [ - - ][ - - ]: 0 : 5L, 10L * MILLION, 0, 13 );
[ - - ][ - - ]
[ - - ]
466 : :
467 : : // Knuth's Collision with permutations, r = 15
468 : : stack.add< TestU01< TestU01Props< tag::CollisionPermut, CProxy_TestU01Suite,
469 : : sknuth_Res2, sknuth_CreateRes2,
470 : : sknuth_DeleteRes2,
471 : : long, long, int, int > > >
472 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Collision w. Permutations r=15"},
473 [ - - ][ - - ]: 0 : 5L, 10L * MILLION, 15, 13 );
[ - - ][ - - ]
[ - - ]
474 : :
475 : : // Knuth's Maximum-of-t, t = 5
476 : : stack.add< TestU01< TestU01Props< tag::MaxOft, CProxy_TestU01Suite,
477 : : sknuth_Res1, sknuth_CreateRes1,
478 : : sknuth_DeleteRes1,
479 : : long, long, int, int, int, int, int > > >
480 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Maximum-of-t t=5",
481 : : "Maximum-of-t Anderson-Darling t=5"},
482 : 0 : 10L, 10L * MILLION, 0, static_cast<int>(MILLION / 10), 5, gofw_Sum,
483 [ - - ][ - - ]: 0 : gofw_AD );
[ - - ][ - - ]
[ - - ]
484 : :
485 : : // Knuth's Maximum-of-t, t = 10
486 : : stack.add< TestU01< TestU01Props< tag::MaxOft, CProxy_TestU01Suite,
487 : : sknuth_Res1, sknuth_CreateRes1,
488 : : sknuth_DeleteRes1,
489 : : long, long, int, int, int, int, int > > >
490 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Maximum-of-t t=10",
491 : : "Maximum-of-t Anderson-Darling t=10"},
492 : 0 : 5L, 10L * MILLION, 0, static_cast<int>(MILLION / 10), 10, gofw_Sum,
493 [ - - ][ - - ]: 0 : gofw_AD );
[ - - ][ - - ]
[ - - ]
494 : :
495 : : // Knuth's Maximum-of-t, t = 20
496 : : stack.add< TestU01< TestU01Props< tag::MaxOft, CProxy_TestU01Suite,
497 : : sknuth_Res1, sknuth_CreateRes1,
498 : : sknuth_DeleteRes1,
499 : : long, long, int, int, int, int, int > > >
500 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Maximum-of-t t=20",
501 : : "Maximum-of-t Anderson-Darling t=20"},
502 : 0 : 1L, 10L * MILLION, 0, static_cast<int>(MILLION / 10), 20,
503 [ - - ][ - - ]: 0 : gofw_Mean, gofw_Mean );
[ - - ][ - - ]
[ - - ]
504 : :
505 : : // Knuth's Maximum-of-t, t = 30
506 : : stack.add< TestU01< TestU01Props< tag::MaxOft, CProxy_TestU01Suite,
507 : : sknuth_Res1, sknuth_CreateRes1,
508 : : sknuth_DeleteRes1,
509 : : long, long, int, int, int, int, int > > >
510 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Maximum-of-t t=30",
511 : : "Maximum-of-t Anderson-Darling t=30"},
512 : 0 : 1L, 10L * MILLION, 0, static_cast<int>(MILLION / 10), 30,
513 [ - - ][ - - ]: 0 : gofw_Mean, gofw_Mean );
[ - - ][ - - ]
[ - - ]
514 : :
515 : : // Sample Products, t = 10
516 : : stack.add< TestU01< TestU01Props< tag::SampleProd, CProxy_TestU01Suite,
517 : : sres_Basic, sres_CreateBasic,
518 : : sres_DeleteBasic,
519 : : long, long, int, int > > >
520 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Sample Products t=10"},
521 [ - - ][ - - ]: 0 : 1L, 10L * MILLION, 0, 10 );
[ - - ][ - - ]
[ - - ]
522 : :
523 : : // Sample Products, t = 30
524 : : stack. add< TestU01< TestU01Props< tag::SampleProd, CProxy_TestU01Suite,
525 : : sres_Basic, sres_CreateBasic,
526 : : sres_DeleteBasic,
527 : : long, long, int, int > > >
528 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Sample Products t=30"},
529 [ - - ][ - - ]: 0 : 1L, 10L * MILLION, 0, 30 );
[ - - ][ - - ]
[ - - ]
530 : :
531 : : // Sample Mean
532 : : stack.add< TestU01< TestU01Props< tag::SampleMean, CProxy_TestU01Suite,
533 : : sres_Basic, sres_CreateBasic,
534 : : sres_DeleteBasic,
535 : : long, long, int > > >
536 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Sample Mean"},
537 [ - - ][ - - ]: 0 : 10L * MILLION, 20L, 0 );
[ - - ][ - - ]
[ - - ]
538 : :
539 : : // Sample Autorrelation
540 : : stack.add< TestU01< TestU01Props< tag::SampleCorr, CProxy_TestU01Suite,
541 : : sres_Basic, sres_CreateBasic,
542 : : sres_DeleteBasic,
543 : : long, long, int, int > > >
544 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Sample Autorrelation"},
545 [ - - ][ - - ]: 0 : 1L, 500L * MILLION, 0, 1 );
[ - - ][ - - ]
[ - - ]
546 : :
547 : : // Maurer's "universal" test, r = 0
548 : : stack.add< TestU01< TestU01Props< tag::AppearanceSpacings, CProxy_TestU01Suite,
549 : : sres_Basic, sres_CreateBasic,
550 : : sres_DeleteBasic,
551 : : long, long, long, int, int, int > > >
552 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Appearance Spacings r=0"},
553 [ - - ][ - - ]: 0 : 1L, 10L * MILLION, 400L * MILLION, 0, 30, 15 );
[ - - ][ - - ]
[ - - ]
554 : :
555 : : // Maurer's "universal" test, r = 20
556 : : stack.add< TestU01< TestU01Props< tag::AppearanceSpacings, CProxy_TestU01Suite,
557 : : sres_Basic, sres_CreateBasic,
558 : : sres_DeleteBasic,
559 : : long, long, long, int, int, int > > >
560 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Appearance Spacings r=20"},
561 [ - - ][ - - ]: 0 : 1L, 10L * MILLION, 100L * MILLION, 20, 10, 15 );
[ - - ][ - - ]
[ - - ]
562 : :
563 : : // Weight Distribution, r = 0
564 : : stack.add< TestU01< TestU01Props< tag::WeightDistrib, CProxy_TestU01Suite,
565 : : sres_Chi2, sres_CreateChi2,
566 : : sres_DeleteChi2,
567 : : long, long, int, long, double, double > > >
568 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Weight Distribution r=0"},
569 [ - - ][ - - ]: 0 : 1L, 2L * MILLION, 0, 256L, 0.0, 0.125 );
[ - - ][ - - ]
[ - - ]
570 : :
571 : : // Weight Distribution, r = 8
572 : : stack.add< TestU01< TestU01Props< tag::WeightDistrib, CProxy_TestU01Suite,
573 : : sres_Chi2, sres_CreateChi2, sres_DeleteChi2,
574 : : long, long, int, long, double, double > > >
575 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Weight Distribution r=8"},
576 [ - - ][ - - ]: 0 : 1L, 2L * MILLION, 8, 256L, 0.0, 0.125 );
[ - - ][ - - ]
[ - - ]
577 : :
578 : : // Weight Distribution, r = 16
579 : : stack.add< TestU01< TestU01Props< tag::WeightDistrib, CProxy_TestU01Suite,
580 : : sres_Chi2, sres_CreateChi2,
581 : : sres_DeleteChi2,
582 : : long, long, int, long, double, double > > >
583 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Weight Distribution r=16"},
584 [ - - ][ - - ]: 0 : 1L, 2L * MILLION, 16, 256L, 0.0, 0.125 );
[ - - ][ - - ]
[ - - ]
585 : :
586 : : // Weight Distribution, r = 24
587 : : stack.add< TestU01< TestU01Props< tag::WeightDistrib, CProxy_TestU01Suite,
588 : : sres_Chi2, sres_CreateChi2,
589 : : sres_DeleteChi2,
590 : : long, long, int, long, double, double > > >
591 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Weight Distribution r=24"},
592 [ - - ][ - - ]: 0 : 1L, 2L * MILLION, 24, 256L, 0.0, 0.125 );
[ - - ][ - - ]
[ - - ]
593 : :
594 : : // Sum Collector
595 : : stack.add< TestU01< TestU01Props< tag::SumCollector, CProxy_TestU01Suite,
596 : : sres_Chi2, sres_CreateChi2,
597 : : sres_DeleteChi2,
598 : : long, long, int, double > > >
599 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Sum Collector"},
600 [ - - ][ - - ]: 0 : 1L, 20L * MILLION, 0, 10.0 );
[ - - ][ - - ]
[ - - ]
601 : :
602 : : // Marsaglia's Matrix Rank, 60 x 60, r = 0
603 : : stack.add< TestU01< TestU01Props< tag::MatrixRank, CProxy_TestU01Suite,
604 : : sres_Chi2, sres_CreateChi2,
605 : : sres_DeleteChi2,
606 : : long, long, int, int, int, int > > >
607 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Matrix Rank 60x60 r=0"},
608 [ - - ][ - - ]: 0 : 1L, static_cast<long>(MILLION), 0, 30, 2 * 30, 2 * 30 );
[ - - ][ - - ]
[ - - ]
609 : :
610 : : // Marsaglia's Matrix Rank, 60 x 60, r = 20
611 : : stack.add< TestU01< TestU01Props< tag::MatrixRank, CProxy_TestU01Suite,
612 : : sres_Chi2, sres_CreateChi2,
613 : : sres_DeleteChi2,
614 : : long, long, int, int, int, int > > >
615 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Matrix Rank 60x60 r=20"},
616 [ - - ][ - - ]: 0 : 1L, static_cast<long>(MILLION), 20, 10, 2 * 30, 2 * 30 );
[ - - ][ - - ]
[ - - ]
617 : :
618 : : // Marsaglia's Matrix Rank, 300 x 300, r = 0
619 : : stack.add< TestU01< TestU01Props< tag::MatrixRank, CProxy_TestU01Suite,
620 : : sres_Chi2, sres_CreateChi2,
621 : : sres_DeleteChi2,
622 : : long, long, int, int, int, int > > >
623 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Matrix Rank 300x300 r=0"},
624 [ - - ][ - - ]: 0 : 1L, 50L * THOUSAND, 0, 30, 10 * 30, 10 * 30 );
[ - - ][ - - ]
[ - - ]
625 : :
626 : : // Marsaglia's Matrix Rank, 300 x 300, r = 20
627 : : stack.add< TestU01< TestU01Props< tag::MatrixRank, CProxy_TestU01Suite,
628 : : sres_Chi2, sres_CreateChi2,
629 : : sres_DeleteChi2,
630 : : long, long, int, int, int, int > > >
631 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Matrix Rank 300x300 r=20"},
632 [ - - ][ - - ]: 0 : 1L, 50L * THOUSAND, 20, 10, 10 * 30, 10 * 30 );
[ - - ][ - - ]
[ - - ]
633 : :
634 : : // Marsaglia's Matrix Rank, 1200 x 1200, r = 0
635 : : stack.add< TestU01< TestU01Props< tag::MatrixRank, CProxy_TestU01Suite,
636 : : sres_Chi2, sres_CreateChi2,
637 : : sres_DeleteChi2,
638 : : long, long, int, int, int, int > > >
639 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Matrix Rank 1200x1200 r=0"},
640 [ - - ][ - - ]: 0 : 1L, 2L * THOUSAND, 0, 30, 40 * 30, 40 * 30 );
[ - - ][ - - ]
[ - - ]
641 : :
642 : : // Marsaglia's Matrix Rank, 1200 x 1200, r = 20
643 : : stack.add< TestU01< TestU01Props< tag::MatrixRank, CProxy_TestU01Suite,
644 : : sres_Chi2, sres_CreateChi2,
645 : : sres_DeleteChi2,
646 : : long, long, int, int, int, int > > >
647 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Matrix Rank 1200x1200 r=20"},
648 [ - - ][ - - ]: 0 : 1L, 2L * THOUSAND, 20, 10, 40 * 30, 40 * 30 );
[ - - ][ - - ]
[ - - ]
649 : :
650 : : // Marsaglia's Modified Savir
651 : : stack.add< TestU01< TestU01Props< tag::Savir2, CProxy_TestU01Suite,
652 : : sres_Chi2, sres_CreateChi2,
653 : : sres_DeleteChi2,
654 : : long, long, int, long, int > > >
655 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Savir2"},
656 [ - - ][ - - ]: 0 : 1L, 20L * MILLION, 0, 1024L * 1024L, 30 );
[ - - ][ - - ]
[ - - ]
657 : :
658 : : // Marsaglia's greatest common divisor, r = 0
659 : : stack.add< TestU01< TestU01Props< tag::GCD, CProxy_TestU01Suite,
660 : : smarsa_Res2, smarsa_CreateRes2,
661 : : smarsa_DeleteRes2,
662 : : long, long, int, int > > >
663 [ - - ]: 0 : ( proxy, tests, rng, gen, {"GCD r=0"},
664 [ - - ][ - - ]: 0 : 1L, 100L * MILLION, 0, 30 );
[ - - ][ - - ]
[ - - ]
665 : :
666 : : // Marsaglia's greatest common divisor, r = 10
667 : : stack.add< TestU01< TestU01Props< tag::GCD, CProxy_TestU01Suite,
668 : : smarsa_Res2, smarsa_CreateRes2,
669 : : smarsa_DeleteRes2,
670 : : long, long, int, int > > >
671 [ - - ]: 0 : ( proxy, tests, rng, gen, {"GCD r=10"},
672 [ - - ][ - - ]: 0 : 1L, 40L * MILLION, 10, 20 );
[ - - ][ - - ]
[ - - ]
673 : :
674 : : // Random Walk 1, L = 90, r = 0
675 : : stack.add< TestU01< TestU01Props< tag::RandomWalk1, CProxy_TestU01Suite,
676 : : swalk_Res, swalk_CreateRes,
677 : : swalk_DeleteRes,
678 : : long, long, int, int, long, long > > >
679 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Random Walk 1 Stat H L=90 r=0",
680 : : "Random Walk 1 Stat M L=90 r=0",
681 : : "Random Walk 1 Stat J L=90 r=0",
682 : : "Random Walk 1 Stat R L=90 r=0",
683 : : "Random Walk 1 Stat C L=90 r=0"},
684 [ - - ][ - - ]: 0 : 1L, 50L * MILLION, 0, 30, 90L, 90L );
[ - - ][ - - ]
[ - - ]
685 : :
686 : : // Random Walk 1, L = 90, r = 0
687 : : stack.add< TestU01< TestU01Props< tag::RandomWalk1, CProxy_TestU01Suite,
688 : : swalk_Res, swalk_CreateRes,
689 : : swalk_DeleteRes,
690 : : long, long, int, int, long, long > > >
691 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Random Walk 1 Stat H L=90 r=20",
692 : : "Random Walk 1 Stat M L=90 r=20",
693 : : "Random Walk 1 Stat J L=90 r=20",
694 : : "Random Walk 1 Stat R L=90 r=20",
695 : : "Random Walk 1 Stat C L=90 r=20"},
696 [ - - ][ - - ]: 0 : 1L, 10L * MILLION, 20, 10, 90L, 90L );
[ - - ][ - - ]
[ - - ]
697 : :
698 : : // Random Walk 1, L = 1000, r = 0
699 : : stack.add< TestU01< TestU01Props< tag::RandomWalk1, CProxy_TestU01Suite,
700 : : swalk_Res, swalk_CreateRes,
701 : : swalk_DeleteRes,
702 : : long, long, int, int, long, long > > >
703 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Random Walk 1 Stat H L=1000 r=0",
704 : : "Random Walk 1 Stat M L=1000 r=0",
705 : : "Random Walk 1 Stat J L=1000 r=0",
706 : : "Random Walk 1 Stat R L=1000 r=0",
707 : : "Random Walk 1 Stat C L=1000 r=0"},
708 [ - - ][ - - ]: 0 : 1L, 5L * MILLION, 0, 30, 1000L, 1000L );
[ - - ][ - - ]
[ - - ]
709 : :
710 : : // Random Walk 1, L = 1000, r = 20
711 : : stack.add< TestU01< TestU01Props< tag::RandomWalk1, CProxy_TestU01Suite,
712 : : swalk_Res, swalk_CreateRes,
713 : : swalk_DeleteRes,
714 : : long, long, int, int, long, long > > >
715 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Random Walk 1 Stat H L=1000 r=20",
716 : : "Random Walk 1 Stat M L=1000 r=20",
717 : : "Random Walk 1 Stat J L=1000 r=20",
718 : : "Random Walk 1 Stat R L=1000 r=20",
719 : : "Random Walk 1 Stat C L=1000 r=20"},
720 [ - - ][ - - ]: 0 : 1L, static_cast<long>(MILLION), 20, 10, 1000L, 1000L );
[ - - ][ - - ]
[ - - ]
721 : :
722 : : // Random Walk 1, L = 10000, r = 0
723 : : stack.add< TestU01< TestU01Props< tag::RandomWalk1, CProxy_TestU01Suite,
724 : : swalk_Res, swalk_CreateRes,
725 : : swalk_DeleteRes,
726 : : long, long, int, int, long, long > > >
727 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Random Walk 1 Stat H L=10000 r=0",
728 : : "Random Walk 1 Stat M L=10000 r=0",
729 : : "Random Walk 1 Stat J L=10000 r=0",
730 : : "Random Walk 1 Stat R L=10000 r=0",
731 : : "Random Walk 1 Stat C L=10000 r=0"},
732 [ - - ][ - - ]: 0 : 1L, MILLION / 2, 0, 30, 10000L, 10000L );
[ - - ][ - - ]
[ - - ]
733 : :
734 : : // Random Walk 1, L = 10000, r = 20
735 : : stack.add< TestU01< TestU01Props< tag::RandomWalk1, CProxy_TestU01Suite,
736 : : swalk_Res, swalk_CreateRes,
737 : : swalk_DeleteRes,
738 : : long, long, int, int, long, long > > >
739 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Random Walk 1 Stat H L=10000 r=20",
740 : : "Random Walk 1 Stat M L=10000 r=20",
741 : : "Random Walk 1 Stat J L=10000 r=20",
742 : : "Random Walk 1 Stat R L=10000 r=20",
743 : : "Random Walk 1 Stat C L=10000 r=20"},
744 [ - - ][ - - ]: 0 : 1L, MILLION / 10, 20, 10, 10000L, 10000L );
[ - - ][ - - ]
[ - - ]
745 : :
746 : : // Linear Complexity, r = 0
747 : : stack.add< TestU01< TestU01Props< tag::LinearComp, CProxy_TestU01Suite,
748 : : scomp_Res, scomp_CreateRes,
749 : : scomp_DeleteRes,
750 : : long, long, int, int > > >
751 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Linear Complexity Jump r=0",
752 : : "Linear Complexity Size r=0"},
753 [ - - ][ - - ]: 0 : 1L, 120L * THOUSAND, 0, 1 );
[ - - ][ - - ]
[ - - ]
754 : :
755 : : // Linear Complexity, r = 29
756 : : stack.add< TestU01< TestU01Props< tag::LinearComp, CProxy_TestU01Suite,
757 : : scomp_Res, scomp_CreateRes,
758 : : scomp_DeleteRes,
759 : : long, long, int, int > > >
760 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Linear Complexity Jump r=29",
761 : : "Linear Complexity Size r=29"},
762 [ - - ][ - - ]: 0 : 1L, 120L * THOUSAND, 29, 1 );
[ - - ][ - - ]
[ - - ]
763 : :
764 : : // Lempel-Ziv Compressibility
765 : : stack.add< TestU01< TestU01Props< tag::LempelZiv, CProxy_TestU01Suite,
766 : : sres_Basic, sres_CreateBasic,
767 : : sres_DeleteBasic,
768 : : long, int, int, int > > >
769 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Lempel-Ziv Compressibility"},
770 [ - - ][ - - ]: 0 : 10L, 25, 0, 30 );
[ - - ][ - - ]
[ - - ]
771 : :
772 : : // Fourier3, r = 0
773 : : stack.add< TestU01< TestU01Props< tag::Fourier3, CProxy_TestU01Suite,
774 : : sspectral_Res, sspectral_CreateRes,
775 : : sspectral_DeleteRes,
776 : : long, int, int, int > > >
777 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Fourier 3 r=0"},
778 [ - - ][ - - ]: 0 : 50L * THOUSAND, 14, 0, 30 );
[ - - ][ - - ]
[ - - ]
779 : :
780 : : // Fourier3, r = 20
781 : : stack.add< TestU01< TestU01Props< tag::Fourier3, CProxy_TestU01Suite,
782 : : sspectral_Res, sspectral_CreateRes,
783 : : sspectral_DeleteRes,
784 : : long, int, int, int > > >
785 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Fourier 3 r=20"},
786 [ - - ][ - - ]: 0 : 50L * THOUSAND, 14, 20, 10 );
[ - - ][ - - ]
[ - - ]
787 : :
788 : : // Longest Head Run, r = 0
789 : : stack.add< TestU01< TestU01Props< tag::LongestHeadRun, CProxy_TestU01Suite,
790 : : sstring_Res2, sstring_CreateRes2,
791 : : sstring_DeleteRes2,
792 : : long, long, int, int, long > > >
793 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Longest Head Run Chi r=0",
794 : : "Longest Head Run Disc r=0"},
795 [ - - ][ - - ]: 0 : 1L, 1000L, 0, 30, 20L + 10L * MILLION );
[ - - ][ - - ]
[ - - ]
796 : :
797 : : // Longest Head Run, r = 20
798 : : stack.add< TestU01< TestU01Props< tag::LongestHeadRun, CProxy_TestU01Suite,
799 : : sstring_Res2, sstring_CreateRes2,
800 : : sstring_DeleteRes2,
801 : : long, long, int, int, long > > >
802 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Longest Head Run Chi r=20",
803 : : "Longest Head Run Disc r=20"},
804 [ - - ][ - - ]: 0 : 1L, 300L, 20, 10, 20L + 10L * MILLION );
[ - - ][ - - ]
[ - - ]
805 : :
806 : : // Periods In Strings, r = 0
807 : : stack.add< TestU01< TestU01Props< tag::PeriodsInStrings, CProxy_TestU01Suite,
808 : : sres_Chi2, sres_CreateChi2,
809 : : sres_DeleteChi2,
810 : : long, long, int, int > > >
811 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Periods In Strings r=0"},
812 [ - - ][ - - ]: 0 : 1L, 300L * MILLION, 0, 30 );
[ - - ][ - - ]
[ - - ]
813 : :
814 : : // Periods In Strings, r = 15
815 : : stack.add< TestU01< TestU01Props< tag::PeriodsInStrings, CProxy_TestU01Suite,
816 : : sres_Chi2, sres_CreateChi2,
817 : : sres_DeleteChi2,
818 : : long, long, int, int > > >
819 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Periods In Strings r=15"},
820 [ - - ][ - - ]: 0 : 1L, 300L * MILLION, 15, 15 );
[ - - ][ - - ]
[ - - ]
821 : :
822 : : // Hamming Weight 2, r = 0
823 : : stack.add< TestU01< TestU01Props< tag::HammingWeight2, CProxy_TestU01Suite,
824 : : sres_Basic, sres_CreateBasic,
825 : : sres_DeleteBasic,
826 : : long, long, int, int, long > > >
827 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Hamming Weight 2 r=0"},
828 [ - - ][ - - ]: 0 : 100L, 100L * MILLION, 0, 30, static_cast<long>(MILLION) );
[ - - ][ - - ]
[ - - ]
829 : :
830 : : // Hamming Weight 2, r = 20
831 : : stack.add< TestU01< TestU01Props< tag::HammingWeight2, CProxy_TestU01Suite,
832 : : sres_Basic, sres_CreateBasic,
833 : : sres_DeleteBasic,
834 : : long, long, int, int, long > > >
835 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Hamming Weight 2 r=20"},
836 [ - - ][ - - ]: 0 : 30L, 100L * MILLION, 20, 10, static_cast<long>(MILLION) );
[ - - ][ - - ]
[ - - ]
837 : :
838 : : // Hamming Correlation, L = 30
839 : : stack.add< TestU01< TestU01Props< tag::HammingCorr, CProxy_TestU01Suite,
840 : : sstring_Res, sstring_CreateRes,
841 : : sstring_DeleteRes,
842 : : long, long, int, int, int > > >
843 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Hamming Correlation L=30"},
844 [ - - ][ - - ]: 0 : 1L, 500L * MILLION, 0, 30, 30 );
[ - - ][ - - ]
[ - - ]
845 : :
846 : : // Hamming Correlation, L = 300
847 : : stack.add< TestU01< TestU01Props< tag::HammingCorr, CProxy_TestU01Suite,
848 : : sstring_Res, sstring_CreateRes,
849 : : sstring_DeleteRes,
850 : : long, long, int, int, int > > >
851 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Hamming Correlation L=300"},
852 [ - - ][ - - ]: 0 : 1L, 50L * MILLION, 0, 30, 10 * 30 );
[ - - ][ - - ]
[ - - ]
853 : :
854 : : // Hamming Correlation, L = 1200
855 : : stack.add< TestU01< TestU01Props< tag::HammingCorr, CProxy_TestU01Suite,
856 : : sstring_Res, sstring_CreateRes,
857 : : sstring_DeleteRes,
858 : : long, long, int, int, int > > >
859 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Hamming Correlation L=1200"},
860 [ - - ][ - - ]: 0 : 1L, 10L * MILLION, 0, 30, 40 * 30 );
[ - - ][ - - ]
[ - - ]
861 : :
862 : : // Hamming independence, L = 30, r = 0
863 : : stack.add< TestU01< TestU01Props< tag::HammingIndep, CProxy_TestU01Suite,
864 : : sstring_Res, sstring_CreateRes,
865 : : sstring_DeleteRes,
866 : : long, long, int, int, int, int > > >
867 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Hamming Independence L=30 r=0"},
868 [ - - ][ - - ]: 0 : 1L, 300L * MILLION, 0, 30, 30, 0 );
[ - - ][ - - ]
[ - - ]
869 : :
870 : : // Hamming independence, L = 30, r = 20
871 : : stack.add< TestU01< TestU01Props< tag::HammingIndep, CProxy_TestU01Suite,
872 : : sstring_Res, sstring_CreateRes,
873 : : sstring_DeleteRes,
874 : : long, long, int, int, int, int > > >
875 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Hamming Independence L=30 r=20"},
876 [ - - ][ - - ]: 0 : 1L, 100L * MILLION, 20, 10, 30, 0 );
[ - - ][ - - ]
[ - - ]
877 : :
878 : : // Hamming independence, L = 300, r = 0
879 : : stack.add< TestU01< TestU01Props< tag::HammingIndep, CProxy_TestU01Suite,
880 : : sstring_Res, sstring_CreateRes,
881 : : sstring_DeleteRes,
882 : : long, long, int, int, int, int > > >
883 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Hamming Independence L=300 r=0"},
884 [ - - ][ - - ]: 0 : 1L, 30L * MILLION, 0, 30, 10 * 30, 0 );
[ - - ][ - - ]
[ - - ]
885 : :
886 : : // Hamming independence, L = 300, r = 20
887 : : stack.add< TestU01< TestU01Props< tag::HammingIndep, CProxy_TestU01Suite,
888 : : sstring_Res, sstring_CreateRes,
889 : : sstring_DeleteRes,
890 : : long, long, int, int, int, int > > >
891 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Hamming Independence L=300 r=20"},
892 [ - - ][ - - ]: 0 : 1L, 10L * MILLION, 20, 10, 10 * 30, 0 );
[ - - ][ - - ]
[ - - ]
893 : :
894 : : // Hamming independence, L = 1200, r = 0
895 : : stack.add< TestU01< TestU01Props< tag::HammingIndep, CProxy_TestU01Suite,
896 : : sstring_Res, sstring_CreateRes,
897 : : sstring_DeleteRes,
898 : : long, long, int, int, int, int > > >
899 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Hamming Independence L=1200 r=0"},
900 [ - - ][ - - ]: 0 : 1L, 10L * MILLION, 0, 30, 40 * 30, 0 );
[ - - ][ - - ]
[ - - ]
901 : :
902 : : // Hamming independence, L = 1200, r = 20
903 : : stack.add< TestU01< TestU01Props< tag::HammingIndep, CProxy_TestU01Suite,
904 : : sstring_Res, sstring_CreateRes,
905 : : sstring_DeleteRes,
906 : : long, long, int, int, int, int > > >
907 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Hamming Independence L=1200 r=20"},
908 [ - - ][ - - ]: 0 : 1L, static_cast<long>(MILLION), 20, 10, 40 * 30, 0 );
[ - - ][ - - ]
[ - - ]
909 : :
910 : : // String Run, r = 0
911 : : stack.add< TestU01< TestU01Props< tag::StringRun, CProxy_TestU01Suite,
912 : : sstring_Res3, sstring_CreateRes3,
913 : : sstring_DeleteRes3,
914 : : long, long, int, int > > >
915 [ - - ]: 0 : ( proxy, tests, rng, gen, {"String Run NRuns r=0",
916 : : "String Run NBits r=0"},
917 [ - - ][ - - ]: 0 : 1L, 1L * BILLION, 0, 30 );
[ - - ][ - - ]
[ - - ]
918 : :
919 : : // String Run, r = 20
920 : : stack.add< TestU01< TestU01Props< tag::StringRun, CProxy_TestU01Suite,
921 : : sstring_Res3, sstring_CreateRes3,
922 : : sstring_DeleteRes3,
923 : : long, long, int, int > > >
924 [ - - ]: 0 : ( proxy, tests, rng, gen, {"String Run NRuns r=20",
925 : : "String Run NBits r=20"},
926 [ - - ][ - - ]: 0 : 1L, 1L * BILLION, 20, 10 );
[ - - ][ - - ]
[ - - ]
927 : :
928 : : // Autocorrelation, d = 1, r = 0
929 : : stack.add< TestU01< TestU01Props< tag::AutoCorr, CProxy_TestU01Suite,
930 : : sres_Basic, sres_CreateBasic,
931 : : sres_DeleteBasic,
932 : : long, long, int, int, int > > >
933 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Autocorrelation d=1 r=0"},
934 [ - - ][ - - ]: 0 : 10L, 30L + BILLION, 0, 30, 1 );
[ - - ][ - - ]
[ - - ]
935 : :
936 : : // Autocorrelation, d = 1, r = 20
937 : : stack.add< TestU01< TestU01Props< tag::AutoCorr, CProxy_TestU01Suite,
938 : : sres_Basic, sres_CreateBasic,
939 : : sres_DeleteBasic,
940 : : long, long, int, int, int > > >
941 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Autocorrelation d=1 r=20"},
942 [ - - ][ - - ]: 0 : 5L, 1L + BILLION, 20, 10, 1 );
[ - - ][ - - ]
[ - - ]
943 : :
944 : : // Autocorrelation, d = 30, r = 0
945 : : stack.add< TestU01< TestU01Props< tag::AutoCorr, CProxy_TestU01Suite,
946 : : sres_Basic, sres_CreateBasic,
947 : : sres_DeleteBasic,
948 : : long, long, int, int, int > > >
949 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Autocorrelation d=30 r=0"},
950 [ - - ][ - - ]: 0 : 10L, 31L + BILLION, 0, 30, 30 );
[ - - ][ - - ]
[ - - ]
951 : :
952 : : // Autocorrelation, d = 10, r = 20
953 : : stack.add< TestU01< TestU01Props< tag::AutoCorr, CProxy_TestU01Suite,
954 : : sres_Basic, sres_CreateBasic,
955 : : sres_DeleteBasic,
956 : : long, long, int, int, int > > >
957 [ - - ]: 0 : ( proxy, tests, rng, gen, {"Autocorrelation d=10 r=20"},
958 [ - - ][ - - ]: 0 : 5L, 11L + BILLION, 20, 10, 10 );
[ - - ][ - - ]
[ - - ]
959 : 0 : }
|