9#include "ns3/boolean.h"
10#include "ns3/channel-condition-model.h"
11#include "ns3/config.h"
12#include "ns3/constant-position-mobility-model.h"
13#include "ns3/constant-velocity-mobility-model.h"
14#include "ns3/double.h"
15#include "ns3/geocentric-constant-position-mobility-model.h"
17#include "ns3/mobility-helper.h"
18#include "ns3/simulator.h"
20#include "ns3/three-gpp-propagation-loss-model.h"
21#include "ns3/three-gpp-v2v-propagation-loss-model.h"
77 void DoRun()
override;
90 :
TestCase(
"Creating ThreeGppNTNPropagationLossModelTestCase")
127 {35786000,
true, 20.0e9, -209.915,
urbanModel},
128 {35786000,
true, 30.0e9, -213.437,
urbanModel},
129 {35786000,
true, 2.0e9, -191.744,
urbanModel},
133 {1200000,
true, 20.0e9, -180.424,
urbanModel},
134 {1200000,
true, 30.0e9, -183.946,
urbanModel},
147 {35786000,
true, 20.0e9, -209.915,
ruralModel},
148 {35786000,
true, 30.0e9, -213.437,
ruralModel},
149 {35786000,
true, 2.0e9, -191.744,
ruralModel},
153 {1200000,
true, 20.0e9, -180.424,
ruralModel},
154 {1200000,
true, 30.0e9, -183.946,
ruralModel},
155 {1200000,
true, 2.0e9, -162.253,
ruralModel}};
178 Vector
posA = Vector(0.0, 0.0, 0.0);
179 a->SetPosition(
posA);
181 b->SetPosition(
posB);
201 "Obtained unexpected received power");
224 :
TestSuite(
"three-gpp-ntn-propagation-loss-model",
Type::UNIT)
Test case for the ThreeGppNTNPropagationLossModel classes.
ThreeGppNTNPropagationLossModelTestCase()
void DoRun() override
Build the simulation scenario and run the tests.
void TestChannelGain(TestPoint testPoint)
Test the channel gain for a specific parameter configuration, by comparing the antenna gain obtained ...
3GPP NTN Propagation models TestSuite
ThreeGppNTNPropagationLossModelsTestSuite()
AttributeValue implementation for Boolean.
This class can be used to hold variables of floating point type such as 'double' or 'float'.
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.
void AggregateObject(Ptr< Object > other)
Aggregate two Objects together.
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.
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_TOL(actual, limit, tol, msg)
Test that actual and expected (limit) values are equal to plus or minus some tolerance and report if ...
Every class exported by the ns3 library is enclosed in the ns3 namespace.
Description of a single test point.
TestPoint(double distance, bool isLos, double frequency, double pwrRxDbm, Ptr< ThreeGppPropagationLossModel > lossModel)
Constructor.
double m_pwrRxDbm
received power in dBm
bool m_isLos
if true LOS, if false NLOS
Ptr< ThreeGppPropagationLossModel > m_propagationLossModel
the path loss model to test
double m_distance
2D distance between test nodes, in meters
double m_frequency
carrier frequency in Hz
static ThreeGppNTNPropagationLossModelsTestSuite g_propagationLossModelsTestSuite
Static variable for test initialization.