26#include "ns3/boolean.h"
27#include "ns3/config.h"
28#include "ns3/constant-position-mobility-model.h"
29#include "ns3/double.h"
31#include "ns3/matrix-based-channel-model.h"
33#include "ns3/phased-array-model.h"
34#include "ns3/pointer.h"
35#include "ns3/simulator.h"
36#include "ns3/sionna-rt-channel-model.h"
37#include "ns3/string.h"
39#include "ns3/uinteger.h"
40#include "ns3/uniform-planar-array.h"
42#include <pybind11/pybind11.h>
43namespace py = pybind11;
66 mob->SetPosition(Vector(
x, y, z));
67 node->AggregateObject(mob);
94 :
TestCase(
"SionnaRtChannelModel end to end GetChannel with Sionna")
103 py::scoped_interpreter guard{};
111 model->SetFrequency(3.5e9);
113 model->SetAttribute(
"NormalizeDelays",
BooleanValue(
true));
116 model->SetAttribute(
"Scenario",
StringValue(
"simple_street_canyon"));
125 model->GetChannel(txMob, rxMob, txAnt, rxAnt);
133 "H num rows (rx elements) mismatch");
136 "H num cols (tx elements) mismatch");
141 "H has zero clusters — no paths computed");
145 model->GetChannel(txMob, rxMob, txAnt, rxAnt);
150 H->m_channel.GetNumRows(),
151 "Second call H num rows changed");
153 H->m_channel.GetNumCols(),
154 "Second call H num cols changed");
156 H->m_channel.GetNumPages(),
157 "Second call H num pages changed");
cairo_uint64_t x
_cairo_uint_96by64_32x64_divrem:
End-to-end test for SionnaRtChannelModel::GetChannel with Sionna.
void DoRun() override
Implementation to actually run this TestCase.
SionnaRtChannelEndToEndTest()
Test suite for Sionna RT channel model regression tests.
SionnaRtChannelModelTestSuite()
Smart pointer class similar to boost::intrusive_ptr.
static void Destroy()
Execute the events scheduled with ScheduleDestroy().
Hold variables of type string.
void AddTestCase(TestCase *testCase, Duration duration=Duration::QUICK)
Add an individual child TestCase to this test suite.
TestCase(const TestCase &)=delete
Caller graph was not generated because of its size.
@ UNIT
This test suite implements a Unit Test.
TestSuite(std::string name, Type type=Type::UNIT)
Construct a new test suite.
Hold an unsigned integer type.
#define NS_LOG_COMPONENT_DEFINE(name)
Define a Log component with a specific name.
Ptr< T > CreateObject(Args &&... args)
Create an object by type, with varying number of constructor parameters.
#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.
#define NS_TEST_ASSERT_MSG_NE(actual, limit, msg)
Test that an actual and expected (limit) value are not equal and report and abort if not.
#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.
Time MilliSeconds(uint64_t value)
Construct a Time in the indicated unit.
Every class exported by the ns3 library is enclosed in the ns3 namespace.
U * PeekPointer(const Ptr< U > &p)
static Ptr< MobilityModel > CreateMobility(double x, double y, double z)
static Ptr< UniformPlanarArray > CreateUpa(uint32_t rows, uint32_t cols)
static SionnaRtChannelModelTestSuite g_sionnaRtChannelModelTestSuite
ChannelParams extension to carry Sionna-specific metadata.