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>
31 #include <ns3/constant-position-mobility-model.h>
32 #include <ns3/mobility-building-info.h>
48 :
TestSuite (
"buildings-pathloss-test", SYSTEM)
135 :
TestCase (
"LOSS calculation: " + name),
137 m_mobilityModelIndex1 (
m1),
138 m_mobilityModelIndex2 (
m2),
157 building1->SetBoundaries (
Box (-3000, -1, -4000, 4000.0, 0.0, 12));
158 building1->SetBuildingType (Building::Residential);
159 building1->SetExtWallsType (Building::ConcreteWithWindows);
160 building1->SetNFloors (3);
167 propagationLossModel->SetAttribute (
"Environment",
EnumValue (
m_env));
170 propagationLossModel->SetAttribute (
"ShadowSigmaOutdoor",
DoubleValue (0.0));
171 propagationLossModel->SetAttribute (
"ShadowSigmaIndoor",
DoubleValue (0.0));
172 propagationLossModel->SetAttribute (
"ShadowSigmaExtWalls",
DoubleValue (0.0));
174 double loss = propagationLossModel->GetLoss (mma, mmb);
180 Simulator::Destroy ();
199 double henbHeight = 10.0;
206 mm = CreateObject<ConstantPositionMobilityModel> ();
211 mm = CreateObject<ConstantPositionMobilityModel> ();
216 mm = CreateObject<ConstantPositionMobilityModel> ();
221 mm = CreateObject<ConstantPositionMobilityModel> ();
226 mm = CreateObject<ConstantPositionMobilityModel> ();
231 mm = CreateObject<ConstantPositionMobilityModel> ();
236 mm = CreateObject<ConstantPositionMobilityModel> ();
241 mm = CreateObject<ConstantPositionMobilityModel> ();
246 mm = CreateObject<ConstantPositionMobilityModel> ();
251 mm = CreateObject<ConstantPositionMobilityModel> ();
256 mm = CreateObject<ConstantPositionMobilityModel> ();
266 buildingInfo->MakeConsistent (mm);
static BuildingsPathlossTestSuite buildingsPathlossTestSuite
Static variable for test initialization.
Test 1.1 BuildingsPathlossModel Pathloss test.
Ptr< MobilityModel > CreateMobilityModel(uint16_t index)
Create a mobility model based on its index.
uint16_t m_mobilityModelIndex2
Second MobilityModel Index.
double m_lossRef
Theoretical loss.
virtual void DoRun(void)
Implementation to actually run this TestCase.
CitySize m_city
City size.
double m_freq
Communication frequency.
EnvironmentType m_env
Enviroment type.
virtual ~BuildingsPathlossTestCase()
uint16_t m_mobilityModelIndex1
First MobilityModel Index.
BuildingsPathlossTestCase(double freq, uint16_t m1, uint16_t m2, EnvironmentType env, CitySize city, double refValue, std::string name)
Constructor.
Test 1.1 BuildingsPathlossModel Pathloss compound test.
BuildingsPathlossTestSuite()
This class can be used to hold variables of floating point type such as 'double' or 'float'.
Hold variables of type enum.
void SetPosition(const Vector &position)
void AggregateObject(Ptr< Object > other)
Aggregate two Objects together.
Smart pointer class similar to boost::intrusive_ptr.
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO.
EnvironmentType
The type of propagation environment.
CitySize
The size of the city in which propagation takes place.
#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...
const double m1
First component modulus, 232 - 209.
const double m2
Second component modulus, 232 - 22853.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
@ LOG_LEVEL_ALL
Print everything.
void LogComponentEnable(char const *name, enum LogLevel level)
Enable the logging output associated with that log component.