From c5671d3a2f2286daae56332d110f2a2f91f6d603 Mon Sep 17 00:00:00 2001 From: Nicola Baldo Date: Fri, 11 Nov 2011 19:05:26 +0100 Subject: [PATCH] fixes bug LENA-174: NS_LOG does not work for some log component with test-runner --- src/buildings/test/buildings-pathloss-test.cc | 222 ++++++++++++------ src/buildings/test/buildings-pathloss-test.h | 12 +- .../test/buildings-shadowing-test.cc | 138 +++++++---- src/buildings/test/buildings-shadowing-test.h | 11 +- 4 files changed, 263 insertions(+), 120 deletions(-) diff --git a/src/buildings/test/buildings-pathloss-test.cc b/src/buildings/test/buildings-pathloss-test.cc index cd39e4606..f8e07aef9 100644 --- a/src/buildings/test/buildings-pathloss-test.cc +++ b/src/buildings/test/buildings-pathloss-test.cc @@ -31,7 +31,7 @@ NS_LOG_COMPONENT_DEFINE ("BuildingsPathlossTest"); -using namespace ns3; +namespace ns3 { /** @@ -50,118 +50,74 @@ BuildingsPathlossTestSuite::BuildingsPathlossTestSuite () LogComponentEnable ("BuildingsPathlossTest", LOG_LEVEL_ALL); - double distance = 2000; - double hm = 1; - double hb = 30; - double freq = 869e6; // E_UTRA BAND #5 see table 5.5-1 of 36.101 - Ptr mm1 = CreateObject (); - mm1->SetPosition (Vector (0.0, 0.0, hb)); + double freq = 869e6; // E_UTRA BAND #5 see table 5.5-1 of 36.101 - Ptr mm2 = CreateObject (); - mm2->SetPosition (Vector (distance, 0.0, hm)); + AddTestCase (new BuildingsPathlossTestCase (freq, 1, 2, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 137.93, "OH Urban Large city")); - AddTestCase (new BuildingsPathlossTestCase (freq, mm1, mm2, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 137.93, "OH Urban Large city")); + AddTestCase (new BuildingsPathlossTestCase (freq, 1, 2, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Small, 137.88, "OH Urban small city")); - AddTestCase (new BuildingsPathlossTestCase (freq, mm1, mm2, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Small, 137.88, "OH Urban small city")); + AddTestCase (new BuildingsPathlossTestCase (freq, 1, 2, BuildingsPropagationLossModel::SubUrban, BuildingsPropagationLossModel::Large, 128.03, "loss OH SubUrban")); - AddTestCase (new BuildingsPathlossTestCase (freq, mm1, mm2, BuildingsPropagationLossModel::SubUrban, BuildingsPropagationLossModel::Large, 128.03, "loss OH SubUrban")); - - AddTestCase (new BuildingsPathlossTestCase (freq, mm1, mm2, BuildingsPropagationLossModel::OpenAreas, BuildingsPropagationLossModel::Large, 110.21, "loss OH OpenAreas")); + AddTestCase (new BuildingsPathlossTestCase (freq, 1, 2, BuildingsPropagationLossModel::OpenAreas, BuildingsPropagationLossModel::Large, 110.21, "loss OH OpenAreas")); // Test #2 COST231 Model (1500 < freq < 2000~2170 MHz) (Macro<->UE) freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 - AddTestCase (new BuildingsPathlossTestCase (freq, mm1, mm2, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 148.55, "COST231 Urban Large city")); + AddTestCase (new BuildingsPathlossTestCase (freq, 1, 2, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 148.55, "COST231 Urban Large city")); - AddTestCase (new BuildingsPathlossTestCase (freq, mm1, mm2, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Small, 150.64, "COST231 Urban small city and suburban")); + AddTestCase (new BuildingsPathlossTestCase (freq, 1, 2, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Small, 150.64, "COST231 Urban small city and suburban")); // Test #3 2.6 GHz model (Macro<->UE) freq = 2.620e9; // E_UTRA BAND #7 see table 5.5-1 of 36.101 - AddTestCase (new BuildingsPathlossTestCase (freq, mm1, mm2, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Small, 121.83, "2.6GHz model")); + AddTestCase (new BuildingsPathlossTestCase (freq, 1, 2, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Small, 121.83, "2.6GHz model")); // Test #4 ITU1411 LOS model (Macro<->UE) freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 - distance = 100; - Ptr mm3 = CreateObject (); - mm3->SetPosition (Vector (distance, 0.0, hm)); - AddTestCase (new BuildingsPathlossTestCase (freq, mm1, mm3, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 81.00, "ITU1411 LOS")); + AddTestCase (new BuildingsPathlossTestCase (freq, 1, 3, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 81.00, "ITU1411 LOS")); // Test #5 ITU1411 NLOS model (Macro<->UE) freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 - distance = 900; - - Ptr mm4 = CreateObject (); - mm4->SetPosition (Vector (distance, 0.0, hm)); - AddTestCase (new BuildingsPathlossTestCase (freq, mm1, mm4, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 143.69, "ITU1411 NLOS")); + + AddTestCase (new BuildingsPathlossTestCase (freq, 1, 4, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 143.69, "ITU1411 NLOS")); // Test #6 ITUP1238 (HeNB <-> UE) - distance = 30; freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 - double henbHeight = 10.0; - Ptr mm5 = CreateObject (); - mm5->SetPosition (Vector (0.0, 0.0, henbHeight)); - Ptr building1 = Create (0.0, 10.0, 0.0, 10.0, 0.0, 20.0/*, 1, 1, 1*/); - building1->SetBuildingType (Building::Residential); - building1->SetExtWallsType (Building::ConcreteWithWindows); - mm5->SetIndoor (building1); - Ptr mm6 = CreateObject (); - mm6->SetPosition (Vector (distance, 0.0, hm)); - mm6->SetIndoor (building1); - mm6->SetFloorNumber (2); - AddTestCase (new BuildingsPathlossTestCase (freq, mm5, mm6, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 88.3855, "ITUP1238")); + AddTestCase (new BuildingsPathlossTestCase (freq, 5, 6, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 88.3855, "ITUP1238")); // Test #7 Outdoor -> Indoor OkumuraHata (Macro<->UE) freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 - distance = 2000; // The loss is as in test #2 (large city) plus the building penetration loss // which for ConcreteWithWindows is equal to 7 dB -> 148.55 + 7 = 155.55 - Ptr mm7 = CreateObject (); - mm7->SetPosition (Vector (distance, 0.0, hm)); - mm7->SetIndoor (building1); - AddTestCase (new BuildingsPathlossTestCase (freq, mm1, mm7, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 155.55, "Okumura Hata Outdoor -> Indoor")); + AddTestCase (new BuildingsPathlossTestCase (freq, 1, 7, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 155.55, "Okumura Hata Outdoor -> Indoor")); // Test #8 Outdoor -> Indoor ITU1411 (Macro<->UE) freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 - distance = 100; - Ptr mm8 = CreateObject (); - mm8->SetPosition (Vector (distance, 0.0, hm)); - mm8->SetIndoor (building1); // The loss is as in test #4 plus the building penetration loss // which for ConcreteWithWindows is equal to 7 dB -> 81.000 + 7 = 88.000 - AddTestCase (new BuildingsPathlossTestCase (freq, mm1, mm8, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 88.000, "ITU1411 LOS Outdoor -> Indoor")); + AddTestCase (new BuildingsPathlossTestCase (freq, 1, 8, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 88.000, "ITU1411 LOS Outdoor -> Indoor")); // Test #9 Indoor -> Outdoor LOS (HeNB <-> UE) - distance = 100; freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 - Ptr mm9 = CreateObject (); - mm9->SetPosition (Vector (0.0, 0.0, henbHeight)); - mm9->SetIndoor (building1); - mm9->SetFloorNumber (2); - Ptr mm10 = CreateObject (); - mm10->SetPosition (Vector (distance, 0.0, hm)); // The loss is similar of test #4 plus the building penetration loss // which for ConcreteWithWindows is equal to 7 dB and the height gain // (2 floors x 2 dB/floor = 4) -> 81.838 + 7 - 4 = 84.838 - AddTestCase (new BuildingsPathlossTestCase (freq, mm9, mm10, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 84.838, "ITU1411 LOS Indoor -> Outdoor")); + AddTestCase (new BuildingsPathlossTestCase (freq, 9, 10, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 84.838, "ITU1411 LOS Indoor -> Outdoor")); // Test #10 Indoor -> Outdoor NLOS (HeNB <-> UE) - distance = 500; freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 - Ptr mm11 = CreateObject (); - mm11->SetPosition (Vector (distance, 0.0, hm)); // The loss is similar as in test #4 plus the building penetration loss // which for ConcreteWithWindows is equal to 7 dB and the height gain // (2 floors x 2 dB/floor = 4) -> 180.90 + 7 - 4 = 183.90 - AddTestCase (new BuildingsPathlossTestCase (freq, mm9, mm11, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 183.90, "ITU1411 NLOS Indoor -> Outdoor")); + AddTestCase (new BuildingsPathlossTestCase (freq, 9, 11, BuildingsPropagationLossModel::Urban, BuildingsPropagationLossModel::Large, 183.90, "ITU1411 NLOS Indoor -> Outdoor")); } @@ -175,11 +131,11 @@ static BuildingsPathlossTestSuite buildingsPathlossTestSuite; * TestCase */ -BuildingsPathlossTestCase::BuildingsPathlossTestCase (double freq, Ptr m1, Ptr m2, BuildingsPropagationLossModel::Environment env, BuildingsPropagationLossModel::CitySize city, double refValue, std::string name) +BuildingsPathlossTestCase::BuildingsPathlossTestCase (double freq, uint16_t m1, uint16_t m2, BuildingsPropagationLossModel::Environment env, BuildingsPropagationLossModel::CitySize city, double refValue, std::string name) : TestCase ("LOSS calculation: " + name), m_freq (freq), - m_node1 (m1), - m_node2 (m2), + m_mobilityModelIndex1 (m1), + m_mobilityModelIndex2 (m2), m_env (env), m_city (city), m_lossRef (refValue) @@ -222,7 +178,13 @@ BuildingsPathlossTestCase::DoRun (void) // LogComponentEnable ("LteEnbNetDevice", logLevel); LogComponentEnable ("BuildingsPropagationLossModel", LOG_LEVEL_ALL); - NS_LOG_INFO ("Testing "); + + NS_LOG_FUNCTION (this); + + Ptr mma = CreateMobilityModel (m_mobilityModelIndex1); + Ptr mmb = CreateMobilityModel (m_mobilityModelIndex2); + + Ptr propagationLossModel = CreateObject (); @@ -235,7 +197,7 @@ BuildingsPathlossTestCase::DoRun (void) propagationLossModel->SetAttribute ("ShadowSigmaIndoor", DoubleValue (0.0)); propagationLossModel->SetAttribute ("ShadowSigmaExtWalls", DoubleValue (0.0)); - double loss = propagationLossModel->GetLoss (m_node1, m_node2); + double loss = propagationLossModel->GetLoss (mma, mmb); NS_LOG_INFO ("Calculated loss: " << loss); NS_LOG_INFO ("Theoretical loss: " << m_lossRef); @@ -243,3 +205,131 @@ BuildingsPathlossTestCase::DoRun (void) NS_TEST_ASSERT_MSG_EQ_TOL(loss, m_lossRef, 0.1, "Wrong loss !"); } +Ptr +BuildingsPathlossTestCase::CreateMobilityModel (uint16_t index) +{ + + /* + * The purpose of this method is to defer the creation of the + * MobilityModel instances to when DoRun() is called. In a previous + * version, MobilityModel instances where created directly in the + * constructor of the test suite, which caused subtle bugs due to + * "static initialization order fiasco". An example of such a subtle + * bug is that logging via NS_LOG failed for some modules. + * + */ + + + double distance = 2000; + double hm = 1; + double hb = 30; + + Ptr mm1 = CreateObject (); + mm1->SetPosition (Vector (0.0, 0.0, hb)); + + Ptr mm2 = CreateObject (); + mm2->SetPosition (Vector (distance, 0.0, hm)); + + distance = 100; + Ptr mm3 = CreateObject (); + mm3->SetPosition (Vector (distance, 0.0, hm)); + + distance = 900; + Ptr mm4 = CreateObject (); + mm4->SetPosition (Vector (distance, 0.0, hm)); + + distance = 30; + double henbHeight = 10.0; + Ptr mm5 = CreateObject (); + mm5->SetPosition (Vector (0.0, 0.0, henbHeight)); + + // this needs to be static otherwise it will look like a different building every time + static Ptr building1 = Create (0.0, 10.0, 0.0, 10.0, 0.0, 20.0/*, 1, 1, 1*/); + building1->SetBuildingType (Building::Residential); + building1->SetExtWallsType (Building::ConcreteWithWindows); + mm5->SetIndoor (building1); + Ptr mm6 = CreateObject (); + mm6->SetPosition (Vector (distance, 0.0, hm)); + mm6->SetIndoor (building1); + mm6->SetFloorNumber (2); + + distance = 2000; + Ptr mm7 = CreateObject (); + mm7->SetPosition (Vector (distance, 0.0, hm)); + mm7->SetIndoor (building1); + + distance = 100; + Ptr mm8 = CreateObject (); + mm8->SetPosition (Vector (distance, 0.0, hm)); + mm8->SetIndoor (building1); + + distance = 100; + Ptr mm9 = CreateObject (); + mm9->SetPosition (Vector (0.0, 0.0, henbHeight)); + mm9->SetIndoor (building1); + mm9->SetFloorNumber (2); + Ptr mm10 = CreateObject (); + mm10->SetPosition (Vector (distance, 0.0, hm)); + + distance = 500; + Ptr mm11 = CreateObject (); + mm11->SetPosition (Vector (distance, 0.0, hm)); + + + + switch (index) + { + case 1: + return mm1; + break; + + case 2: + return mm2; + break; + + case 3: + return mm3; + break; + + case 4: + return mm4; + break; + + case 5: + return mm5; + break; + + case 6: + return mm6; + break; + + case 7: + return mm7; + break; + + case 8: + return mm8; + break; + + case 9: + return mm9; + break; + + case 10: + return mm10; + break; + + case 11: + return mm11; + break; + + default: + return 0; + break; + } + return 0; +} + + + +} // namespace ns3 diff --git a/src/buildings/test/buildings-pathloss-test.h b/src/buildings/test/buildings-pathloss-test.h index a8507edeb..6fcf5d3d8 100644 --- a/src/buildings/test/buildings-pathloss-test.h +++ b/src/buildings/test/buildings-pathloss-test.h @@ -26,8 +26,7 @@ #include -using namespace ns3; - +namespace ns3 { /** * Test 1.1 pathloss calculation @@ -42,15 +41,16 @@ public: class BuildingsPathlossTestCase : public TestCase { public: - BuildingsPathlossTestCase (double freq, Ptr m1, Ptr m2, BuildingsPropagationLossModel::Environment env, BuildingsPropagationLossModel::CitySize city, double refValue, std::string name); + BuildingsPathlossTestCase (double freq, uint16_t m1, uint16_t m2, BuildingsPropagationLossModel::Environment env, BuildingsPropagationLossModel::CitySize city, double refValue, std::string name); virtual ~BuildingsPathlossTestCase (); private: virtual void DoRun (void); + Ptr CreateMobilityModel (uint16_t index); double m_freq; - Ptr m_node1; - Ptr m_node2; + uint16_t m_mobilityModelIndex1; + uint16_t m_mobilityModelIndex2; BuildingsPropagationLossModel::Environment m_env; BuildingsPropagationLossModel::CitySize m_city; double m_lossRef; @@ -60,3 +60,5 @@ private: #endif /* BUILDING_PATHLOSS_TEST_H */ + +} // namespace ns3 diff --git a/src/buildings/test/buildings-shadowing-test.cc b/src/buildings/test/buildings-shadowing-test.cc index 774ecde72..9b8c012e9 100644 --- a/src/buildings/test/buildings-shadowing-test.cc +++ b/src/buildings/test/buildings-shadowing-test.cc @@ -45,52 +45,17 @@ using namespace ns3; BuildingsShadowingTestSuite::BuildingsShadowingTestSuite () : TestSuite ("buildings-shadowing-test", SYSTEM) { - - + LogComponentEnable ("BuildingsShadowingTest", LOG_LEVEL_ALL); - // Test #1 Outdoor Model - - double distance = 2000; - double hm = 1; - double hb = 30; - Ptr mm1 = CreateObject (); - mm1->SetPosition (Vector (0.0, 0.0, hb)); - - Ptr mm2 = CreateObject (); - mm2->SetPosition (Vector (distance, 0.0, hm)); - - AddTestCase (new BuildingsShadowingTestCase (mm1, mm2, 148.86, 7.0, "Outdoor Shadowing")); + // Test #1 Outdoor Model + AddTestCase (new BuildingsShadowingTestCase (1, 2, 148.86, 7.0, "Outdoor Shadowing")); // Test #2 Indoor model - - distance = 30; - double henbHeight = 10.0; - Ptr mm5 = CreateObject (); - mm5->SetPosition (Vector (0.0, 0.0, henbHeight)); - Ptr building1 = Create (0.0, 10.0, 0.0, 10.0, 0.0, 20.0/*, 1, 1, 1*/); - building1->SetBuildingType (Building::Residential); - building1->SetExtWallsType (Building::ConcreteWithWindows); - mm5->SetIndoor (building1); - Ptr mm6 = CreateObject (); - mm6->SetPosition (Vector (distance, 0.0, hm)); - mm6->SetIndoor (building1); - mm6->SetFloorNumber (2); - AddTestCase (new BuildingsShadowingTestCase (mm5, mm6, 88.5724, 8.0, "Indoor Shadowing")); + AddTestCase (new BuildingsShadowingTestCase (5, 6, 88.5724, 8.0, "Indoor Shadowing")); // Test #3 Indoor -> Outdoor - - distance = 100; - Ptr mm9 = CreateObject (); - mm9->SetPosition (Vector (0.0, 0.0, henbHeight)); - mm9->SetIndoor (building1); - mm9->SetFloorNumber (2); - Ptr mm10 = CreateObject (); - mm10->SetPosition (Vector (distance, 0.0, hm)); - // The loss is similar of test #4 plus the building penetration loss - // which for ConcreteWithWindows is equal to 7 dB and the height gain - // (2 floors x 2 dB/floor = 4) -> 81.838 + 7 - 4 = 84.838 - AddTestCase (new BuildingsShadowingTestCase (mm9, mm10, 85.0012, 8.6, "Indoor -> Outdoor Shadowing")); + AddTestCase (new BuildingsShadowingTestCase (9, 10, 85.0012, 8.6, "Indoor -> Outdoor Shadowing")); } @@ -101,10 +66,10 @@ static BuildingsShadowingTestSuite buildingsShadowingTestSuite; * TestCase */ -BuildingsShadowingTestCase::BuildingsShadowingTestCase (Ptr m1, Ptr m2, double refValue, double sigmaRef, std::string name) +BuildingsShadowingTestCase::BuildingsShadowingTestCase ( uint16_t m1, uint16_t m2, double refValue, double sigmaRef, std::string name) : TestCase ("SHADOWING calculation: " + name), -m_node1 (m1), -m_node2 (m2), + m_mobilityModelIndex1 (m1), + m_mobilityModelIndex2 (m2), m_lossRef (refValue), m_sigmaRef (sigmaRef) { @@ -146,6 +111,10 @@ BuildingsShadowingTestCase::DoRun (void) // LogComponentEnable ("LteEnbNetDevice", logLevel); // LogComponentEnable ("BuildingsPropagationLossModel", LOG_LEVEL_ALL); + + + Ptr mma = CreateMobilityModel (m_mobilityModelIndex1); + Ptr mmb = CreateMobilityModel (m_mobilityModelIndex2); std::vector loss; double sum = 0.0; @@ -154,7 +123,7 @@ BuildingsShadowingTestCase::DoRun (void) for (int i = 0; i < samples; i++) { Ptr propagationLossModel = CreateObject (); - loss.push_back (propagationLossModel->GetLoss (m_node1, m_node2) - m_lossRef); + loss.push_back (propagationLossModel->GetLoss (mma, mmb) - m_lossRef); sum += loss.at (loss.size()-1); sumSquared += (loss.at (loss.size()-1)*loss.at (loss.size()-1)); } @@ -167,3 +136,84 @@ BuildingsShadowingTestCase::DoRun (void) NS_TEST_ASSERT_MSG_EQ_TOL(fabs(mean), 0.0, ci, "Wrong shadowing distribution !"); } + + + +Ptr +BuildingsShadowingTestCase::CreateMobilityModel (uint16_t index) +{ + /* + * The purpose of this method is to defer the creation of the + * MobilityModel instances to when DoRun() is called. In a previous + * version, MobilityModel instances where created directly in the + * constructor of the test suite, which caused subtle bugs due to + * "static initialization order fiasco". An example of such a subtle + * bug is that logging via NS_LOG failed for some modules. + * + */ + + double distance = 2000; + double hm = 1; + double hb = 30; + Ptr mm1 = CreateObject (); + mm1->SetPosition (Vector (0.0, 0.0, hb)); + + Ptr mm2 = CreateObject (); + mm2->SetPosition (Vector (distance, 0.0, hm)); + + + distance = 30; + double henbHeight = 10.0; + Ptr mm5 = CreateObject (); + mm5->SetPosition (Vector (0.0, 0.0, henbHeight)); + static Ptr building1 = Create (0.0, 10.0, 0.0, 10.0, 0.0, 20.0/*, 1, 1, 1*/); + building1->SetBuildingType (Building::Residential); + building1->SetExtWallsType (Building::ConcreteWithWindows); + mm5->SetIndoor (building1); + Ptr mm6 = CreateObject (); + mm6->SetPosition (Vector (distance, 0.0, hm)); + mm6->SetIndoor (building1); + mm6->SetFloorNumber (2); + + + distance = 100; + Ptr mm9 = CreateObject (); + mm9->SetPosition (Vector (0.0, 0.0, henbHeight)); + mm9->SetIndoor (building1); + mm9->SetFloorNumber (2); + Ptr mm10 = CreateObject (); + mm10->SetPosition (Vector (distance, 0.0, hm)); + + switch (index) + { + case 1: + return mm1; + break; + + case 2: + return mm2; + break; + + case 5: + return mm5; + break; + + case 6: + return mm6; + break; + + case 9: + return mm9; + break; + + case 10: + return mm10; + break; + + default: + return 0; + break; + } + return 0; + +} diff --git a/src/buildings/test/buildings-shadowing-test.h b/src/buildings/test/buildings-shadowing-test.h index 66c4bf0c9..dbbc94483 100644 --- a/src/buildings/test/buildings-shadowing-test.h +++ b/src/buildings/test/buildings-shadowing-test.h @@ -43,17 +43,18 @@ class BuildingsShadowingTestSuite : public TestSuite class BuildingsShadowingTestCase : public TestCase { public: - BuildingsShadowingTestCase (Ptr m1, Ptr m2, double refValue, double sigmaRef, std::string name); + BuildingsShadowingTestCase (uint16_t m1, uint16_t m2, double refValue, double sigmaRef, std::string name); virtual ~BuildingsShadowingTestCase (); private: virtual void DoRun (void); - - Ptr m_node1; - Ptr m_node2; + Ptr CreateMobilityModel (uint16_t index); + + uint16_t m_mobilityModelIndex1; + uint16_t m_mobilityModelIndex2; double m_lossRef; // pathloss value (without shadowing) double m_sigmaRef; }; -#endif /*BUILDINGS_SHADOWING_TEST_H*/ \ No newline at end of file +#endif /*BUILDINGS_SHADOWING_TEST_H*/