20 #include "ns3/abort.h"
22 #include "ns3/config.h"
23 #include "ns3/double.h"
24 #include "ns3/propagation-loss-model.h"
25 #include "ns3/constant-position-mobility-model.h"
26 #include "ns3/simulator.h"
44 virtual void DoRun (
void);
57 :
TestCase (
"Check to see that the ns-3 Friis propagation loss model provides correct received power"), m_testVectors ()
78 double txPowerW = 0.05035702;
79 double txPowerdBm = 10 * std::log10 (txPowerW) + 30;
93 testVector.
m_pt = txPowerdBm;
94 testVector.
m_pr = 4.98265e-10;
99 testVector.
m_pt = txPowerdBm;
100 testVector.
m_pr = 1.99306e-11;
105 testVector.
m_pt = txPowerdBm;
106 testVector.
m_pr = 4.98265e-12;
111 testVector.
m_pt = txPowerdBm;
112 testVector.
m_pr = 1.24566e-12;
127 double resultdBm = lossModel->CalcRxPower (testVector.
m_pt, a, b);
128 double resultW = std::pow (10.0, resultdBm/10.0)/1000;
142 virtual void DoRun (
void);
156 :
TestCase (
"Check to see that the ns-3 TwoRayGround propagation loss model provides correct received power"),
178 double txPowerW = 0.05035702;
179 double txPowerdBm = 10 * std::log10 (txPowerW) + 30;
194 testVector.
m_pt = txPowerdBm;
195 testVector.
m_pr = 4.98265e-10;
202 testVector.
m_pt = txPowerdBm;
203 testVector.
m_pr = 4.07891862e-12;
208 testVector.
m_pt = txPowerdBm;
209 testVector.
m_pr = 2.5493241375e-13;
214 testVector.
m_pt = txPowerdBm;
215 testVector.
m_pr = 1.593327585938e-14;
224 testVector.
m_pt = txPowerdBm;
225 testVector.
m_pr = 1.13303295e-11;
232 testVector.
m_pt = txPowerdBm;
233 testVector.
m_pr = 3.42742467375e-12;
240 testVector.
m_pt = txPowerdBm;
241 testVector.
m_pr = 9.36522547734e-13;
257 double resultdBm = lossModel->CalcRxPower (testVector.
m_pt, a, b);
258 double resultW = std::pow (10.0, resultdBm / 10.0) / 1000;
271 virtual void DoRun (
void);
284 :
TestCase (
"Check to see that the ns-3 Log Distance propagation loss model provides correct received power"), m_testVectors ()
301 double txPowerW = 0.05035702;
302 double txPowerdBm = 10 * std::log10 (txPowerW) + 30;
313 testVector.
m_pt = txPowerdBm;
314 testVector.
m_pr = 4.98265e-9;
319 testVector.
m_pt = txPowerdBm;
320 testVector.
m_pr = 6.22831e-10;
325 testVector.
m_pt = txPowerdBm;
326 testVector.
m_pr = 7.78539e-11;
331 testVector.
m_pt = txPowerdBm;
332 testVector.
m_pr = 9.73173e-12;
345 double resultdBm = lossModel->CalcRxPower (testVector.
m_pt, a, b);
346 double resultW = std::pow (10.0, resultdBm/10.0)/1000;
358 virtual void DoRun (
void);
362 :
TestCase (
"Test MatrixPropagationLossModel")
374 for (
int i = 0; i < 3; ++i)
376 m[i] = CreateObject<ConstantPositionMobilityModel> ();
385 loss.
SetLoss (m[0], m[2], 30,
false);
386 loss.
SetLoss (m[2], m[0], 100,
false);
396 Simulator::Destroy ();
406 virtual void DoRun (
void);
410 :
TestCase (
"Test RangePropagationLossModel")
429 double txPwrdBm = -80.0;
430 double tolerance = 1e-6;
431 double resultdBm = lossModel->
CalcRxPower (txPwrdBm, a, b);
434 resultdBm = lossModel->
CalcRxPower (txPwrdBm, a, b);
436 Simulator::Destroy ();
446 :
TestSuite (
"propagation-loss-model", UNIT)
virtual ~TwoRayGroundPropagationLossModelTestCase()
void SetDefaultLoss(double)
Set default loss (in dB, positive) to be used, infinity if not set.
NS_LOG_COMPONENT_DEFINE("GrantedTimeWindowMpiInterface")
TestVectors< TestVector > m_testVectors
virtual void DoRun(void)
Implementation to actually run this TestCase.
LogDistancePropagationLossModelTestCase()
A simple way to store test vectors (for stimulus or from responses)
static PropagationLossModelsTestSuite propagationLossModelsTestSuite
MatrixPropagationLossModelTestCase()
TestVectors< TestVector > m_testVectors
virtual ~RangePropagationLossModelTestCase()
virtual ~MatrixPropagationLossModelTestCase()
#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 ...
virtual ~LogDistancePropagationLossModelTestCase()
double CalcRxPower(double txPowerDbm, Ptr< MobilityModel > a, Ptr< MobilityModel > b) const
void SetDefault(std::string name, const AttributeValue &value)
TestVectors< TestVector > m_testVectors
RangePropagationLossModelTestCase()
FriisPropagationLossModelTestCase()
void AddTestCase(TestCase *testCase) NS_DEPRECATED
Add an individual child TestCase case to this TestCase.
void SetPosition(const Vector &position)
virtual void DoRun(void)
Implementation to actually run this TestCase.
virtual ~FriisPropagationLossModelTestCase()
void SetLoss(Ptr< MobilityModel > a, Ptr< MobilityModel > b, double loss, bool symmetric=true)
Set loss (in dB, positive) between pair of ns-3 objects (typically, nodes).
Hold a floating point type.
virtual void DoRun(void)
Implementation to actually run this TestCase.
The propagation loss is fixed for each pair of nodes and doesn't depend on their actual positions...
virtual void DoRun(void)
Implementation to actually run this TestCase.
TwoRayGroundPropagationLossModelTestCase()
#define NS_TEST_ASSERT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report and abort if not.
PropagationLossModelsTestSuite()
virtual void DoRun(void)
Implementation to actually run this TestCase.