Quinoa regression test code coverage report
Current view: top level - RNGTest - BigCrush.cpp (source / functions) Hit Total Coverage
Commit: Quinoa_v0.3-957-gb4f0efae0 Lines: 220 228 96.5 %
Date: 2021-11-11 13:17:06 Functions: 1 1 100.0 %
Legend: Lines: hit not hit | Branches: + taken - not taken # not executed Branches: 594 1188 50.0 %

           Branch data     Line data    Source code
       1                 :            : // *****************************************************************************
       2                 :            : /*!
       3                 :            :   \file      src/RNGTest/BigCrush.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 BigCrush battery
       9                 :            :   \details   Class re-creating the TestU01 library's BigCrush 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 "BigCrush.hpp"
      38                 :            : 
      39                 :            : namespace rngtest {
      40                 :            : 
      41                 :            : extern TestStack g_testStack;
      42                 :            : 
      43                 :            : } // rngtest::
      44                 :            : 
      45                 :            : using rngtest::BigCrush;
      46                 :            : 
      47                 :            : void
      48                 :          1 : BigCrush::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 BigCrush 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                 :          1 :   const auto& stack = g_testStack.TestU01;
      62                 :            : 
      63                 :            :   // Find RNG
      64                 :          1 :   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 Serial Over, r = 0
      71                 :            :   stack.add< TestU01< TestU01Props< tag::SerialOver, CProxy_TestU01Suite,
      72                 :            :                                     sres_Basic, sres_CreateBasic,
      73                 :            :                                     sres_DeleteBasic,
      74                 :            :                                     long, long, int, long, int > > >
      75 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Serial Over r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
      76                 :          2 :              1L, static_cast<long>(BILLION), 0, 256L, 3 );
      77                 :            : 
      78                 :            :   // Marsaglia Serial Over, r = 22
      79                 :            :   stack.add< TestU01< TestU01Props< tag::SerialOver, CProxy_TestU01Suite,
      80                 :            :                                     sres_Basic, sres_CreateBasic,
      81                 :            :                                     sres_DeleteBasic,
      82                 :            :                                     long, long, int, long, int > > >
      83 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Serial Over r=22"},
         [ +  - ][ +  + ]
                 [ -  - ]
      84                 :          2 :              1L, static_cast<long>(BILLION), 22, 256L, 3 );
      85                 :            : 
      86                 :            :   // Marsaglia 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 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Collision Over t=2 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
      92                 :          2 :              30L, 20L * MILLION, 0, 1024L * 1024L * 2L, 2 );
      93                 :            : 
      94                 :            :   // Marsaglia Collision Over, t = 2, r = 9
      95                 :            :   stack.add< TestU01< TestU01Props< tag::CollisionOver, CProxy_TestU01Suite,
      96                 :            :                                     smarsa_Res, smarsa_CreateRes,
      97                 :            :                                     smarsa_DeleteRes,
      98                 :            :                                     long, long, int, long, int > > >
      99 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Collision Over t=2 r=9"},
         [ +  - ][ +  + ]
                 [ -  - ]
     100                 :          2 :              30L, 20L * MILLION, 9, 1024L * 1024L * 2L, 2 );
     101                 :            : 
     102                 :            :   // Marsaglia Collision Over, t = 3, 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 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Collision Over t=3 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     108                 :          2 :              30L, 20L * MILLION, 0, 1024L * 16L, 3 );
     109                 :            : 
     110                 :            :   // Marsaglia Collision Over, t = 3, r = 16
     111                 :            :   stack.add< TestU01< TestU01Props< tag::CollisionOver, CProxy_TestU01Suite,
     112                 :            :                                     smarsa_Res, smarsa_CreateRes,
     113                 :            :                                     smarsa_DeleteRes,
     114                 :            :                                     long, long, int, long, int > > >
     115 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Collision Over t=3 r=16"},
         [ +  - ][ +  + ]
                 [ -  - ]
     116                 :          2 :              30L, 20L * MILLION, 16, 1024L * 16L, 3 );
     117                 :            : 
     118                 :            :   // Marsaglia Collision Over, t = 7, 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 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Collision Over t=7 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     124                 :          2 :              30L, 20L * MILLION, 0, 64L, 7 );
     125                 :            : 
     126                 :            :   // Marsaglia Collision Over, t = 7, r = 24
     127                 :            :   stack.add< TestU01< TestU01Props< tag::CollisionOver, CProxy_TestU01Suite,
     128                 :            :                                     smarsa_Res, smarsa_CreateRes,
     129                 :            :                                     smarsa_DeleteRes,
     130                 :            :                                     long, long, int, long, int > > >
     131 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Collision Over t=7 r=24"},
         [ +  - ][ +  + ]
                 [ -  - ]
     132                 :          2 :              30L, 20L * MILLION, 24, 64L, 7 );
     133                 :            : 
     134                 :            :   // Marsaglia Collision Over, t = 14, 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 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Collision Over t=14 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     140                 :          2 :              30L, 20L * MILLION, 0, 8L, 14 );
     141                 :            : 
     142                 :            :   // Marsaglia Collision Over, t = 14, r = 27
     143                 :            :   stack.add< TestU01< TestU01Props< tag::CollisionOver, CProxy_TestU01Suite,
     144                 :            :                                     smarsa_Res, smarsa_CreateRes,
     145                 :            :                                     smarsa_DeleteRes,
     146                 :            :                                     long, long, int, long, int > > >
     147 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Collision Over t=14 r=27"},
         [ +  - ][ +  + ]
                 [ -  - ]
     148                 :          2 :              30L, 20L * MILLION, 27, 8L, 14 );
     149                 :            : 
     150                 :            :   // Marsaglia Collision Over, t = 21, r = 0
     151                 :            :   stack.add< TestU01< TestU01Props< tag::CollisionOver, CProxy_TestU01Suite,
     152                 :            :                                     smarsa_Res, smarsa_CreateRes,
     153                 :            :                                     smarsa_DeleteRes,
     154                 :            :                                     long, long, int, long, int > > >
     155 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Collision Over t=21 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     156                 :          2 :              30L, 20L * MILLION, 0, 4L, 21 );
     157                 :            : 
     158                 :            :   // Marsaglia Collision Over, t = 21, r = 0
     159                 :            :   stack.add< TestU01< TestU01Props< tag::CollisionOver, CProxy_TestU01Suite,
     160                 :            :                                     smarsa_Res, smarsa_CreateRes,
     161                 :            :                                     smarsa_DeleteRes,
     162                 :            :                                     long, long, int, long, int > > >
     163 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Collision Over t=21 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     164                 :          2 :              30L, 20L * MILLION, 0, 4L, 21 );
     165                 :            : 
     166                 :            :   // Marsaglia Collision Over, t = 21, r = 28
     167                 :            :   stack.add< TestU01< TestU01Props< tag::CollisionOver, CProxy_TestU01Suite,
     168                 :            :                                     smarsa_Res, smarsa_CreateRes,
     169                 :            :                                     smarsa_DeleteRes,
     170                 :            :                                     long, long, int, long, int > > >
     171 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Collision Over t=21 r=28"},
         [ +  - ][ +  + ]
                 [ -  - ]
     172                 :          2 :              30L, 20L * MILLION, 28, 4L, 21 );
     173                 :            : 
     174                 :            :   #ifdef USE_LONGLONG
     175                 :            : 
     176                 :            :   // Marsaglia's Birthday Spacings, t = 2, r = 0
     177                 :            :   #if LONG_MAX <= 2147483647L
     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                 :            :            ( proxy, tests, rng, gen, {"Birthday Spacings t=2 r=0"},
     183                 :            :              250L, 4L * MILLION, 0, 1073741824L, 2, 1 );
     184                 :            :   #else // LONG_MAX
     185                 :            :   stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
     186                 :            :                                     sres_Poisson, sres_CreatePoisson,
     187                 :            :                                     sres_DeletePoisson,
     188                 :            :                                     long, long, int, long, int, int > > >
     189 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Birthday Spacings t=2 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     190                 :          2 :              100L, 10L * MILLION, 0, 2147483648L, 2, 1 );
     191                 :            :   #endif // LONG_MAX
     192                 :            : 
     193                 :            :   // Marsaglia's Birthday Spacings, t = 3, r = 0
     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 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Birthday Spacings t=3 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     199                 :          2 :              20L, 20L * MILLION, 0, 2097152L, 3, 1 );
     200                 :            : 
     201                 :            :   // Marsaglia's Birthday Spacings, t = 4, 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 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Birthday Spacings t=4 r=14"},
         [ +  - ][ +  + ]
                 [ -  - ]
     207                 :          2 :              20L, 30L * MILLION, 14, 65536L, 4, 1 );
     208                 :            : 
     209                 :            :   // Marsaglia's Birthday Spacings, t = 7, r = 0
     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 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Birthday Spacings t=7 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     215                 :          2 :              20L, 20L * MILLION, 0, 512L, 7, 1 );
     216                 :            : 
     217                 :            :   // Marsaglia's Birthday Spacings, t = 7, r = 7
     218                 :            :   stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
     219                 :            :                                     sres_Poisson, sres_CreatePoisson,
     220                 :            :                                     sres_DeletePoisson,
     221                 :            :                                     long, long, int, long, int, int > > >
     222 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Birthday Spacings t=7 r=7"},
         [ +  - ][ +  + ]
                 [ -  - ]
     223                 :          2 :              20L, 20L * MILLION, 7, 512L, 7, 1 );
     224                 :            : 
     225                 :            :   // Marsaglia's Birthday Spacings, t = 8, r = 14
     226                 :            :   stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
     227                 :            :                                     sres_Poisson, sres_CreatePoisson,
     228                 :            :                                     sres_DeletePoisson,
     229                 :            :                                     long, long, int, long, int, int > > >
     230 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Birthday Spacings t=8 r=14"},
         [ +  - ][ +  + ]
                 [ -  - ]
     231                 :          2 :              20L, 30L * MILLION, 14, 256L, 8, 1 );
     232                 :            : 
     233                 :            :   // Marsaglia's Birthday Spacings, t = 8, r = 22
     234                 :            :   stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
     235                 :            :                                     sres_Poisson, sres_CreatePoisson,
     236                 :            :                                     sres_DeletePoisson,
     237                 :            :                                     long, long, int, long, int, int > > >
     238 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Birthday Spacings t=8 r=22"},
         [ +  - ][ +  + ]
                 [ -  - ]
     239                 :          2 :              20L, 30L * MILLION, 22, 256L, 8, 1 );
     240                 :            : 
     241                 :            :   // Marsaglia's Birthday Spacings, t = 16, r = 0
     242                 :            :   stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
     243                 :            :                                     sres_Poisson, sres_CreatePoisson,
     244                 :            :                                     sres_DeletePoisson,
     245                 :            :                                     long, long, int, long, int, int > > >
     246 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Birthday Spacings t=16 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     247                 :          2 :              20L, 30L * MILLION, 0, 16L, 16, 1 );
     248                 :            : 
     249                 :            :   // Marsaglia's Birthday Spacings, t = 16, r = 26
     250                 :            :   stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
     251                 :            :                                     sres_Poisson, sres_CreatePoisson,
     252                 :            :                                     sres_DeletePoisson,
     253                 :            :                                     long, long, int, long, int, int > > >
     254 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Birthday Spacings t=16 r=26"},
         [ +  - ][ +  + ]
                 [ -  - ]
     255                 :          2 :              20L, 30L * MILLION, 26, 16L, 16, 1 );
     256                 :            : 
     257                 :            :   #else // USE_LONGLONG
     258                 :            : 
     259                 :            :   // Marsaglia's Birthday Spacings, t = 2, r = 0
     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=2 r=0"},
     265                 :            :              10L*THOUSAND, static_cast<long>(MILLION/10), 0, 67108864L, 2, 1 );
     266                 :            : 
     267                 :            :   // Marsaglia's Birthday Spacings, t = 4, r = 0
     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, {"Birthday Spacings t=4 r=0"},
     273                 :            :              10L*THOUSAND, static_cast<long>(MILLION/10), 0, 1024L*8L, 4, 1 );
     274                 :            : 
     275                 :            :   // Marsaglia's Birthday Spacings, t = 4, r = 16
     276                 :            :   stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
     277                 :            :                                     sres_Poisson, sres_CreatePoisson,
     278                 :            :                                     sres_DeletePoisson,
     279                 :            :                                     long, long, int, long, int, int > > >
     280                 :            :            ( proxy, tests, rng, gen, {"Birthday Spacings t=4 r=16"},
     281                 :            :              10L*THOUSAND, static_cast<long>(MILLION/10), 16, 1024L*8L, 4, 1 );
     282                 :            : 
     283                 :            :   // Marsaglia's Birthday Spacings, t = 13, r = 0
     284                 :            :   stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
     285                 :            :                                     sres_Poisson, sres_CreatePoisson,
     286                 :            :                                     sres_DeletePoisson,
     287                 :            :                                     long, long, int, long, int, int > > >
     288                 :            :            ( proxy, tests, rng, gen, {"Birthday Spacings t=13 r=0"},
     289                 :            :              10L*THOUSAND, static_cast<long>(MILLION/10), 0, 16L, 13, 1 );
     290                 :            : 
     291                 :            :   // Marsaglia's Birthday Spacings, t = 13, r = 5
     292                 :            :   stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
     293                 :            :                                     sres_Poisson, sres_CreatePoisson,
     294                 :            :                                     sres_DeletePoisson,
     295                 :            :                                     long, long, int, long, int, int > > >
     296                 :            :            ( proxy, tests, rng, gen, {"Birthday Spacings t=13 r=5"},
     297                 :            :              10L*THOUSAND, static_cast<long>(MILLION/10), 5, 16L, 13, 1 );
     298                 :            : 
     299                 :            :   // Marsaglia's Birthday Spacings, t = 13, r = 10
     300                 :            :   stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
     301                 :            :                                     sres_Poisson, sres_CreatePoisson,
     302                 :            :                                     sres_DeletePoisson,
     303                 :            :                                     long, long, int, long, int, int > > >
     304                 :            :            ( proxy, tests, rng, gen, {"Birthday Spacings t=13 r=10"},
     305                 :            :              10L*THOUSAND, static_cast<long>(MILLION/10), 10, 16L, 13, 1 );
     306                 :            : 
     307                 :            :   // Marsaglia's Birthday Spacings, t = 13, r = 15
     308                 :            :   stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
     309                 :            :                                     sres_Poisson, sres_CreatePoisson,
     310                 :            :                                     sres_DeletePoisson,
     311                 :            :                                     long, long, int, long, int, int > > >
     312                 :            :            ( proxy, tests, rng, gen, {"Birthday Spacings t=13 r=15"},
     313                 :            :              10L*THOUSAND, static_cast<long>(MILLION/10), 15, 16L, 13, 1 );
     314                 :            : 
     315                 :            :   // Marsaglia's Birthday Spacings, t = 13, r = 20
     316                 :            :   stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
     317                 :            :                                     sres_Poisson, sres_CreatePoisson,
     318                 :            :                                     sres_DeletePoisson,
     319                 :            :                                     long, long, int, long, int, int > > >
     320                 :            :            ( proxy, tests, rng, gen, {"Birthday Spacings t=13 r=20"},
     321                 :            :              10L*THOUSAND, static_cast<long>(MILLION/10), 20, 16L, 13, 1 );
     322                 :            : 
     323                 :            :   // Marsaglia's Birthday Spacings, t = 13, r = 26
     324                 :            :   stack.add< TestU01< TestU01Props< tag::BirthdaySpacings, CProxy_TestU01Suite,
     325                 :            :                                     sres_Poisson, sres_CreatePoisson,
     326                 :            :                                     sres_DeletePoisson,
     327                 :            :                                     long, long, int, long, int, int > > >
     328                 :            :            ( proxy, tests, rng, gen, {"Birthday Spacings t=13 r=26"},
     329                 :            :              10L*THOUSAND, static_cast<long>(MILLION/10), 26, 16L, 13, 1 );
     330                 :            : 
     331                 :            :   #endif // USE_LONGLONG
     332                 :            : 
     333                 :            :   // Close Pairs, t = 3
     334                 :            :   stack.add< TestU01< TestU01Props< tag::ClosePairs, CProxy_TestU01Suite,
     335                 :            :                                     snpair_Res, snpair_CreateRes,
     336                 :            :                                     snpair_DeleteRes,
     337                 :            :                                     long, long, int, int, int, int, int > > >
     338 [ +  - ][ +  - ]:          7 :            ( proxy, tests, rng, gen, {"Close Pairs NP t=3",
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  + ][ -  - ]
     339                 :            :                                       "Close Pairs mNP t=3",
     340                 :            :                                       "Close Pairs mNP1 t=3",
     341                 :            :                                       "Close Pairs mNP2 t=3",
     342                 :            :                                       "Close Pairs mNJumps t=3",
     343                 :            :                                       "Close Pairs mNP2S t=3"},
     344                 :          7 :              30L, 6L * MILLION, 0, 3, 0, 30, 1 );
     345                 :            : 
     346                 :            :   // Close Pairs, t = 5
     347                 :            :   stack.add< TestU01< TestU01Props< tag::ClosePairs, CProxy_TestU01Suite,
     348                 :            :                                     snpair_Res, snpair_CreateRes,
     349                 :            :                                     snpair_DeleteRes,
     350                 :            :                                     long, long, int, int, int, int, int > > >
     351 [ +  - ][ +  - ]:          7 :            ( proxy, tests, rng, gen, {"Close Pairs NP t=5",
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  + ][ -  - ]
     352                 :            :                                       "Close Pairs mNP t=5",
     353                 :            :                                       "Close Pairs mNP1 t=5",
     354                 :            :                                       "Close Pairs mNP2 t=5",
     355                 :            :                                       "Close Pairs mNJumps t=5",
     356                 :            :                                       "Close Pairs mNP2S t=5"},
     357                 :          7 :              20L, 4L * MILLION, 0, 5, 0, 30, 1 );
     358                 :            : 
     359                 :            :   // Close Pairs, t = 9
     360                 :            :   stack.add< TestU01< TestU01Props< tag::ClosePairs, CProxy_TestU01Suite,
     361                 :            :                                     snpair_Res, snpair_CreateRes,
     362                 :            :                                     snpair_DeleteRes,
     363                 :            :                                     long, long, int, int, int, int, int > > >
     364 [ +  - ][ +  - ]:          7 :            ( proxy, tests, rng, gen, {"Close Pairs NP t=9",
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  + ][ -  - ]
     365                 :            :                                       "Close Pairs mNP t=9",
     366                 :            :                                       "Close Pairs mNP1 t=9",
     367                 :            :                                       "Close Pairs mNP2 t=9",
     368                 :            :                                       "Close Pairs mNJumps t=9",
     369                 :            :                                       "Close Pairs mNP2S t=9"},
     370                 :          7 :              10L, 3L * MILLION, 0, 9, 0, 30, 1 );
     371                 :            : 
     372                 :            :   // Close Pairs, t = 16
     373                 :            :   stack.add< TestU01< TestU01Props< tag::ClosePairs, CProxy_TestU01Suite,
     374                 :            :                                     snpair_Res, snpair_CreateRes,
     375                 :            :                                     snpair_DeleteRes,
     376                 :            :                                     long, long, int, int, int, int, int > > >
     377 [ +  - ][ +  - ]:          7 :            ( proxy, tests, rng, gen, {"Close Pairs NP t=16",
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  + ][ -  - ]
     378                 :            :                                       "Close Pairs mNP t=16",
     379                 :            :                                       "Close Pairs mNP1 t=16",
     380                 :            :                                       "Close Pairs mNP2 t=16",
     381                 :            :                                       "Close Pairs mNJumps t=16",
     382                 :            :                                       "Close Pairs mNP2S t=16"},
     383                 :          7 :              5L, 2L * MILLION, 0, 16, 0, 30, 1 );
     384                 :            : 
     385                 :            :   // Knuth's Simple Poker, d = 8, r = 0
     386                 :            :   stack.add< TestU01< TestU01Props< tag::SimplePoker, CProxy_TestU01Suite,
     387                 :            :                                     sres_Chi2, sres_CreateChi2,
     388                 :            :                                     sres_DeleteChi2,
     389                 :            :                                     long, long, int, int, int > > >
     390 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Simplified Poker d=8 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     391                 :          2 :                1L, 400L * MILLION, 0, 8, 8 );
     392                 :            : 
     393                 :            :   // Knuth's Simple Poker, d = 8, r = 27
     394                 :            :   stack.add< TestU01< TestU01Props< tag::SimplePoker, CProxy_TestU01Suite,
     395                 :            :                                     sres_Chi2, sres_CreateChi2,
     396                 :            :                                     sres_DeleteChi2,
     397                 :            :                                     long, long, int, int, int > > >
     398 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Simplified Poker d=8 r=27"},
         [ +  - ][ +  + ]
                 [ -  - ]
     399                 :          2 :                1L, 400L * MILLION, 27, 8, 8 );
     400                 :            : 
     401                 :            :   // Knuth's Simple Poker, d = 32, r = 0
     402                 :            :   stack.add< TestU01< TestU01Props< tag::SimplePoker, CProxy_TestU01Suite,
     403                 :            :                                     sres_Chi2, sres_CreateChi2,
     404                 :            :                                     sres_DeleteChi2,
     405                 :            :                                     long, long, int, int, int > > >
     406 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Simplified Poker d=32 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     407                 :          2 :                1L, 100L * MILLION, 0, 32, 32 );
     408                 :            : 
     409                 :            :   // Knuth's Simple Poker, d = 32, r = 25
     410                 :            :   stack.add< TestU01< TestU01Props< tag::SimplePoker, CProxy_TestU01Suite,
     411                 :            :                                     sres_Chi2, sres_CreateChi2,
     412                 :            :                                     sres_DeleteChi2,
     413                 :            :                                     long, long, int, int, int > > >
     414 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Simplified Poker d=32 r=25"},
         [ +  - ][ +  + ]
                 [ -  - ]
     415                 :          2 :                1L, 100L * MILLION, 25, 32, 32 );
     416                 :            : 
     417                 :            :   // Knuth's Coupon Collector, d = 8, r = 0
     418                 :            :   stack.add< TestU01< TestU01Props< tag::CouponCollector, CProxy_TestU01Suite,
     419                 :            :                                     sres_Chi2, sres_CreateChi2,
     420                 :            :                                     sres_DeleteChi2,
     421                 :            :                                     long, long, int, int > > >
     422 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Coupon Collector d=8 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     423                 :          2 :                1L, 200L * MILLION, 0, 8 );
     424                 :            : 
     425                 :            :   // Knuth's Coupon Collector, d = 8, r = 10
     426                 :            :   stack.add< TestU01< TestU01Props< tag::CouponCollector, CProxy_TestU01Suite,
     427                 :            :                                     sres_Chi2, sres_CreateChi2,
     428                 :            :                                     sres_DeleteChi2,
     429                 :            :                                     long, long, int, int > > >
     430 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Coupon Collector d=8 r=10"},
         [ +  - ][ +  + ]
                 [ -  - ]
     431                 :          2 :                1L, 200L * MILLION, 10, 8 );
     432                 :            : 
     433                 :            :   // Knuth's Coupon Collector, d = 8, r = 20
     434                 :            :   stack.add< TestU01< TestU01Props< tag::CouponCollector, CProxy_TestU01Suite,
     435                 :            :                                     sres_Chi2, sres_CreateChi2,
     436                 :            :                                     sres_DeleteChi2,
     437                 :            :                                     long, long, int, int > > >
     438 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Coupon Collector d=8 r=20"},
         [ +  - ][ +  + ]
                 [ -  - ]
     439                 :          2 :                1L, 200L * MILLION, 20, 8 );
     440                 :            : 
     441                 :            :   // Knuth's Coupon Collector, d = 8, r = 27
     442                 :            :   stack.add< TestU01< TestU01Props< tag::CouponCollector, CProxy_TestU01Suite,
     443                 :            :                                     sres_Chi2, sres_CreateChi2,
     444                 :            :                                     sres_DeleteChi2,
     445                 :            :                                     long, long, int, int > > >
     446 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Coupon Collector d=8 r=27"},
         [ +  - ][ +  + ]
                 [ -  - ]
     447                 :          2 :                1L, 200L * MILLION, 27, 8 );
     448                 :            : 
     449                 :            :   // Knuth's Gap, r = 0
     450                 :            :   stack.add< TestU01< TestU01Props< tag::Gap, CProxy_TestU01Suite,
     451                 :            :                                     sres_Chi2, sres_CreateChi2,
     452                 :            :                                     sres_DeleteChi2,
     453                 :            :                                     long, long, int, double, double > > >
     454 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Gap r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     455                 :          2 :                1L, static_cast<long>(BILLION/2), 0, 0.0, 1.0/16.0 );
     456                 :            : 
     457                 :            :   // Knuth's Gap, r = 25
     458                 :            :   stack.add< TestU01< TestU01Props< tag::Gap, CProxy_TestU01Suite,
     459                 :            :                                     sres_Chi2, sres_CreateChi2,
     460                 :            :                                     sres_DeleteChi2,
     461                 :            :                                     long, long, int, double, double > > >
     462 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Gap r=25"},
         [ +  - ][ +  + ]
                 [ -  - ]
     463                 :          2 :                1L, 300L * MILLION, 25, 0.0, 1.0/32.0 );
     464                 :            : 
     465                 :            :   // Knuth's Gap, r = 0, n = .5e+9
     466                 :            :   stack.add< TestU01< TestU01Props< tag::Gap, CProxy_TestU01Suite,
     467                 :            :                                     sres_Chi2, sres_CreateChi2,
     468                 :            :                                     sres_DeleteChi2,
     469                 :            :                                     long, long, int, double, double > > >
     470 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Gap r=0 n=.5B"},
         [ +  - ][ +  + ]
                 [ -  - ]
     471                 :          2 :                1L, static_cast<long>(BILLION / 10), 0, 0.0, 1.0/128.0 );
     472                 :            : 
     473                 :            :   // Knuth's Gap, r = 20, n = 10e+6
     474                 :            :   stack.add< TestU01< TestU01Props< tag::Gap, CProxy_TestU01Suite,
     475                 :            :                                     sres_Chi2, sres_CreateChi2,
     476                 :            :                                     sres_DeleteChi2,
     477                 :            :                                     long, long, int, double, double > > >
     478 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Gap r=20 n=10M"},
         [ +  - ][ +  + ]
                 [ -  - ]
     479                 :          2 :                1L, 10L * MILLION, 20, 0.0, 1.0/1024.0 );
     480                 :            : 
     481                 :            :   // Knuth's Run, r = 0
     482                 :            :   stack.add< TestU01< TestU01Props< tag::Run, CProxy_TestU01Suite,
     483                 :            :                                     sres_Chi2, sres_CreateChi2,
     484                 :            :                                     sres_DeleteChi2,
     485                 :            :                                     long, long, int, int > > >
     486 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Run r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     487                 :          2 :                5L, static_cast<long>(BILLION), 0, 0 );
     488                 :            : 
     489                 :            :   // Knuth's Run, r = 15
     490                 :            :   stack.add< TestU01< TestU01Props< tag::Run, CProxy_TestU01Suite,
     491                 :            :                                     sres_Chi2, sres_CreateChi2,
     492                 :            :                                     sres_DeleteChi2,
     493                 :            :                                     long, long, int, int > > >
     494 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Run r=15"},
         [ +  - ][ +  + ]
                 [ -  - ]
     495                 :          2 :                10L, static_cast<long>(BILLION), 15, 1 );
     496                 :            : 
     497                 :            :   // Knuth's Permutation, t = 3
     498                 :            :   stack.add< TestU01< TestU01Props< tag::Permutation, CProxy_TestU01Suite,
     499                 :            :                                     sres_Chi2, sres_CreateChi2,
     500                 :            :                                     sres_DeleteChi2,
     501                 :            :                                     long, long, int, int > > >
     502 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Permutation t=3"},
         [ +  - ][ +  + ]
                 [ -  - ]
     503                 :          2 :                1L, static_cast<long>(BILLION), 5, 3 );
     504                 :            : 
     505                 :            :   // Knuth's Permutation, t = 5
     506                 :            :   stack.add< TestU01< TestU01Props< tag::Permutation, CProxy_TestU01Suite,
     507                 :            :                                     sres_Chi2, sres_CreateChi2,
     508                 :            :                                     sres_DeleteChi2,
     509                 :            :                                     long, long, int, int > > >
     510 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Permutation t=5"},
         [ +  - ][ +  + ]
                 [ -  - ]
     511                 :          2 :                1L, static_cast<long>(BILLION), 5, 5 );
     512                 :            : 
     513                 :            :   // Knuth's Permutation, t = 7
     514                 :            :   stack.add< TestU01< TestU01Props< tag::Permutation, CProxy_TestU01Suite,
     515                 :            :                                     sres_Chi2, sres_CreateChi2,
     516                 :            :                                     sres_DeleteChi2,
     517                 :            :                                     long, long, int, int > > >
     518 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Permutation t=7"},
         [ +  - ][ +  + ]
                 [ -  - ]
     519                 :          2 :                1L, static_cast<long>(BILLION / 2), 5, 7 );
     520                 :            : 
     521                 :            :   // Knuth's Permutation, t = 10
     522                 :            :   stack.add< TestU01< TestU01Props< tag::Permutation, CProxy_TestU01Suite,
     523                 :            :                                     sres_Chi2, sres_CreateChi2,
     524                 :            :                                     sres_DeleteChi2,
     525                 :            :                                     long, long, int, int > > >
     526 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Permutation t=10"},
         [ +  - ][ +  + ]
                 [ -  - ]
     527                 :          2 :                1L, static_cast<long>(BILLION / 2), 10, 10 );
     528                 :            : 
     529                 :            :   // Knuth's Collision with permutations, r = 0
     530                 :            :   stack.add< TestU01< TestU01Props< tag::CollisionPermut, CProxy_TestU01Suite,
     531                 :            :                                     sknuth_Res2, sknuth_CreateRes2,
     532                 :            :                                     sknuth_DeleteRes2,
     533                 :            :                                     long, long, int, int > > >
     534 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Collision w. Permutations r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     535                 :          2 :                20L, 20L * MILLION, 0, 14 );
     536                 :            : 
     537                 :            :   // Knuth's Collision with permutations, r = 10
     538                 :            :   stack.add< TestU01< TestU01Props< tag::CollisionPermut, CProxy_TestU01Suite,
     539                 :            :                                     sknuth_Res2, sknuth_CreateRes2,
     540                 :            :                                     sknuth_DeleteRes2,
     541                 :            :                                     long, long, int, int > > >
     542 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Collision w. Permutations r=10"},
         [ +  - ][ +  + ]
                 [ -  - ]
     543                 :          2 :                20L, 20L * MILLION, 10, 14 );
     544                 :            : 
     545                 :            :   // Knuth's Maximum-of-t, t = 8
     546                 :            :   stack.add< TestU01< TestU01Props< tag::MaxOft, CProxy_TestU01Suite,
     547                 :            :                                     sknuth_Res1, sknuth_CreateRes1,
     548                 :            :                                     sknuth_DeleteRes1,
     549                 :            :                                     long, long, int, int, int, int, int > > >
     550 [ +  - ][ +  - ]:          3 :              ( proxy, tests, rng, gen, {"Maximum-of-t t=8",
         [ +  - ][ +  - ]
         [ +  + ][ -  - ]
     551                 :            :                                         "Maximum-of-t Anderson-Darling t=8"},
     552                 :          0 :                40L, 10L * MILLION, 0, static_cast<int>(MILLION / 10), 8,
     553                 :          3 :                  gofw_Sum, gofw_AD );
     554                 :            : 
     555                 :            :   // Knuth's Maximum-of-t, t = 16
     556                 :            :   stack.add< TestU01< TestU01Props< tag::MaxOft, CProxy_TestU01Suite,
     557                 :            :                                     sknuth_Res1, sknuth_CreateRes1,
     558                 :            :                                     sknuth_DeleteRes1,
     559                 :            :                                     long, long, int, int, int, int, int > > >
     560 [ +  - ][ +  - ]:          3 :              ( proxy, tests, rng, gen, {"Maximum-of-t t=16",
         [ +  - ][ +  - ]
         [ +  + ][ -  - ]
     561                 :            :                                         "Maximum-of-t Anderson-Darling t=16"},
     562                 :          0 :                30L, 10L * MILLION, 0, static_cast<int>(MILLION / 10), 16,
     563                 :          3 :                  gofw_Sum, gofw_AD );
     564                 :            : 
     565                 :            :   // Knuth's Maximum-of-t, t = 24
     566                 :            :   stack.add< TestU01< TestU01Props< tag::MaxOft, CProxy_TestU01Suite,
     567                 :            :                                     sknuth_Res1, sknuth_CreateRes1,
     568                 :            :                                     sknuth_DeleteRes1,
     569                 :            :                                     long, long, int, int, int, int, int > > >
     570 [ +  - ][ +  - ]:          3 :              ( proxy, tests, rng, gen, {"Maximum-of-t t=24",
         [ +  - ][ +  - ]
         [ +  + ][ -  - ]
     571                 :            :                                         "Maximum-of-t Anderson-Darling t=24"},
     572                 :          0 :                20L, 10L * MILLION, 0, static_cast<int>(MILLION / 10), 24,
     573                 :          3 :                  gofw_Mean, gofw_Mean );
     574                 :            : 
     575                 :            :   // Knuth's Maximum-of-t, t = 32
     576                 :            :   stack.add< TestU01< TestU01Props< tag::MaxOft, CProxy_TestU01Suite,
     577                 :            :                                     sknuth_Res1, sknuth_CreateRes1,
     578                 :            :                                     sknuth_DeleteRes1,
     579                 :            :                                     long, long, int, int, int, int, int > > >
     580 [ +  - ][ +  - ]:          3 :              ( proxy, tests, rng, gen, {"Maximum-of-t t=32",
         [ +  - ][ +  - ]
         [ +  + ][ -  - ]
     581                 :            :                                         "Maximum-of-t Anderson-Darling t=32"},
     582                 :          0 :                20L, 10L * MILLION, 0, static_cast<int>(MILLION / 10), 32,
     583                 :          3 :                  gofw_Mean, gofw_Mean );
     584                 :            : 
     585                 :            :   // Sample Products, t = 8
     586                 :            :   stack.add< TestU01< TestU01Props< tag::SampleProd, CProxy_TestU01Suite,
     587                 :            :                                     sres_Basic, sres_CreateBasic,
     588                 :            :                                     sres_DeleteBasic,
     589                 :            :                                     long, long, int, int > > >
     590 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Sample Products t=8"},
         [ +  - ][ +  + ]
                 [ -  - ]
     591                 :          2 :                4L, 10L * MILLION, 0, 8 );
     592                 :            : 
     593                 :            :   // Sample Products, t = 16
     594                 :            :   stack.add< TestU01< TestU01Props< tag::SampleProd, CProxy_TestU01Suite,
     595                 :            :                                     sres_Basic, sres_CreateBasic,
     596                 :            :                                     sres_DeleteBasic,
     597                 :            :                                     long, long, int, int > > >
     598 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Sample Products t=16"},
         [ +  - ][ +  + ]
                 [ -  - ]
     599                 :          2 :                20L, 10L * MILLION, 0, 16 );
     600                 :            : 
     601                 :            :   // Sample Products, t = 24
     602                 :            :   stack.add< TestU01< TestU01Props< tag::SampleProd, CProxy_TestU01Suite,
     603                 :            :                                     sres_Basic, sres_CreateBasic,
     604                 :            :                                     sres_DeleteBasic,
     605                 :            :                                     long, long, int, int > > >
     606 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Sample Products t=24"},
         [ +  - ][ +  + ]
                 [ -  - ]
     607                 :          2 :                20L, 10L * MILLION, 0, 24 );
     608                 :            : 
     609                 :            :   // Sample Mean, r = 0
     610                 :            :   stack.add< TestU01< TestU01Props< tag::SampleMean, CProxy_TestU01Suite,
     611                 :            :                                     sres_Basic, sres_CreateBasic,
     612                 :            :                                     sres_DeleteBasic,
     613                 :            :                                     long, long, int > > >
     614 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Sample Mean r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     615                 :          2 :                20L * MILLION, 30L, 0 );
     616                 :            : 
     617                 :            :   // Sample Mean, r = 10
     618                 :            :   stack.add< TestU01< TestU01Props< tag::SampleMean, CProxy_TestU01Suite,
     619                 :            :                                     sres_Basic, sres_CreateBasic,
     620                 :            :                                     sres_DeleteBasic,
     621                 :            :                                     long, long, int > > >
     622 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Sample Mean r=10"},
         [ +  - ][ +  + ]
                 [ -  - ]
     623                 :          2 :                20L * MILLION, 30L, 10 );
     624                 :            : 
     625                 :            :   // Sample Autorrelation, k = 1
     626                 :            :   stack.add< TestU01< TestU01Props< tag::SampleCorr, CProxy_TestU01Suite,
     627                 :            :                                     sres_Basic, sres_CreateBasic,
     628                 :            :                                     sres_DeleteBasic,
     629                 :            :                                     long, long, int, int > > >
     630 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Sample Autorrelation k=1"},
         [ +  - ][ +  + ]
                 [ -  - ]
     631                 :          2 :                1L, 2L * BILLION, 0, 1 );
     632                 :            : 
     633                 :            :   // Sample Autorrelation, k = 2
     634                 :            :   stack.add< TestU01< TestU01Props< tag::SampleCorr, CProxy_TestU01Suite,
     635                 :            :                                     sres_Basic, sres_CreateBasic,
     636                 :            :                                     sres_DeleteBasic,
     637                 :            :                                     long, long, int, int > > >
     638 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Sample Autorrelation k=2"},
         [ +  - ][ +  + ]
                 [ -  - ]
     639                 :          2 :                1L, 2L * BILLION, 0, 2 );
     640                 :            : 
     641                 :            :   // Maurer's "universal" test, r = 0
     642                 :            :   stack.add< TestU01< TestU01Props< tag::AppearanceSpacings, CProxy_TestU01Suite,
     643                 :            :                                     sres_Basic, sres_CreateBasic,
     644                 :            :                                     sres_DeleteBasic,
     645                 :            :                                     long, long, long, int, int, int > > >
     646 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Appearance Spacings r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     647                 :          2 :                1L, 10L * MILLION, 400L * MILLION, 0, 30, 15 );
     648                 :            : 
     649                 :            :   // Maurer's "universal" test, r = 0
     650                 :            :   stack.add< TestU01< TestU01Props< tag::AppearanceSpacings, CProxy_TestU01Suite,
     651                 :            :                                     sres_Basic, sres_CreateBasic,
     652                 :            :                                     sres_DeleteBasic,
     653                 :            :                                     long, long, long, int, int, int > > >
     654 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Appearance Spacings r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     655                 :          0 :                1L, 10L * MILLION, static_cast<long>(BILLION), 0,
     656                 :          2 :                              3, 15 );
     657                 :            : 
     658                 :            :   // Maurer's "universal" test, r = 27
     659                 :            :   stack.add< TestU01< TestU01Props< tag::AppearanceSpacings, CProxy_TestU01Suite,
     660                 :            :                                     sres_Basic, sres_CreateBasic,
     661                 :            :                                     sres_DeleteBasic,
     662                 :            :                                     long, long, long, int, int, int > > >
     663 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Appearance Spacings r=27"},
         [ +  - ][ +  + ]
                 [ -  - ]
     664                 :          0 :                1L, 10L * MILLION, static_cast<long>(BILLION), 27,
     665                 :          2 :                              3, 15 );
     666                 :            : 
     667                 :            :   // Weight Distribution, r = 0
     668                 :            :   stack.add< TestU01< TestU01Props< tag::WeightDistrib, CProxy_TestU01Suite,
     669                 :            :                                     sres_Chi2, sres_CreateChi2,
     670                 :            :                                     sres_DeleteChi2,
     671                 :            :                                     long, long, int, long, double, double > > >
     672 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Weight Distribution r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     673                 :          2 :                1L, 20L * MILLION, 0, 256L, 0.0, 0.25 );
     674                 :            : 
     675                 :            :   // Weight Distribution, r = 20
     676                 :            :   stack.add< TestU01< TestU01Props< tag::WeightDistrib, CProxy_TestU01Suite,
     677                 :            :                                     sres_Chi2, sres_CreateChi2,
     678                 :            :                                     sres_DeleteChi2,
     679                 :            :                                     long, long, int, long, double, double > > >
     680 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Weight Distribution r=20"},
         [ +  - ][ +  + ]
                 [ -  - ]
     681                 :          2 :                1L, 20L * MILLION, 20, 256L, 0.0, 0.25 );
     682                 :            : 
     683                 :            :   // Weight Distribution, r = 28
     684                 :            :   stack.add< TestU01< TestU01Props< tag::WeightDistrib, CProxy_TestU01Suite,
     685                 :            :                                     sres_Chi2, sres_CreateChi2,
     686                 :            :                                     sres_DeleteChi2,
     687                 :            :                                     long, long, int, long, double, double > > >
     688 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Weight Distribution r=28"},
         [ +  - ][ +  + ]
                 [ -  - ]
     689                 :          2 :                1L, 20L * MILLION, 28, 256L, 0.0, 0.25 );
     690                 :            : 
     691                 :            :   // Weight Distribution, r = 0, beta = 1/16
     692                 :            :   stack.add< TestU01< TestU01Props< tag::WeightDistrib, CProxy_TestU01Suite,
     693                 :            :                                     sres_Chi2, sres_CreateChi2,
     694                 :            :                                     sres_DeleteChi2,
     695                 :            :                                     long, long, int, long, double, double > > >
     696 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Weight Distribution r=0 beta=1/16"},
         [ +  - ][ +  + ]
                 [ -  - ]
     697                 :          2 :                1L, 20L * MILLION, 0, 256L, 0.0, 0.0625 );
     698                 :            : 
     699                 :            :   // Weight Distribution, r = 10
     700                 :            :   stack.add< TestU01< TestU01Props< tag::WeightDistrib, CProxy_TestU01Suite,
     701                 :            :                                     sres_Chi2, sres_CreateChi2,
     702                 :            :                                     sres_DeleteChi2,
     703                 :            :                                     long, long, int, long, double, double > > >
     704 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Weight Distribution r=10"},
         [ +  - ][ +  + ]
                 [ -  - ]
     705                 :          2 :                1L, 20L * MILLION, 10, 256L, 0.0, 0.0625 );
     706                 :            : 
     707                 :            :   // Weight Distribution, r = 26
     708                 :            :   stack.add< TestU01< TestU01Props< tag::WeightDistrib, CProxy_TestU01Suite,
     709                 :            :                                     sres_Chi2, sres_CreateChi2,
     710                 :            :                                     sres_DeleteChi2,
     711                 :            :                                     long, long, int, long, double, double > > >
     712 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Weight Distribution r=26"},
         [ +  - ][ +  + ]
                 [ -  - ]
     713                 :          2 :                1L, 20L * MILLION, 26, 256L, 0.0, 0.0625 );
     714                 :            : 
     715                 :            :   // Sum Collector
     716                 :            :   stack.add< TestU01< TestU01Props< tag::SumCollector, CProxy_TestU01Suite,
     717                 :            :                                     sres_Chi2, sres_CreateChi2,
     718                 :            :                                     sres_DeleteChi2,
     719                 :            :                                     long, long, int, double > > >
     720 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Sum Collector"},
         [ +  - ][ +  + ]
                 [ -  - ]
     721                 :          2 :                1L, 500L * MILLION, 0, 10.0 );
     722                 :            : 
     723                 :            :   // Marsaglia's Matrix Rank, L = 30, r = 0
     724                 :            :   stack.add< TestU01< TestU01Props< tag::MatrixRank, CProxy_TestU01Suite,
     725                 :            :                                     sres_Chi2, sres_CreateChi2,
     726                 :            :                                     sres_DeleteChi2,
     727                 :            :                                     long, long, int, int, int, int > > >
     728 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Matrix Rank L=30 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     729                 :          2 :                10L, static_cast<long>(MILLION), 0, 5, 30, 30 );
     730                 :            : 
     731                 :            :   // Marsaglia's Matrix Rank, L = 30, r = 25
     732                 :            :   stack.add< TestU01< TestU01Props< tag::MatrixRank, CProxy_TestU01Suite,
     733                 :            :                                     sres_Chi2, sres_CreateChi2,
     734                 :            :                                     sres_DeleteChi2,
     735                 :            :                                     long, long, int, int, int, int > > >
     736 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Matrix Rank L=30 r=25"},
         [ +  - ][ +  + ]
                 [ -  - ]
     737                 :          2 :                10L, static_cast<long>(MILLION), 25, 5, 30, 30 );
     738                 :            : 
     739                 :            :   // Marsaglia's Matrix Rank, L = 1000, r = 0
     740                 :            :   stack.add< TestU01< TestU01Props< tag::MatrixRank, CProxy_TestU01Suite,
     741                 :            :                                     sres_Chi2, sres_CreateChi2,
     742                 :            :                                     sres_DeleteChi2,
     743                 :            :                                     long, long, int, int, int, int > > >
     744 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Matrix Rank L=1000 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     745                 :          2 :                1L, 5L * THOUSAND, 0, 4, 1000, 1000 );
     746                 :            : 
     747                 :            :   // Marsaglia's Matrix Rank, L = 1000, r = 26
     748                 :            :   stack.add< TestU01< TestU01Props< tag::MatrixRank, CProxy_TestU01Suite,
     749                 :            :                                     sres_Chi2, sres_CreateChi2,
     750                 :            :                                     sres_DeleteChi2,
     751                 :            :                                     long, long, int, int, int, int > > >
     752 [ +  - ][ +  - ]:          2 :              ( proxy, tests, rng, gen, {"Matrix Rank L=1000 r=26"},
         [ +  - ][ +  + ]
                 [ -  - ]
     753                 :          2 :                1L, 5L * THOUSAND, 26, 4, 1000, 1000 );
     754                 :            : 
     755                 :            :   // Marsaglia's Matrix Rank, L = 5000, r = 15
     756                 :            :   stack.add< TestU01< TestU01Props< tag::MatrixRank, CProxy_TestU01Suite,
     757                 :            :                                     sres_Chi2, sres_CreateChi2,
     758                 :            :                                     sres_DeleteChi2,
     759                 :            :                                     long, long, int, int, int, int > > >
     760 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Matrix Rank L=5000 r=15"},
         [ +  - ][ +  + ]
                 [ -  - ]
     761                 :          2 :              1L, 80L, 15, 15, 5000, 5000 );
     762                 :            : 
     763                 :            :   // Marsaglia's Matrix Rank, L = 5000, r = 0
     764                 :            :   stack.add< TestU01< TestU01Props< tag::MatrixRank, CProxy_TestU01Suite,
     765                 :            :                                     sres_Chi2, sres_CreateChi2,
     766                 :            :                                     sres_DeleteChi2,
     767                 :            :                                     long, long, int, int, int, int > > >
     768 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Matrix Rank L=5000 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     769                 :          2 :              1L, 80L, 0, 30, 5000, 5000 );
     770                 :            : 
     771                 :            :   // Marsaglia's Modified Savir
     772                 :            :   stack.add< TestU01< TestU01Props< tag::Savir2, CProxy_TestU01Suite,
     773                 :            :                                     sres_Chi2, sres_CreateChi2,
     774                 :            :                                     sres_DeleteChi2,
     775                 :            :                                     long, long, int, long, int > > >
     776 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Savir2"},
         [ +  - ][ +  + ]
                 [ -  - ]
     777                 :          2 :              10L, 10L * MILLION, 10, 1024L * 1024L, 30 );
     778                 :            : 
     779                 :            :   // Marsaglia's greatest common divisor
     780                 :            :   stack.add< TestU01< TestU01Props< tag::GCD, CProxy_TestU01Suite,
     781                 :            :                                     smarsa_Res2, smarsa_CreateRes2,
     782                 :            :                                     smarsa_DeleteRes2,
     783                 :            :                                     long, long, int, int > > >
     784 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"GCD"},
         [ +  - ][ +  + ]
                 [ -  - ]
     785                 :          2 :              10L, 50L * MILLION, 0, 30 );
     786                 :            : 
     787                 :            :   // Random Walk 1, L = 50, r = 0
     788                 :            :   stack.add< TestU01< TestU01Props< tag::RandomWalk1, CProxy_TestU01Suite,
     789                 :            :                                     swalk_Res, swalk_CreateRes,
     790                 :            :                                     swalk_DeleteRes,
     791                 :            :                                     long, long, int, int, long, long > > >
     792 [ +  - ][ +  - ]:          6 :            ( proxy, tests, rng, gen, {"Random Walk 1 Stat H L=50 r=0",
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  + ]
                 [ -  - ]
     793                 :            :                                       "Random Walk 1 Stat M L=50 r=0",
     794                 :            :                                       "Random Walk 1 Stat J L=50 r=0",
     795                 :            :                                       "Random Walk 1 Stat R L=50 r=0",
     796                 :            :                                       "Random Walk 1 Stat C L=50 r=0"},
     797                 :          6 :              1L, 100L * MILLION, 0, 5, 50L, 50L );
     798                 :            : 
     799                 :            :   // Random Walk 1, L = 50, r = 25
     800                 :            :   stack.add< TestU01< TestU01Props< tag::RandomWalk1, CProxy_TestU01Suite,
     801                 :            :                                     swalk_Res, swalk_CreateRes,
     802                 :            :                                     swalk_DeleteRes,
     803                 :            :                                     long, long, int, int, long, long > > >
     804 [ +  - ][ +  - ]:          6 :            ( proxy, tests, rng, gen, {"Random Walk 1 Stat H L=50 r=25",
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  + ]
                 [ -  - ]
     805                 :            :                                       "Random Walk 1 Stat M L=50 r=25",
     806                 :            :                                       "Random Walk 1 Stat J L=50 r=25",
     807                 :            :                                       "Random Walk 1 Stat R L=50 r=25",
     808                 :            :                                       "Random Walk 1 Stat C L=50 r=25"},
     809                 :          6 :              1L, 100L * MILLION, 25, 5, 50L, 50L );
     810                 :            : 
     811                 :            :   // Random Walk 1, L = 1000, r = 0
     812                 :            :   stack.add< TestU01< TestU01Props< tag::RandomWalk1, CProxy_TestU01Suite,
     813                 :            :                                     swalk_Res, swalk_CreateRes,
     814                 :            :                                     swalk_DeleteRes,
     815                 :            :                                     long, long, int, int, long, long > > >
     816 [ +  - ][ +  - ]:          6 :            ( proxy, tests, rng, gen, {"Random Walk 1 Stat H L=1000 r=0",
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  + ]
                 [ -  - ]
     817                 :            :                                       "Random Walk 1 Stat M L=1000 r=0",
     818                 :            :                                       "Random Walk 1 Stat J L=1000 r=0",
     819                 :            :                                       "Random Walk 1 Stat R L=1000 r=0",
     820                 :            :                                       "Random Walk 1 Stat C L=1000 r=0"},
     821                 :          6 :              1L, 10L * MILLION, 0, 10, 1000L, 1000L );
     822                 :            : 
     823                 :            :   // Random Walk 1, L = 1000, r = 20
     824                 :            :   stack.add< TestU01< TestU01Props< tag::RandomWalk1, CProxy_TestU01Suite,
     825                 :            :                                     swalk_Res, swalk_CreateRes,
     826                 :            :                                     swalk_DeleteRes,
     827                 :            :                                     long, long, int, int, long, long > > >
     828 [ +  - ][ +  - ]:          6 :            ( proxy, tests, rng, gen, {"Random Walk 1 Stat H L=1000 r=20",
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  + ]
                 [ -  - ]
     829                 :            :                                       "Random Walk 1 Stat M L=1000 r=20",
     830                 :            :                                       "Random Walk 1 Stat J L=1000 r=20",
     831                 :            :                                       "Random Walk 1 Stat R L=1000 r=20",
     832                 :            :                                       "Random Walk 1 Stat C L=1000 r=20"},
     833                 :          6 :              1L, 10L * MILLION, 20, 10, 1000L, 1000L );
     834                 :            : 
     835                 :            :   // Random Walk 1, L = 10000, r = 0
     836                 :            :   stack.add< TestU01< TestU01Props< tag::RandomWalk1, CProxy_TestU01Suite,
     837                 :            :                                     swalk_Res, swalk_CreateRes,
     838                 :            :                                     swalk_DeleteRes,
     839                 :            :                                     long, long, int, int, long, long > > >
     840 [ +  - ][ +  - ]:          6 :            ( proxy, tests, rng, gen, {"Random Walk 1 Stat H L=10000 r=0",
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  + ]
                 [ -  - ]
     841                 :            :                                       "Random Walk 1 Stat M L=10000 r=0",
     842                 :            :                                       "Random Walk 1 Stat J L=10000 r=0",
     843                 :            :                                       "Random Walk 1 Stat R L=10000 r=0",
     844                 :            :                                       "Random Walk 1 Stat C L=10000 r=0"},
     845                 :          6 :              1L, static_cast<long>(MILLION), 0, 15, 10000L, 10000L );
     846                 :            : 
     847                 :            :   // Random Walk 1, L = 10000, r = 15
     848                 :            :   stack.add< TestU01< TestU01Props< tag::RandomWalk1, CProxy_TestU01Suite,
     849                 :            :                                     swalk_Res, swalk_CreateRes,
     850                 :            :                                     swalk_DeleteRes,
     851                 :            :                                     long, long, int, int, long, long > > >
     852 [ +  - ][ +  - ]:          6 :            ( proxy, tests, rng, gen, {"Random Walk 1 Stat H L=10000 r=15",
         [ +  - ][ +  - ]
         [ +  - ][ +  - ]
         [ +  - ][ +  + ]
                 [ -  - ]
     853                 :            :                                       "Random Walk 1 Stat M L=10000 r=15",
     854                 :            :                                       "Random Walk 1 Stat J L=10000 r=15",
     855                 :            :                                       "Random Walk 1 Stat R L=10000 r=15",
     856                 :            :                                       "Random Walk 1 Stat C L=10000 r=15"},
     857                 :          6 :              1L, static_cast<long>(MILLION), 15, 15, 10000L, 10000L );
     858                 :            : 
     859                 :            :   // Linear Complexity, r = 0
     860                 :            :   stack.add< TestU01< TestU01Props< tag::LinearComp, CProxy_TestU01Suite,
     861                 :            :                                     scomp_Res, scomp_CreateRes,
     862                 :            :                                     scomp_DeleteRes,
     863                 :            :                                     long, long, int, int > > >
     864 [ +  - ][ +  - ]:          3 :            ( proxy, tests, rng, gen, {"Linear Complexity Jump r=0",
         [ +  - ][ +  - ]
         [ +  + ][ -  - ]
     865                 :            :                                       "Linear Complexity Size r=0"},
     866                 :          3 :              1L, 400L * THOUSAND + 20, 0, 1 );
     867                 :            : 
     868                 :            :   // Linear Complexity, r = 29
     869                 :            :   stack.add< TestU01< TestU01Props< tag::LinearComp, CProxy_TestU01Suite,
     870                 :            :                                     scomp_Res, scomp_CreateRes,
     871                 :            :                                     scomp_DeleteRes,
     872                 :            :                                     long, long, int, int > > >
     873 [ +  - ][ +  - ]:          3 :            ( proxy, tests, rng, gen, {"Linear Complexity Jump r=29",
         [ +  - ][ +  - ]
         [ +  + ][ -  - ]
     874                 :            :                                       "Linear Complexity Size r=29"},
     875                 :          3 :              1L, 400L * THOUSAND + 20, 29, 1 );
     876                 :            : 
     877                 :            :   // Lempel-Ziv Compressibility, r = 0
     878                 :            :   stack.add< TestU01< TestU01Props< tag::LempelZiv, CProxy_TestU01Suite,
     879                 :            :                                     sres_Basic, sres_CreateBasic,
     880                 :            :                                     sres_DeleteBasic,
     881                 :            :                                     long, int, int, int > > >
     882 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Lempel-Ziv Compressibility r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     883                 :          2 :              10L, 27, 0, 30 );
     884                 :            : 
     885                 :            :   // Lempel-Ziv Compressibility, r = 15
     886                 :            :   stack.add< TestU01< TestU01Props< tag::LempelZiv, CProxy_TestU01Suite,
     887                 :            :                                     sres_Basic, sres_CreateBasic,
     888                 :            :                                     sres_DeleteBasic,
     889                 :            :                                     long, int, int, int > > >
     890 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Lempel-Ziv Compressibility r=15"},
         [ +  - ][ +  + ]
                 [ -  - ]
     891                 :          2 :              10L, 27, 15, 15 );
     892                 :            : 
     893                 :            :   // Fourier3, r = 0
     894                 :            :   stack.add< TestU01< TestU01Props< tag::Fourier3, CProxy_TestU01Suite,
     895                 :            :                                     sspectral_Res, sspectral_CreateRes,
     896                 :            :                                     sspectral_DeleteRes,
     897                 :            :                                     long, int, int, int > > >
     898 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Fourier 3 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     899                 :          2 :              100L * THOUSAND, 14, 0, 3 );
     900                 :            : 
     901                 :            :   // Fourier3, r = 20
     902                 :            :   stack.add< TestU01< TestU01Props< tag::Fourier3, CProxy_TestU01Suite,
     903                 :            :                                     sspectral_Res, sspectral_CreateRes,
     904                 :            :                                     sspectral_DeleteRes,
     905                 :            :                                     long, int, int, int > > >
     906 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Fourier 3 r=27"},
         [ +  - ][ +  + ]
                 [ -  - ]
     907                 :          2 :              100L * THOUSAND, 14, 27, 3 );
     908                 :            : 
     909                 :            :   // Longes Head Run, r = 0
     910                 :            :   stack.add< TestU01< TestU01Props< tag::LongestHeadRun, CProxy_TestU01Suite,
     911                 :            :                                     sstring_Res2, sstring_CreateRes2,
     912                 :            :                                     sstring_DeleteRes2,
     913                 :            :                                     long, long, int, int, long > > >
     914 [ +  - ][ +  - ]:          3 :            ( proxy, tests, rng, gen, {"Longest Head Run Chi r=0",
         [ +  - ][ +  - ]
         [ +  + ][ -  - ]
     915                 :            :                                       "Longest Head Run Disc r=0"},
     916                 :          3 :              1L, 1000L, 0, 3, 20L + 10L * MILLION );
     917                 :            : 
     918                 :            :   // Longes Head Run, r = 27
     919                 :            :   stack.add< TestU01< TestU01Props< tag::LongestHeadRun, CProxy_TestU01Suite,
     920                 :            :                                     sstring_Res2, sstring_CreateRes2,
     921                 :            :                                     sstring_DeleteRes2,
     922                 :            :                                     long, long, int, int, long > > >
     923 [ +  - ][ +  - ]:          3 :            ( proxy, tests, rng, gen, {"Longest Head Run Chi r=27",
         [ +  - ][ +  - ]
         [ +  + ][ -  - ]
     924                 :            :                                       "Longest Head Run Disc r=27"},
     925                 :          3 :              1L, 1000L, 27, 3, 20L + 10L * MILLION );
     926                 :            : 
     927                 :            :   // Periods In Strings, r = 0
     928                 :            :   stack.add< TestU01< TestU01Props< tag::PeriodsInStrings, CProxy_TestU01Suite,
     929                 :            :                                     sres_Chi2, sres_CreateChi2,
     930                 :            :                                     sres_DeleteChi2,
     931                 :            :                                     long, long, int, int > > >
     932 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Periods In Strings r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     933                 :          2 :              10L, BILLION / 2, 0, 10 );
     934                 :            : 
     935                 :            :   // Periods In Strings, r = 20
     936                 :            :   stack.add< TestU01< TestU01Props< tag::PeriodsInStrings, CProxy_TestU01Suite,
     937                 :            :                                     sres_Chi2, sres_CreateChi2,
     938                 :            :                                     sres_DeleteChi2,
     939                 :            :                                     long, long, int, int > > >
     940 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Periods In Strings r=20"},
         [ +  - ][ +  + ]
                 [ -  - ]
     941                 :          2 :              10L, BILLION / 2, 20, 10 );
     942                 :            : 
     943                 :            :   // Hamming Weight 2, r = 0
     944                 :            :   stack.add< TestU01< TestU01Props< tag::HammingWeight2, CProxy_TestU01Suite,
     945                 :            :                                     sres_Basic, sres_CreateBasic,
     946                 :            :                                     sres_DeleteBasic,
     947                 :            :                                     long, long, int, int, long > > >
     948 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Hamming Weight 2 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     949                 :          0 :              10L, static_cast<long>(BILLION), 0, 3,
     950                 :          2 :                          static_cast<long>(MILLION) );
     951                 :            : 
     952                 :            :   // Hamming Weight 2, r = 27
     953                 :            :   stack.add< TestU01< TestU01Props< tag::HammingWeight2, CProxy_TestU01Suite,
     954                 :            :                                     sres_Basic, sres_CreateBasic,
     955                 :            :                                     sres_DeleteBasic,
     956                 :            :                                     long, long, int, int, long > > >
     957 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Hamming Weight 2 r=27"},
         [ +  - ][ +  + ]
                 [ -  - ]
     958                 :          0 :              10L, static_cast<long>(BILLION), 27, 3,
     959                 :          2 :                          static_cast<long>(MILLION) );
     960                 :            : 
     961                 :            :   // Hamming Correlation, L = 30
     962                 :            :   stack.add< TestU01< TestU01Props< tag::HammingCorr, CProxy_TestU01Suite,
     963                 :            :                                     sstring_Res, sstring_CreateRes,
     964                 :            :                                     sstring_DeleteRes,
     965                 :            :                                     long, long, int, int, int> > >
     966 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Hamming Correlation L=30"},
         [ +  - ][ +  + ]
                 [ -  - ]
     967                 :          2 :              1L, static_cast<long>(BILLION), 10, 10, 30 );
     968                 :            : 
     969                 :            :   // Hamming Correlation, L = 300
     970                 :            :   stack.add< TestU01< TestU01Props< tag::HammingCorr, CProxy_TestU01Suite,
     971                 :            :                                     sstring_Res, sstring_CreateRes,
     972                 :            :                                     sstring_DeleteRes,
     973                 :            :                                     long, long, int, int, int> > >
     974 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Hamming Correlation L=300"},
         [ +  - ][ +  + ]
                 [ -  - ]
     975                 :          2 :              1L, 100L * MILLION, 10, 10, 10 * 30 );
     976                 :            : 
     977                 :            :   // Hamming Correlation, L = 1200
     978                 :            :   stack.add< TestU01< TestU01Props< tag::HammingCorr, CProxy_TestU01Suite,
     979                 :            :                                     sstring_Res, sstring_CreateRes,
     980                 :            :                                     sstring_DeleteRes,
     981                 :            :                                     long, long, int, int, int> > >
     982 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Hamming Correlation L=1200"},
         [ +  - ][ +  + ]
                 [ -  - ]
     983                 :          2 :              1L, 100L * MILLION, 10, 10, 40 * 30 );
     984                 :            : 
     985                 :            :   // Hamming independence, L = 30, r = 0
     986                 :            :   stack.add< TestU01< TestU01Props< tag::HammingIndep, CProxy_TestU01Suite,
     987                 :            :                                     sstring_Res, sstring_CreateRes,
     988                 :            :                                     sstring_DeleteRes,
     989                 :            :                                     long, long, int, int, int, int > > >
     990 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Hamming Independence L=30 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
     991                 :          2 :              10L, 30L * MILLION, 0, 3, 30, 0 );
     992                 :            : 
     993                 :            :   // Hamming independence, L = 30, r = 27
     994                 :            :   stack.add< TestU01< TestU01Props< tag::HammingIndep, CProxy_TestU01Suite,
     995                 :            :                                     sstring_Res, sstring_CreateRes,
     996                 :            :                                     sstring_DeleteRes,
     997                 :            :                                     long, long, int, int, int, int > > >
     998 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Hamming Independence L=30 r=27"},
         [ +  - ][ +  + ]
                 [ -  - ]
     999                 :          2 :              10L, 30L * MILLION, 27, 3, 30, 0 );
    1000                 :            : 
    1001                 :            :   // Hamming independence, L = 300, r = 0
    1002                 :            :   stack.add< TestU01< TestU01Props< tag::HammingIndep, CProxy_TestU01Suite,
    1003                 :            :                                     sstring_Res, sstring_CreateRes,
    1004                 :            :                                     sstring_DeleteRes,
    1005                 :            :                                     long, long, int, int, int, int > > >
    1006 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Hamming Independence L=300 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
    1007                 :          2 :              1L, 30L * MILLION, 0, 4, 10 * 30, 0 );
    1008                 :            : 
    1009                 :            :   // Hamming independence, L = 300, r = 26
    1010                 :            :   stack.add< TestU01< TestU01Props< tag::HammingIndep, CProxy_TestU01Suite,
    1011                 :            :                                     sstring_Res, sstring_CreateRes,
    1012                 :            :                                     sstring_DeleteRes,
    1013                 :            :                                     long, long, int, int, int, int > > >
    1014 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Hamming Independence L=300 r=26"},
         [ +  - ][ +  + ]
                 [ -  - ]
    1015                 :          2 :              1L, 30L * MILLION, 26, 4, 10 * 30, 0 );
    1016                 :            : 
    1017                 :            :   // Hamming independence, L = 1200, r = 0
    1018                 :            :   stack.add< TestU01< TestU01Props< tag::HammingIndep, CProxy_TestU01Suite,
    1019                 :            :                                     sstring_Res, sstring_CreateRes,
    1020                 :            :                                     sstring_DeleteRes,
    1021                 :            :                                     long, long, int, int, int, int > > >
    1022 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Hamming Independence L=1200 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
    1023                 :          2 :              1L, 10L * MILLION, 0, 5, 40 * 30, 0 );
    1024                 :            : 
    1025                 :            :   // Hamming independence, L = 1200, r = 25
    1026                 :            :   stack.add< TestU01< TestU01Props< tag::HammingIndep, CProxy_TestU01Suite,
    1027                 :            :                                     sstring_Res, sstring_CreateRes,
    1028                 :            :                                     sstring_DeleteRes,
    1029                 :            :                                     long, long, int, int, int, int > > >
    1030 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Hamming Independence L=1200 r=25"},
         [ +  - ][ +  + ]
                 [ -  - ]
    1031                 :          2 :              1L, 10L * MILLION, 25, 5, 40 * 30, 0 );
    1032                 :            : 
    1033                 :            :   // String Run, r = 0
    1034                 :            :   stack.add< TestU01< TestU01Props< tag::StringRun, CProxy_TestU01Suite,
    1035                 :            :                                     sstring_Res3, sstring_CreateRes3,
    1036                 :            :                                     sstring_DeleteRes3,
    1037                 :            :                                     long, long, int, int > > >
    1038 [ +  - ][ +  - ]:          3 :            ( proxy, tests, rng, gen, {"String Run NRuns r=0",
         [ +  - ][ +  - ]
         [ +  + ][ -  - ]
    1039                 :            :                                       "String Run NBits r=0"},
    1040                 :          3 :              1L, 2L * BILLION, 0, 3 );
    1041                 :            : 
    1042                 :            :   // String Run, r = 27
    1043                 :            :   stack.add< TestU01< TestU01Props< tag::StringRun, CProxy_TestU01Suite,
    1044                 :            :                                     sstring_Res3, sstring_CreateRes3,
    1045                 :            :                                     sstring_DeleteRes3,
    1046                 :            :                                     long, long, int, int > > >
    1047 [ +  - ][ +  - ]:          3 :            ( proxy, tests, rng, gen, {"String Run NRuns r=27",
         [ +  - ][ +  - ]
         [ +  + ][ -  - ]
    1048                 :            :                                       "String Run NBits r=27"},
    1049                 :          3 :              1L, 2L * BILLION, 27, 3 );
    1050                 :            : 
    1051                 :            :   // Autocorrelation, d = 1, r = 0
    1052                 :            :   stack.add< TestU01< TestU01Props< tag::AutoCorr, CProxy_TestU01Suite,
    1053                 :            :                                     sres_Basic, sres_CreateBasic,
    1054                 :            :                                     sres_DeleteBasic,
    1055                 :            :                                     long, long, int, int, int > > >
    1056 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Autocorrelation d=1 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
    1057                 :          2 :              10L, 30L + BILLION, 0, 3, 1 );
    1058                 :            : 
    1059                 :            :   // Autocorrelation, d = 3, r = 0
    1060                 :            :   stack.add< TestU01< TestU01Props< tag::AutoCorr, CProxy_TestU01Suite,
    1061                 :            :                                     sres_Basic, sres_CreateBasic,
    1062                 :            :                                     sres_DeleteBasic,
    1063                 :            :                                     long, long, int, int, int > > >
    1064 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Autocorrelation d=3 r=0"},
         [ +  - ][ +  + ]
                 [ -  - ]
    1065                 :          2 :              10L, 30L + BILLION, 0, 3, 3 );
    1066                 :            : 
    1067                 :            :   // Autocorrelation, d = 1, r =27
    1068                 :            :   stack.add< TestU01< TestU01Props< tag::AutoCorr, CProxy_TestU01Suite,
    1069                 :            :                                     sres_Basic, sres_CreateBasic,
    1070                 :            :                                     sres_DeleteBasic,
    1071                 :            :                                     long, long, int, int, int > > >
    1072 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Autocorrelation d=1 r=27"},
         [ +  - ][ +  + ]
                 [ -  - ]
    1073                 :          2 :              10L, 30L + BILLION, 27, 3, 1 );
    1074                 :            : 
    1075                 :            :   // Autocorrelation, d = 3, r = 27
    1076                 :            :   stack.add< TestU01< TestU01Props< tag::AutoCorr, CProxy_TestU01Suite,
    1077                 :            :                                     sres_Basic, sres_CreateBasic,
    1078                 :            :                                     sres_DeleteBasic,
    1079                 :            :                                     long, long, int, int, int > > >
    1080 [ +  - ][ +  - ]:          2 :            ( proxy, tests, rng, gen, {"Autocorrelation d=3 r=27"},
         [ +  - ][ +  + ]
                 [ -  - ]
    1081                 :          2 :              10L, 30L + BILLION, 27, 3, 3 );
    1082                 :          1 : }

Generated by: LCOV version 1.14