|
A Discrete-Event Network Simulator
|
API
|
Go to the documentation of this file.
24 #include <ns3/geographic-positions.h>
78 double originLongitude,
81 double maxDistFromOrigin,
86 virtual void DoRun (
void);
94 static std::string
Name (
double originLatitude,
95 double originLongitude,
96 double maxDistFromOrigin);
107 double originLongitude,
108 double maxDistFromOrigin)
110 std::ostringstream oss;
111 oss <<
"origin latitude = " << originLatitude <<
" degrees, "
112 <<
"origin longitude = " << originLongitude <<
" degrees, "
113 <<
"max distance from origin = " << maxDistFromOrigin;
118 double originLongitude,
121 double maxDistFromOrigin,
123 :
TestCase (
Name (originLatitude, originLongitude, maxDistFromOrigin)),
124 m_originLatitude (originLatitude),
125 m_originLongitude (originLongitude),
126 m_maxAltitude (maxAltitude),
127 m_numPoints (numPoints),
128 m_maxDistFromOrigin (maxDistFromOrigin),
140 std::list<Vector> points = GeographicPositions::RandCartesianPointsAroundGeographicPoint (
m_originLatitude,
146 Vector origin = GeographicPositions::GeographicToCartesianCoordinates (
m_originLatitude,
149 GeographicPositions::SPHERE);
151 while (!points.empty ())
153 randPoint = points.front ();
157 double straightDistFromOrigin = sqrt (pow (randPoint.x - origin.x, 2) +
158 pow (randPoint.y - origin.y, 2) +
159 pow (randPoint.z - origin.z, 2));
166 "random point (" << randPoint.x <<
", " << randPoint.y
167 <<
", " << randPoint.z <<
") is outside of max radius from origin");
184 :
TestSuite (
"rand-cart-around-geo", UNIT)
186 NS_LOG_INFO (
"creating RandCartAroundGeoTestSuite");
189 for (
double originLatitude = -89.9; originLatitude <= 89.9; originLatitude += 35.96)
191 for (
double originLongitude = 0; originLongitude <= 360; originLongitude += 72)
193 for (
double maxDistFromOrigin = 1000; maxDistFromOrigin <= 1000000; maxDistFromOrigin *= 10)
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
virtual ~RandCartAroundGeoTestCase()
void AddTestCase(TestCase *testCase, TestDuration duration=QUICK)
Add an individual child TestCase to this test suite.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
static const double EARTH_RADIUS
earth's radius in meters if modeled as a perfect sphere
int m_numPoints
number of points
static std::string Name(double originLatitude, double originLongitude, double maxDistFromOrigin)
name function
static RandCartAroundGeoTestSuite g_RandCartAroundGeoTestSuite
the test suite
#define NS_LOG_INFO(msg)
Use NS_LOG to output a message of level LOG_INFO.
#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.
static constexpr double EARTH_RADIUS
Earth's radius in meters if modeled as a perfect sphere.
static const double TOLERANCE
Tolerance used to check reciprocal of two numbers.
const double TOLERANCE
0.1 meter tolerance for testing, which is very small compared to the maximum distances from origin be...
Rand Cart Around Geo Test Case.
Ptr< UniformRandomVariable > m_uniRand
random number
Rand Cart Around Geo Test Suite.
double m_maxAltitude
maximum altitude
double m_originLongitude
origin longitude
void SetStream(int64_t stream)
Specifies the stream number for the RngStream.
double m_maxDistFromOrigin
maximum distance from origin
RandCartAroundGeoTestSuite()
static std::string Name(std::string str, uint32_t totalStreamSize, uint32_t sourceWriteSize, uint32_t serverReadSize, uint32_t serverWriteSize, uint32_t sourceReadSize, bool useIpv6)
double m_originLatitude
origin latitude
virtual void DoRun(void)
Implementation to actually run this TestCase.
RandCartAroundGeoTestCase(double originLatitude, double originLongitude, double maxAltitude, int numPoints, double maxDistFromOrigin, Ptr< UniformRandomVariable > uniRand)
Constructor.