23 #include <ns3/double.h>
24 #include <ns3/cosine-antenna-model.h>
25 #include <ns3/simulator.h>
36 enum CosineAntennaModelGainTestCondition {
44 static std::string BuildNameString (
Angles a,
double b,
double o,
double g);
49 virtual void DoRun (
void);
55 double m_expectedGain;
56 CosineAntennaModelGainTestCondition m_cond;
59 std::string CosineAntennaModelTestCase::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 <<
", maxGain=" << g <<
" dB";
70 CosineAntennaModelTestCase::CosineAntennaModelTestCase (Angles a,
double b,
double o,
double g,
double expectedGainDb, CosineAntennaModelGainTestCondition cond)
71 : TestCase (BuildNameString (a, b, o, g)),
76 m_expectedGain (expectedGainDb),
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 CosineAntennaModelTestSuite::CosineAntennaModelTestSuite ()
114 :
TestSuite (
"cosine-antenna-model", UNIT)
206 static CosineAntennaModelTestSuite staticCosineAntennaModelTestSuiteInstance;
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)
void AddTestCase(TestCase *testCase) NS_DEPRECATED
Add an individual test case to this test suite.
virtual void DoRun(void)
Implementation to actually run this test case.
Hold an floating point type.