A Discrete-Event Network Simulator
API
ns3::test::RandomVariable::GammaTestCase Class Reference

Test case for gamma distribution random variable stream generator. More...

+ Inheritance diagram for ns3::test::RandomVariable::GammaTestCase:
+ Collaboration diagram for ns3::test::RandomVariable::GammaTestCase:

Public Member Functions

 GammaTestCase ()
 
double ChiSquaredTest (Ptr< RandomVariableStream > rng) const
 Compute the chi square value from a random variable. More...
 
- Public Member Functions inherited from ns3::test::RandomVariable::TestCaseBase
 TestCaseBase (std::string name)
 Constructor. More...
 
double Average (Ptr< RandomVariableStream > rng) const
 Compute the average of a random variable. More...
 
double ChiSquared (gsl_histogram *h, const std::vector< double > &expected, Ptr< RandomVariableStream > rng) const
 Compute the chi squared value of a sampled distribution compared to the expected distribution. More...
 
double ChiSquaredsAverage (const RngGeneratorBase *generator, std::size_t nRuns) const
 Average the chi squared value over some number of runs, each run with a new instance of the random number generator. More...
 
void SetTestSuiteSeed (void)
 Set the seed used for this test suite. More...
 
std::vector< double > UniformHistogramBins (gsl_histogram *h, double start, double end, bool underflow=true, bool overflow=true) const
 Configure a GSL histogram with uniform bins, with optional under/over-flow bins. More...
 
- Public Member Functions inherited from ns3::TestCase
 TestCase (const TestCase &)=delete
 
virtual ~TestCase ()
 Destructor. More...
 
std::string GetName (void) const
 
TestCaseoperator= (const TestCase &)=delete
 

Private Member Functions

virtual void DoRun (void)
 Implementation to actually run this TestCase. More...
 

Static Private Attributes

static constexpr double TOLERANCE {1e-2}
 Tolerance for testing rng values against expectation, as a fraction of mean value. More...
 

Additional Inherited Members

- Public Types inherited from ns3::TestCase
enum  TestDuration { QUICK = 1 , EXTENSIVE = 2 , TAKES_FOREVER = 3 }
 How long the test takes to execute. More...
 
- Static Public Attributes inherited from ns3::test::RandomVariable::TestCaseBase
static const uint32_t N_BINS {50}
 Number of bins for sampling the distributions. More...
 
static const uint32_t N_MEASUREMENTS {1000000}
 Number of samples to draw when populating the distributions. More...
 
static const uint32_t N_RUNS {5}
 Number of retry attempts to pass a chi-square test. More...
 
- Protected Member Functions inherited from ns3::TestCase
 TestCase (std::string name)
 Constructor. More...
 
void AddTestCase (TestCase *testCase, TestDuration duration=QUICK)
 Add an individual child TestCase to this test suite. More...
 
TestCaseGetParent () const
 Get the parent of this TestCsse. More...
 
bool IsStatusFailure (void) const
 Check if any tests failed. More...
 
bool IsStatusSuccess (void) const
 Check if all tests passed. More...
 
void SetDataDir (std::string directory)
 Set the data directory where reference trace files can be found. More...
 
void ReportTestFailure (std::string cond, std::string actual, std::string limit, std::string message, std::string file, int32_t line)
 Log the failure of this TestCase. More...
 
bool MustAssertOnFailure (void) const
 Check if this run should assert on failure. More...
 
bool MustContinueOnFailure (void) const
 Check if this run should continue on failure. More...
 
std::string CreateDataDirFilename (std::string filename)
 Construct the full path to a file in the data directory. More...
 
std::string CreateTempDirFilename (std::string filename)
 Construct the full path to a file in a temporary directory. More...
 

Detailed Description

Test case for gamma distribution random variable stream generator.

Definition at line 1565 of file random-variable-stream-test-suite.cc.

Constructor & Destructor Documentation

◆ GammaTestCase()

ns3::test::RandomVariable::GammaTestCase::GammaTestCase ( )

Definition at line 1585 of file random-variable-stream-test-suite.cc.

Member Function Documentation

◆ ChiSquaredTest()

double ns3::test::RandomVariable::GammaTestCase::ChiSquaredTest ( Ptr< RandomVariableStream rng) const
virtual

Compute the chi square value from a random variable.

This function sets up the binning and expected distribution needed to actually compute the chi squared value, which should be done by a call to ChiSquared.

This is the point of customization expected to be implemented in derived classes with the appropriate histogram binning and expected distribution. For example

SomeRngTestCase::ChiSquaredTest (Ptr<RandomVariableStream> rng) const { gsl_histogram * h = gsl_histogram_alloc (N_BINS); auto range = UniformHistogramBins (h, -4., 4.); std::vector<double> expected (N_BINS); // Populated expected for (std::size_t i = 0; i < N_BINS; ++i) { expected[i] = ...; expected[i] *= N_MEASUREMENTS; } double chiSquared = ChiSquared (h, expected, rng); gsl_histogram_free (h); return chiSquared; }

Parameters
[in]rngThe random number generator to test.
Returns
The chi squared value.

Reimplemented from ns3::test::RandomVariable::TestCaseBase.

Definition at line 1590 of file random-variable-stream-test-suite.cc.

References sample-rng-plot::alpha, ns3::test::RandomVariable::TestCaseBase::ChiSquared(), ns3::test::RandomVariable::TestCaseBase::N_BINS, ns3::test::RandomVariable::TestCaseBase::N_MEASUREMENTS, sample-rng-plot::rng, and ns3::test::RandomVariable::TestCaseBase::UniformHistogramBins().

+ Here is the call graph for this function:

◆ DoRun()

void ns3::test::RandomVariable::GammaTestCase::DoRun ( void  )
privatevirtual

Member Data Documentation

◆ TOLERANCE

constexpr double ns3::test::RandomVariable::GammaTestCase::TOLERANCE {1e-2}
staticconstexprprivate

Tolerance for testing rng values against expectation, as a fraction of mean value.

Definition at line 1582 of file random-variable-stream-test-suite.cc.

Referenced by DoRun().


The documentation for this class was generated from the following file: