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>
119 void DoRun()
override;
128 std::ostringstream oss;
129 oss <<
"pos=" << pib.
pos;
132 oss <<
", bid=" << pib.
bid <<
", rx=" << pib.
rx <<
", ry=" << pib.
ry <<
", fn=" << pib.
fn;
142 :
TestCase(BuildNameString(pib, bd)),
153 mobility.SetMobilityModel(
"ns3::ConstantPositionMobilityModel");
157 mobility.Install(
nodes);
170 bmm->AggregateObject(buildingInfo);
175 NS_LOG_LOGIC(
" got bid=" << buildingInfo->GetBuilding()->GetId()
176 <<
", f=" << (
uint32_t)buildingInfo->GetFloorNumber()
177 <<
", rx=" << (
uint32_t)buildingInfo->GetRoomNumberX()
178 <<
", roomY=" << (
uint32_t)buildingInfo->GetRoomNumberY());
183 "floor number mismatch");
186 "x room number mismatch");
189 "y room number mismatch");
222 Vector vp1(1.5, 1.5, 0.5);
232 Vector vp2(1.5, 0.5, 0.5);
238 Vector vp3(1.5, 2.5, 0.5);
244 Vector vp4(1.5, 1.5, 5);
250 Vector vp5(2.5, 1.6, 3.5);
260 Vector vp6(0.9999, 1.5, 1.5);
266 Vector vp7(3.0001, 1.5, 2.5);
272 Vector vp8(1.001, 1.001, -0.01);
278 Vector vp9(1.5, 1.5, 4.001);
295 Vector vq1(-0.7, -1.1, 1.2);
305 Vector vq2(0.2, 0.3, 0.2);
315 Vector vq3(0.6, -1.75, 1.5);
321 Vector vq4(-1.01, 0.3, 1.99);
327 Vector vq5(-0.8, 0.7, 0.01);
333 Vector vq6(0.2, 0.3, -0.2);
339 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.
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
void AddTestCase(TestCase *testCase, Duration duration=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