22 #include <ns3/building.h>
23 #include <ns3/buildings-helper.h>
24 #include <ns3/constant-position-mobility-model.h>
25 #include <ns3/mobility-building-info.h>
26 #include <ns3/mobility-helper.h>
27 #include <ns3/simulator.h>
122 void DoRun()
override;
131 std::ostringstream oss;
132 oss <<
"pos=" << pib.
pos;
135 oss <<
", bid=" << pib.
bid <<
", rx=" << pib.
rx <<
", ry=" << pib.
ry <<
", fn=" << pib.
fn;
145 :
TestCase(BuildNameString(pib, bd)),
156 mobility.SetMobilityModel(
"ns3::ConstantPositionMobilityModel");
173 bmm->AggregateObject(buildingInfo);
178 NS_LOG_LOGIC(
" got bid=" << buildingInfo->GetBuilding()->GetId()
179 <<
", f=" << (uint32_t)buildingInfo->GetFloorNumber()
180 <<
", rx=" << (uint32_t)buildingInfo->GetRoomNumberX()
181 <<
", roomY=" << (uint32_t)buildingInfo->GetRoomNumberY());
186 "floor number mismatch");
189 "x room number mismatch");
192 "y room number mismatch");
195 Simulator::Destroy();
226 Vector vp1(1.5, 1.5, 0.5);
236 Vector vp2(1.5, 0.5, 0.5);
242 Vector vp3(1.5, 2.5, 0.5);
248 Vector vp4(1.5, 1.5, 5);
254 Vector vp5(2.5, 1.6, 3.5);
264 Vector vp6(0.9999, 1.5, 1.5);
270 Vector vp7(3.0001, 1.5, 2.5);
276 Vector vp8(1.001, 1.001, -0.01);
282 Vector vp9(1.5, 1.5, 4.001);
299 Vector vq1(-0.7, -1.1, 1.2);
309 Vector vq2(0.2, 0.3, 0.2);
319 Vector vq3(0.6, -1.75, 1.5);
325 Vector vq4(-1.01, 0.3, 1.99);
331 Vector vq5(-0.8, 0.7, 0.01);
337 Vector vq6(0.2, 0.3, -0.2);
343 Vector vq7(0.2, 0.3, 2.001);
static BuildingsHelperTestSuite buildingsHelperAntennaTestSuiteInstance
Static variable for test initialization.
BuildingData m_bd
Building data.
static std::string BuildNameString(PositionInBuilding pib, BuildingData bd)
Build the testcase name.
PositionInBuilding m_pib
Position in the building.
void DoRun() override
Implementation to actually run this TestCase.
BuildingsHelperOneTestCase(PositionInBuilding pib, BuildingData bd)
Constructor.
BuildingsHelper TestSuite.
BuildingsHelperTestSuite()
Mobility model for which the current position does not change once it has been set and until it is se...
Helper class used to assign positions and mobility models to nodes.
keep track of a set of node pointers.
void Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer.
Ptr< Node > Get(uint32_t i) const
Get the Ptr<Node> stored in this container at a given index.
Ptr< T > GetObject() const
Get a pointer to the requested aggregated Object.
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_LOGIC(msg)
Use NS_LOG to output a message of level LOG_LOGIC.
#define NS_LOG_FUNCTION(parameters)
If log level LOG_FUNCTION is enabled, this macro will output all input parameters separated by ",...
#define NS_TEST_ASSERT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report and abort if not.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Data to construct a Building object.
double xmin
X min coordinate.
double ymin
Y min coordinate.
double zmin
Z min coordinate.
uint16_t nrx
Number of rooms (X coord)
uint16_t nry
Number of rooms (Y coord)
double zmax
Z max coordinate.
uint16_t nf
Number of floors.
double ymax
Y max coordinate.
double xmax
X max coordinate.
Struct representing a position in a building.
bool indoor
true if indoor, false otherwise
Vector pos
coordinates of the mobility model instance