14#include "ns3/boolean.h"
15#include "ns3/mobility-helper.h"
16#include "ns3/mobility-model.h"
17#include "ns3/scheduler.h"
18#include "ns3/simulator.h"
20#include "ns3/vector.h"
21#include "ns3/waypoint-mobility-model.h"
49 void DoRun()
override;
56 :
TestCase(
"Test behavior when LazyNotify is false"),
68 Vector pos =
m_mob->GetPosition();
79 "Course change not notified correctly");
125 void DoRun()
override;
131 :
TestCase(
"Test behavior when LazyNotify is true")
142 Vector pos =
m_mob->GetPosition();
154 "Course change not notified correctly");
200 void DoRun()
override;
209 :
TestCase(
"Test behavior of Waypoint InitialPositionIsWaypoint")
221 Vector pos =
model->GetPosition();
240 m_mob1->SetPosition(Vector(10.0, 10.0, 10.0));
262 m_mob2->SetPosition(Vector(10.0, 10.0, 10.0));
293 m_mob3->SetPosition(Vector(10.0, 10.0, 10.0));
318 m_mob4->SetPosition(Vector(10.0, 10.0, 10.0));
358 m_mob5->SetPosition(Vector(10.0, 10.0, 10.0));
387 void DoRun()
override;
391 :
TestCase(
"Test behavior using MobilityHelper and PositionAllocator")
403 Vector pos =
mob->GetPosition();
420 mobility.SetMobilityModel(
"ns3::WaypointMobilityModel",
421 "InitialPositionIsWaypoint",
450 mobility2.SetMobilityModel(
"ns3::WaypointMobilityModel",
451 "InitialPositionIsWaypoint",
Waypoint Initial Position Is Waypoint Test.
Ptr< WaypointMobilityModel > m_mob4
mobility model 4
Ptr< WaypointMobilityModel > m_mob5
mobility model 5
WaypointInitialPositionIsWaypoint()
void DoRun() override
Implementation to actually run this TestCase.
Ptr< WaypointMobilityModel > m_mob2
mobility model 2
~WaypointInitialPositionIsWaypoint() override
Ptr< WaypointMobilityModel > m_mob1
mobility model 1
void TestNumWaypoints(Ptr< const WaypointMobilityModel > model, uint32_t num)
Test number of way points.
void TestXPosition(Ptr< const WaypointMobilityModel > model, double expectedXPos)
Text X position function.
Ptr< WaypointMobilityModel > m_mob3
mobility model 3
Test whether course change notifications occur regardless of calls to Update() position (which are tr...
~WaypointLazyNotifyFalse() override
void CourseChangeCallback(std::string path, Ptr< const MobilityModel > model)
Course change callback.
WaypointLazyNotifyFalse()
void TestXPosition(double expectedXPos)
Test X position function.
int m_courseChanges
course changes
void DoRun() override
Implementation to actually run this TestCase.
Ptr< WaypointMobilityModel > m_mob
modility model
Waypoint Lazy Notify True.
void TestXPosition(double expectedXPos)
Text X position function.
Ptr< WaypointMobilityModel > m_mob
modility model
void DoRun() override
Implementation to actually run this TestCase.
~WaypointLazyNotifyTrue() override
void CourseChangeCallback(std::string path, Ptr< const MobilityModel > model)
Course change callback.
Waypoint Mobility Model Via Helper Test.
void DoRun() override
Implementation to actually run this TestCase.
WaypointMobilityModelViaHelper()
~WaypointMobilityModelViaHelper() override
void TestXPosition(Ptr< const WaypointMobilityModel > mob, double expectedXPos)
Text X position function.
AttributeValue implementation for Boolean.
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.
void AggregateObject(Ptr< Object > other)
Aggregate two Objects together.
Smart pointer class similar to boost::intrusive_ptr.
static EventId Schedule(const Time &delay, FUNC f, Ts &&... args)
Schedule an event to expire after delay.
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
static Time Now()
Return the current simulation virtual time.
static void Run()
Run the simulation.
void AddTestCase(TestCase *testCase, Duration duration=Duration::QUICK)
Add an individual child TestCase to this test suite.
Waypoint-based mobility model.
static MobilityTestSuite mobilityTestSuite
Static variable for test initialization.
Ptr< T > Create(Ts &&... args)
Create class instances by constructors with varying numbers of arguments and return them by Ptr.
#define NS_TEST_EXPECT_MSG_EQ(actual, limit, msg)
Test that an actual and expected (limit) value are equal and report if not.
#define NS_TEST_EXPECT_MSG_EQ_TOL(actual, limit, tol, msg)
Test that actual and expected (limit) values are equal to plus or minus some tolerance and report if ...
Time Seconds(double value)
Construct a Time in the indicated unit.
Every class exported by the ns3 library is enclosed in the ns3 namespace.