23 #include <ns3/double.h>
24 #include <ns3/parabolic-antenna-model.h>
25 #include <ns3/simulator.h>
36 enum ParabolicAntennaModelGainTestCondition {
44 static std::string BuildNameString (
Angles a,
double b,
double o,
double g);
49 virtual void DoRun (
void);
55 double m_expectedGain;
56 ParabolicAntennaModelGainTestCondition m_cond;
59 std::string ParabolicAntennaModelTestCase::BuildNameString (
Angles a,
double b,
double o,
double g)
61 std::ostringstream oss;
62 oss <<
"theta=" << a.
theta <<
" , phi=" << a.
phi
63 <<
", beamdwidth=" << b <<
"deg"
64 <<
", orientation=" << o
65 <<
", maxAttenuation=" << g <<
" dB";
70 ParabolicAntennaModelTestCase::ParabolicAntennaModelTestCase (Angles a,
double b,
double o,
double g,
double expectedGainDb, ParabolicAntennaModelGainTestCondition cond)
71 : TestCase (BuildNameString (a, b, o, g)),
76 m_expectedGain (expectedGainDb),
89 a->SetAttribute (
"MaxAttenuation",
DoubleValue (m_g));
90 double actualGain = a->GetGainDb (m_a);
94 NS_TEST_EXPECT_MSG_EQ_TOL (actualGain, m_expectedGain, 0.001,
"wrong value of the radiation pattern");
97 NS_TEST_EXPECT_MSG_LT (actualGain, m_expectedGain,
"gain higher than expected");
113 ParabolicAntennaModelTestSuite::ParabolicAntennaModelTestSuite ()
114 :
TestSuite (
"parabolic-antenna-model", UNIT)
185 static ParabolicAntennaModelTestSuite staticParabolicAntennaModelTestSuiteInstance;
smart pointer class similar to boost::intrusive_ptr
#define NS_LOG_FUNCTION(parameters)
double DegreesToRadians(double degrees)
converts degrees to radians
#define NS_LOG_COMPONENT_DEFINE(name)
virtual void DoRun(void)
Implementation to actually run this test case.
void AddTestCase(TestCase *testCase) NS_DEPRECATED
Add an individual test case to this test suite.
Hold an floating point type.