Branch data Line data Source code
1 : : // *****************************************************************************
2 : : /*!
3 : : \file src/RNGTest/TestU01.hpp
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 TestU01 statistical test
9 : : \details TestU01 statistical test
10 : : */
11 : : // *****************************************************************************
12 : : #ifndef TestU01_h
13 : : #define TestU01_h
14 : :
15 : : #include "TestU01Props.hpp"
16 : :
17 : : #include "NoWarning/testu01.decl.h"
18 : :
19 : : namespace rngtest {
20 : :
21 : : //! TestU01 statistical test used polymorphically with rngtest::StatTest
22 : : template< class TestU01Props >
23 : : class TestU01 : public CBase_TestU01< TestU01Props > {
24 : :
25 : : public:
26 : : using Props = TestU01Props;
27 : : using Proxy = CProxy_TestU01< TestU01Props >;
28 : :
29 : : //! Constructor
30 : : //! \param[in] props TestU01 properties
31 [ + - ]: 120 : explicit TestU01( const TestU01Props& props ) : m_props( props ) {}
32 : :
33 : : //! Query and contribute number of results/test, i.e., p-values
34 [ - - ][ - - ]: 40 : void npval() { m_props.proxy().npval( m_props.npval() ); }
[ - - ][ - - ]
[ - - ][ - - ]
[ - - ][ - - ]
[ - - ][ - - ]
[ - - ][ - - ]
[ - - ][ - - ]
[ - - ][ - - ]
[ - - ][ - - ]
[ - - ][ - - ]
[ - - ][ - - ]
[ - - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ][ + - ]
[ + - ]
35 : :
36 : : //! Query and contribute test name(s)
37 [ + - ]: 40 : void names() { m_props.proxy().names( m_props.names() ); }
38 : :
39 : : //! Run test then evaluate it
40 [ + - ]: 120 : void run() { m_props.proxy().evaluate( m_props.run() ); }
41 : :
42 : : //! Query and contribute test run time measured in seconds
43 [ + - ]: 240 : void time() { m_props.proxy().time( m_props.time() ); }
44 : :
45 : : private:
46 : : TestU01Props m_props; //!< TestU01 test properties
47 : : };
48 : :
49 : : } // rngtest::
50 : :
51 : : #define CK_TEMPLATES_ONLY
52 : : #include "NoWarning/testu01.def.h"
53 : : #undef CK_TEMPLATES_ONLY
54 : :
55 : : #endif // TestU01_h
|