22 #include <ns3/simulator.h>
24 #include <ns3/hybrid-buildings-propagation-loss-model.h>
25 #include <ns3/string.h>
26 #include <ns3/double.h>
27 #include <ns3/building.h>
29 #include <ns3/buildings-helper.h>
30 #include <ns3/mobility-model.h>
31 #include <ns3/mobility-building-info.h>
32 #include <ns3/constant-position-mobility-model.h>
54 :
TestSuite (
"buildings-shadowing-test", SYSTEM)
78 :
TestCase (
"SHADOWING calculation: " + name),
79 m_mobilityModelIndex1 (m1),
80 m_mobilityModelIndex2 (m2),
99 building1->SetBoundaries (
Box (-3000, -1, -4000, 4000.0, 0.0, 12));
102 building1->SetNFloors (3);
107 std::vector<double> loss;
109 double sumSquared = 0.0;
111 for (
int i = 0; i < samples; i++)
114 loss.push_back (propagationLossModel->DoCalcRxPower (0.0, mma, mmb) +
m_lossRef);
115 sum += loss.at (loss.size () - 1);
116 sumSquared += (loss.at (loss.size () - 1) * loss.at (loss.size () - 1));
118 double mean = sum / samples;
119 double sigma = std::sqrt (sumSquared / samples - (mean * mean));
121 double ci = (2.575829303549 * sigma) / std::sqrt (samples);
123 NS_LOG_INFO (
"Mean from simulation " << mean <<
", sigma " << sigma <<
", reference value " <<
m_sigmaRef <<
", CI(99%) " << ci);
147 double henbHeight = 10.0;
154 mm = CreateObject<ConstantPositionMobilityModel> ();
159 mm = CreateObject<ConstantPositionMobilityModel> ();
164 mm = CreateObject<ConstantPositionMobilityModel> ();
169 mm = CreateObject<ConstantPositionMobilityModel> ();
174 mm = CreateObject<ConstantPositionMobilityModel> ();
179 mm = CreateObject<ConstantPositionMobilityModel> ();
184 mm = CreateObject<ConstantPositionMobilityModel> ();
189 mm = CreateObject<ConstantPositionMobilityModel> ();
194 mm = CreateObject<ConstantPositionMobilityModel> ();
199 mm = CreateObject<ConstantPositionMobilityModel> ();
204 mm = CreateObject<ConstantPositionMobilityModel> ();
smart pointer class similar to boost::intrusive_ptr
#define NS_LOG_FUNCTION(parameters)
#define NS_TEST_ASSERT_MSG_EQ_TOL(actual, limit, tol, msg)
Test that actual and expected (limit) values are equal to plus or minus some tolerance and report and...
NS_LOG_COMPONENT_DEFINE("BuildingsShadowingTest")
virtual void DoRun(void)
Implementation to actually run this TestCase.
static void MakeConsistent(Ptr< MobilityModel > bmm)
BuildingsShadowingTestCase(uint16_t m1, uint16_t m2, double refValue, double sigmaRef, std::string name)
BuildingsShadowingTestSuite()
uint16_t m_mobilityModelIndex1
void AggregateObject(Ptr< Object > other)
static void Destroy(void)
uint16_t m_mobilityModelIndex2
Ptr< MobilityModel > CreateMobilityModel(uint16_t index)
void AddTestCase(TestCase *testCase) NS_DEPRECATED
Add an individual child TestCase case to this TestCase.
static BuildingsShadowingTestSuite buildingsShadowingTestSuite
void SetPosition(const Vector &position)
void LogComponentEnable(char const *name, enum LogLevel level)
virtual ~BuildingsShadowingTestCase()