22 #include <ns3/simulator.h>
26 #include <ns3/buildings-helper.h>
27 #include <ns3/string.h>
28 #include <ns3/double.h>
29 #include <ns3/building.h>
32 #include "buildings-pathloss-test.h"
51 :
TestSuite (
"buildings-pathloss-test", SYSTEM)
138 :
TestCase (
"LOSS calculation: " + name),
140 m_mobilityModelIndex1 (m1),
141 m_mobilityModelIndex2 (m2),
148 BuildingsPathlossTestCase::~BuildingsPathlossTestCase ()
160 building1->SetBoundaries (
Box (-3000, -1, -4000, 4000.0, 0.0, 12));
161 building1->SetBuildingType (Building::Residential);
162 building1->SetExtWallsType (Building::ConcreteWithWindows);
163 building1->SetNFloors (3);
169 propagationLossModel->SetAttribute (
"Frequency",
DoubleValue (m_freq));
170 propagationLossModel->SetAttribute (
"Environment",
EnumValue (m_env));
171 propagationLossModel->SetAttribute (
"CitySize",
EnumValue (m_city));
173 propagationLossModel->SetAttribute (
"ShadowSigmaOutdoor",
DoubleValue (0.0));
174 propagationLossModel->SetAttribute (
"ShadowSigmaIndoor",
DoubleValue (0.0));
175 propagationLossModel->SetAttribute (
"ShadowSigmaExtWalls",
DoubleValue (0.0));
177 double loss = propagationLossModel->GetLoss (mma, mmb);
182 NS_TEST_ASSERT_MSG_EQ_TOL (loss, m_lossRef, 0.1,
"Wrong loss !");
187 BuildingsPathlossTestCase::CreateMobilityModel (uint16_t index)
202 double henbHeight = 10.0;
209 mm = CreateObject<BuildingsMobilityModel> ();
210 mm->SetPosition (
Vector (0.0, 0.0, hb));
214 mm = CreateObject<BuildingsMobilityModel> ();
215 mm->SetPosition (
Vector (2000, 0.0, hm));
219 mm = CreateObject<BuildingsMobilityModel> ();
220 mm->SetPosition (
Vector (100, 0.0, hm));
224 mm = CreateObject<BuildingsMobilityModel> ();
225 mm->SetPosition (
Vector (900, 0.0, hm));
229 mm = CreateObject<BuildingsMobilityModel> ();
230 mm->SetPosition (
Vector (-5, 0.0, hm));
234 mm = CreateObject<BuildingsMobilityModel> ();
235 mm->SetPosition (
Vector (-5, 30, henbHeight));
239 mm = CreateObject<BuildingsMobilityModel> ();
240 mm->SetPosition (
Vector (-2000, 0.0, hm));
244 mm = CreateObject<BuildingsMobilityModel> ();
245 mm->SetPosition (
Vector (-100, 0.0, hm));
249 mm = CreateObject<BuildingsMobilityModel> ();
250 mm->SetPosition (
Vector (0, 0.0, hm));
254 mm = CreateObject<BuildingsMobilityModel> ();
255 mm->SetPosition (
Vector (-100, 0.0, henbHeight));
259 mm = CreateObject<BuildingsMobilityModel> ();
260 mm->SetPosition (
Vector (-500, 0.0, henbHeight));
267 BuildingsHelper::MakeConsistent (mm);
BuildingsPathlossTestCase(double freq, uint16_t m1, uint16_t m2, EnvironmentType env, CitySize city, double refValue, std::string name)
smart pointer class similar to boost::intrusive_ptr
#define NS_LOG_FUNCTION(parameters)
#define NS_LOG_COMPONENT_DEFINE(name)
hold variables of type 'enum'
static void Destroy(void)
BuildingsPathlossTestSuite()
void AddTestCase(TestCase *testCase) NS_DEPRECATED
Add an individual test case to this test suite.
Hold an floating point type.
void LogComponentEnable(char const *name, enum LogLevel level)
virtual void DoRun(void)
Implementation to actually run this test case.