25 #include <ns3/building-position-allocator.h>
26 #include <ns3/mobility-building-info.h>
27 #include <ns3/constant-position-mobility-model.h>
28 #include <ns3/mobility-model.h>
29 #include <ns3/building.h>
30 #include <ns3/buildings-helper.h>
31 #include <ns3/mobility-helper.h>
32 #include <ns3/simulator.h>
43 Room (uint32_t xx, uint32_t yy, uint32_t zz);
60 || ( (a.
x == b.
x) && (a.
y < b.
y) )
61 || ( (a.
x == b.
x) && (a.
y == b.
y) && (a.
z < b.
z) ));
72 virtual void DoRun (
void);
78 :
TestCase (
"RandomRoom, 12 rooms, 24 nodes")
91 b->SetBoundaries (
Box (1, 3, 1, 4, 1, 3));
108 std::map<Room, uint32_t> roomCounter;
113 NS_ASSERT_MSG (mm,
"no mobility model aggregated to this node");
115 NS_ASSERT_MSG (bmm,
"MobilityBuildingInfo has not been aggregated to this node mobility model");
118 Room r (bmm->GetRoomNumberX (), bmm->GetRoomNumberY (), bmm->GetFloorNumber ());
131 for (std::map<Room, uint32_t>::iterator it = roomCounter.begin (); it != roomCounter.end (); ++it)
154 virtual void DoRun (
void);
173 b->SetBoundaries (
Box (-10, -6, 20, 26, -1, 5));
190 positionAlloc = CreateObject<SameRoomPositionAllocator> (
nodes);
197 std::map<Room, uint32_t> roomCounter;
202 NS_ASSERT_MSG (mm,
"no mobility model aggregated to this node");
204 NS_ASSERT_MSG (bmm,
"MobilityBuildingInfo has not been aggregated to this node mobility model");
207 Room r (bmm->GetRoomNumberX (), bmm->GetRoomNumberY (), bmm->GetFloorNumber ());
211 for (std::map<Room, uint32_t>::iterator it = roomCounter.begin (); it != roomCounter.end (); ++it)
235 :
TestSuite (
"building-position-allocator", UNIT)
virtual void DoRun(void)
Implementation to actually run this TestCase.
smart pointer class similar to boost::intrusive_ptr
#define NS_LOG_FUNCTION(parameters)
std::vector< Ptr< Node > >::const_iterator Iterator
BuildingPositionAllocatorTestSuite()
NS_LOG_COMPONENT_DEFINE("BuildingPositionAllocatorTest")
Vector GetPosition(void) const
Iterator End(void) const
Get an iterator which indicates past-the-last Node in the container.
bool operator<(const Room &a, const Room &b)
Keep track of the current position and velocity of an object.
#define NS_TEST_ASSERT_MSG_GT(actual, limit, msg)
Test that an actual value is greater than a limit and report and abort if not.
void Install(Ptr< Node > node) const
"Layout" a single node according to the current position allocator type.
static void MakeMobilityModelConsistent()
This method goes through the whole NodeList and, for each node in the list, calls BuildingsHelper::Ma...
virtual void DoRun(void)
Implementation to actually run this TestCase.
#define NS_LOG_LOGIC(msg)
static void Destroy(void)
Every event scheduled by the Simulator::insertAtDestroy method is invoked.
static BuildingPositionAllocatorTestSuite buildingsPositionAllocatorTestSuiteInstance
keep track of a set of node pointers.
Iterator Begin(void) const
Get an iterator which refers to the first Node in the container.
void SetMobilityModel(std::string type, std::string n1="", const AttributeValue &v1=EmptyAttributeValue(), std::string n2="", const AttributeValue &v2=EmptyAttributeValue(), std::string n3="", const AttributeValue &v3=EmptyAttributeValue(), std::string n4="", const AttributeValue &v4=EmptyAttributeValue(), std::string n5="", const AttributeValue &v5=EmptyAttributeValue(), std::string n6="", const AttributeValue &v6=EmptyAttributeValue(), std::string n7="", const AttributeValue &v7=EmptyAttributeValue(), std::string n8="", const AttributeValue &v8=EmptyAttributeValue(), std::string n9="", const AttributeValue &v9=EmptyAttributeValue())
Room(uint32_t xx, uint32_t yy, uint32_t zz)
void AddTestCase(TestCase *testCase) NS_DEPRECATED
Add an individual child TestCase case to this TestCase.
#define NS_ASSERT_MSG(condition, message)
Helper class used to assign positions and mobility models to nodes.
SameRoomPositionAllocatorTestCase()
mobility buildings information (to be used by mobility models)
#define NS_TEST_ASSERT_MSG_LT(actual, limit, msg)
Test that an actual value is less than a limit and report and abort if not.
void Create(uint32_t n)
Create n nodes and append pointers to them to the end of this NodeContainer.
RandomRoomPositionAllocatorTestCase()
void SetPositionAllocator(Ptr< PositionAllocator > allocator)
Set the position allocator which will be used to allocate the initial position of every node initiali...
Ptr< T > GetObject(void) const
#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.
static void Install(Ptr< Node > node)
Install the MobilityBuildingInfo to a node.