A Discrete-Event Network Simulator
API
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
histogram-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) 2009 INESC Porto
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: Pedro Fortuna <pedro.fortuna@inescporto.pt> <pedro.fortuna@gmail.com>
19 //
20 
21 #include "ns3/histogram.h"
22 #include "ns3/test.h"
23 
24 namespace ns3 {
25 
27 private:
28 public:
30  virtual void DoRun (void);
31 
32 
33 };
34 
36  : ns3::TestCase ("Histogram")
37 {
38 }
39 
40 
41 void
43 {
44  Histogram h0 (3.5);
45  // Testing floating-point bin widths
46  {
47  for (int i=1; i <= 10; i++)
48  {
49  h0.AddValue (3.4);
50  }
51 
52  for (int i=1; i <= 5; i++)
53  {
54  h0.AddValue (3.6);
55  }
56 
57  NS_TEST_EXPECT_MSG_EQ_TOL (h0.GetBinWidth (0), 3.5, 1e-6, "");
58  NS_TEST_EXPECT_MSG_EQ (h0.GetNBins (), 2, "");
59  NS_TEST_EXPECT_MSG_EQ_TOL (h0.GetBinStart (1), 3.5, 1e-6, "");
60  NS_TEST_EXPECT_MSG_EQ (h0.GetBinCount (0), 10, "");
61  NS_TEST_EXPECT_MSG_EQ (h0.GetBinCount (1), 5, "");
62  }
63 
64  {
65  // Testing bin expansion
66  h0.AddValue (74.3);
67  NS_TEST_EXPECT_MSG_EQ (h0.GetNBins (), 22, "");
68  NS_TEST_EXPECT_MSG_EQ (h0.GetBinCount (21), 1, "");
69  }
70 }
71 
72 static class HistogramTestSuite : public TestSuite
73 {
74 public:
76  : TestSuite ("histogram", UNIT)
77  {
79  }
81 
82 } // namespace
83 
84 
A suite of tests to run.
Definition: test.h:1025
double GetBinWidth(uint32_t index) const
Returns the bin width.
Definition: histogram.cc:61
encapsulates test code
Definition: test.h:849
#define NS_TEST_EXPECT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report if not.
Definition: test.h:244
uint32_t GetNBins() const
Returns the number of bins in the histogram.
Definition: histogram.cc:43
#define NS_TEST_EXPECT_MSG_EQ_TOL(actual, limit, tol, msg)
Test that actual and expected (limit) values are equal to plus or minus some tolerance and report if ...
Definition: test.h:485
virtual void DoRun(void)
Implementation to actually run this TestCase.
ns3::HistogramTestSuite g_HistogramTestSuite
void AddTestCase(TestCase *testCase) NS_DEPRECATED
Add an individual child TestCase case to this TestCase.
Definition: test.cc:173
Fast test.
Definition: test.h:857
uint32_t GetBinCount(uint32_t index)
Get the number of data added to the bin.
Definition: histogram.cc:74
double GetBinStart(uint32_t index)
Returns the bin start, i.e., index*binWidth.
Definition: histogram.cc:49
This test suite implements a Unit Test.
Definition: test.h:1035
void AddValue(double value)
Add a value to the histogram.
Definition: histogram.cc:81
Class used to store data and make an histogram of the data frequency.
Definition: histogram.h:45