Test case for lognormal distribution random variable stream generator. More...
Public Member Functions  
LogNormalTestCase ()  
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/overflow bins. More...  
Public Member Functions inherited from ns3::TestCase  
virtual  ~TestCase () 
Destructor. More...  
std::string  GetName (void) const 
Private Member Functions  
virtual void  DoRun (void) 
Implementation to actually run this TestCase. More...  
Static Private Attributes  
static constexpr double  TOLERANCE {3e2} 
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 chisquare 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...  
TestCase *  GetParent () 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...  
Test case for lognormal distribution random variable stream generator.
Definition at line 1349 of file randomvariablestreamtestsuite.cc.
ns3::test::RandomVariable::LogNormalTestCase::LogNormalTestCase  (  ) 
Definition at line 1369 of file randomvariablestreamtestsuite.cc.

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; }
[in]  rng  The random number generator to test. 
Reimplemented from ns3::test::RandomVariable::TestCaseBase.
Definition at line 1374 of file randomvariablestreamtestsuite.cc.
References ns3::test::RandomVariable::TestCaseBase::ChiSquared(), ns3::test::RandomVariable::TestCaseBase::N_BINS, ns3::test::RandomVariable::TestCaseBase::N_MEASUREMENTS, samplerngplot::rng, and ns3::test::RandomVariable::TestCaseBase::UniformHistogramBins().

privatevirtual 
Implementation to actually run this TestCase.
Subclasses should override this method to conduct their tests.
Implements ns3::TestCase.
Definition at line 1400 of file randomvariablestreamtestsuite.cc.
References ns3::test::RandomVariable::TestCaseBase::Average(), ns3::test::RandomVariable::TestCaseBase::ChiSquaredsAverage(), ns3::test::RandomVariable::TestCaseBase::N_BINS, ns3::test::RandomVariable::TestCaseBase::N_RUNS, NS_LOG_FUNCTION, NS_TEST_ASSERT_MSG_EQ_TOL, NS_TEST_ASSERT_MSG_LT, ns3::test::RandomVariable::TestCaseBase::SetTestSuiteSeed(), TOLERANCE, and samplerngplot::x.

staticprivate 
Tolerance for testing rng values against expectation, as a fraction of mean value.
Definition at line 1366 of file randomvariablestreamtestsuite.cc.
Referenced by DoRun().