A Discrete-Event Network Simulator
API
many-uniform-random-variables-one-get-value-call-test-suite.cc
Go to the documentation of this file.
1 /* -*- Mode:C++; c-file-style:"gnu"; indent-tabs-mode:nil; -*- */
2 /*
3  * Copyright (c) 2012 University of Washington
4  *
5  * This program is free software; you can redistribute it and/or modify
6  * it under the terms of the GNU General Public License version 2 as
7  * published by the Free Software Foundation;
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software
16  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17  *
18  * Author: Mitch Watrous (watrous@u.washington.edu)
19  */
20 
21 #include "ns3/test.h"
22 #include "ns3/config.h"
23 #include "ns3/double.h"
24 #include "ns3/random-variable-stream.h"
25 #include <vector>
26 
27 
36 namespace ns3 {
37 
38 namespace tests {
39 
40 
46 {
47 public:
52 
53 private:
54  virtual void DoRun (void);
55 };
56 
58  : TestCase ("Many Uniform Random Variables with One GetValue() Call")
59 {}
60 
62 {}
63 
64 void
66 {
67  const double min = 0.0;
68  const double max = 10.0;
69 
70  Config::SetDefault ("ns3::UniformRandomVariable::Min", DoubleValue (min));
71  Config::SetDefault ("ns3::UniformRandomVariable::Max", DoubleValue (max));
72 
73  // Get 1 value from many uniform random number generators.
74  double value;
75  const int count = 1000000;
76  std::vector< Ptr<UniformRandomVariable> > uniformStreamVector (count);
77  for (int i = 0; i < count; i++)
78  {
79  uniformStreamVector.push_back (CreateObject<UniformRandomVariable> ());
80  value = uniformStreamVector.back ()->GetValue ();
81 
82  NS_TEST_ASSERT_MSG_GT (value, min, "Value less than minimum.");
83  NS_TEST_ASSERT_MSG_LT (value, max, "Value greater than maximum.");
84  }
85 }
86 
92 {
93 public:
96 };
97 
99  : TestSuite ("many-uniform-random-variables-one-get-value-call", PERFORMANCE)
100 {
102 }
103 
109 
110 
111 } // namespace tests
112 
113 } // namespace ns3
static ManyUniformRandomVariablesOneGetValueCallTestSuite g_manyUniformRandomVariablesOneGetValueCallTestSuite
ManuUniformRandomVariablesOneGetValueCallTestSuite instance variable.
A suite of tests to run.
Definition: test.h:1343
Test suite for many uniform distribution random variable stream generators.
encapsulates test code
Definition: test.h:1153
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
Definition: test.cc:299
Test case for many uniform distribution random variable stream generators.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
double max(double x, double y)
void SetDefault(std::string name, const AttributeValue &value)
Definition: config.cc:849
double min(double x, double y)
#define NS_TEST_ASSERT_MSG_GT(actual, limit, msg)
Test that an actual value is greater than a limit and report and abort if not.
Definition: test.h:995
This class can be used to hold variables of floating point type such as &#39;double&#39; or &#39;float&#39;...
Definition: double.h:41
#define NS_TEST_ASSERT_MSG_LT(actual, limit, msg)
Test that an actual value is less than a limit and report and abort if not.
Definition: test.h:809