19 #include "ns3/abort.h" 
   21 #include "ns3/config.h" 
   22 #include "ns3/channel-condition-model.h" 
   23 #include "ns3/probabilistic-v2v-channel-condition-model.h" 
   24 #include "ns3/three-gpp-v2v-propagation-loss-model.h" 
   25 #include "ns3/constant-position-mobility-model.h" 
   27 #include "ns3/simulator.h" 
   28 #include "ns3/double.h" 
   29 #include "ns3/uinteger.h" 
   30 #include "ns3/boolean.h" 
   31 #include "ns3/core-module.h" 
   32 #include "ns3/node-container.h" 
   65   virtual void DoRun (
void);
 
   84     double m_pNlosv {0.0};  
 
   91   uint64_t m_numLos {0}; 
 
   92   uint64_t m_numNlosv {0}; 
 
   97   : 
TestCase (
"Test case for the class ProbabilisticV2vUrbanChannelConditionModel"),
 
  109   if (cond->
GetLosCondition () == ChannelCondition::LosConditionValue::LOS)
 
  113   else if (cond->
GetLosCondition () == ChannelCondition::LosConditionValue::NLOSv)
 
  122   RngSeedManager::SetSeed (1);
 
  123   RngSeedManager::SetRun (1);
 
  132   testVector.
m_typeId = ProbabilisticV2vUrbanChannelConditionModel::GetTypeId ();
 
  133   testVector.
m_pNlosv = 
std::min (1.0, 
std::max (0.0, 1 / (0.0396 * 10.0) * exp (-(log (10.0) - 5.2718) * (log (10.0) - 5.2718) / 3.4827)));
 
  140   testVector.
m_typeId = ProbabilisticV2vUrbanChannelConditionModel::GetTypeId ();
 
  141   testVector.
m_pNlosv = 
std::min (1.0, 
std::max (0.0, 1 / (0.0396 * 100.0) * exp (-(log (100.0) - 5.2718) * (log (100.0) - 5.2718) / 3.4827)));
 
  148   testVector.
m_typeId = ProbabilisticV2vUrbanChannelConditionModel::GetTypeId ();
 
  149   testVector.
m_pNlosv = 
std::min (1.0, 
std::max (0.0, 1 / (0.0312 * 10.0) * exp (-(log (10.0) - 5.0063) * (log (10.0) - 5.0063) / 2.4544)));
 
  156   testVector.
m_typeId = ProbabilisticV2vUrbanChannelConditionModel::GetTypeId ();
 
  157   testVector.
m_pNlosv = 
std::min (1.0, 
std::max (0.0, 1 / (0.0312 * 100.0) * exp (-(log (100.0) - 5.0063) * (log (100.0) - 5.0063) / 2.4544)));
 
  164   testVector.
m_typeId = ProbabilisticV2vUrbanChannelConditionModel::GetTypeId ();
 
  165   testVector.
m_pNlosv = 
std::min (1.0, 
std::max (0.0, 1 / (0.0242 * 10.0) * exp (-(log (10.0) - 5.0115) * (log (10.0) - 5.0115) / 2.2092)));
 
  172   testVector.
m_typeId = ProbabilisticV2vUrbanChannelConditionModel::GetTypeId ();
 
  173   testVector.
m_pNlosv = 
std::min (1.0, 
std::max (0.0, 1 / (0.0242 * 100.0) * exp (-(log (100.0) - 5.0115) * (log (100.0) - 5.0115) / 2.2092)));
 
  189   nodes.Get (0)->AggregateObject (a);
 
  190   nodes.Get (1)->AggregateObject (b);
 
  193   uint32_t numberOfReps = 500000;
 
  211       for (uint32_t j = 0; j < numberOfReps; j++)
 
  217       Simulator::Destroy ();
 
  219       double resultPlos = double (
m_numLos) / double (numberOfReps);
 
  220       double resultPnlosv = double (
m_numNlosv) / double (numberOfReps);
 
  255   virtual void DoRun (
void);
 
  287   : 
TestCase (
"Test case for the class ProbabilisticV2vHighwayChannelConditionModel"),
 
  299   if (cond->
GetLosCondition () == ChannelCondition::LosConditionValue::LOS)
 
  303   else if (cond->
GetLosCondition () == ChannelCondition::LosConditionValue::NLOS)
 
  312   RngSeedManager::SetSeed (1);
 
  313   RngSeedManager::SetRun (1);
 
  321   double aLos = 1.5e-6;
 
  322   double bLos = -0.0015;
 
  325   testVector.
m_typeId = ProbabilisticV2vHighwayChannelConditionModel::GetTypeId ();
 
  326   double aNlos = -2.9e-7;
 
  327   double bNlos = 0.00059;
 
  328   double cNlos = 0.0017;
 
  336   testVector.
m_typeId = ProbabilisticV2vHighwayChannelConditionModel::GetTypeId ();
 
  347   testVector.
m_typeId = ProbabilisticV2vHighwayChannelConditionModel::GetTypeId ();
 
  358   testVector.
m_typeId = ProbabilisticV2vHighwayChannelConditionModel::GetTypeId ();
 
  369   testVector.
m_typeId = ProbabilisticV2vHighwayChannelConditionModel::GetTypeId ();
 
  380   testVector.
m_typeId = ProbabilisticV2vHighwayChannelConditionModel::GetTypeId ();
 
  397   nodes.Get (0)->AggregateObject (a);
 
  398   nodes.Get (1)->AggregateObject (b);
 
  401   uint32_t numberOfReps = 500000;
 
  419       for (uint32_t j = 0; j < numberOfReps; j++)
 
  425       Simulator::Destroy ();
 
  427       double resultPlos = double (
m_numLos) / double (numberOfReps);
 
  428       double resultPnlos = double (
m_numNlos) / double (numberOfReps);
 
  455   : 
TestSuite (
"probabilistic-v2v-channel-condition-model", SYSTEM)