// // Add test cases to the test suite. // void BigMathTestCases::AddTestCases( boost::unit_test::test_suite* testSuite, boost::shared_ptr< BigMathTestCases > tester ) const { AddTestCase( "BigMath Test Case - 64x32", &BigMathTestCases::TestCase_64x32, tester, testSuite ); AddTestCase( "BigMath Test Case - 64x64", &BigMathTestCases::TestCase_64x64, tester, testSuite ); }
// // Add test cases to the test suite. // void MaleFirstNameDataFileRecordTestCases::AddTestCases( boost::unit_test::test_suite* testSuite, boost::shared_ptr< MaleFirstNameDataFileRecordTestCases > tester ) const { AddTestCase( "MaleFirstNameDataFileRecord: TestCase_DFRConstructor", &TestCase_DFRConstructor<TPCE::MaleFirstNameDataFileRecord>, fields, testSuite ); AddTestCaseField<TPCE::MaleFirstNameDataFileRecord>( "MaleFirstNameDataFileRecord: TestCase_NAME", &TestCase_DFRFieldString<TPCE::MaleFirstNameDataFileRecord>, fields, &TPCE::MaleFirstNameDataFileRecord::NAME, name, testSuite ); AddTestCase( "MaleFirstNameDataFileRecord: TestCase_DFRToString", &TestCase_DFRToString<TPCE::MaleFirstNameDataFileRecord>, fields, testSuite ); }
BuildingsPathlossTestSuite::BuildingsPathlossTestSuite () : TestSuite ("buildings-pathloss-test", SYSTEM) { LogComponentEnable ("BuildingsPathlossTest", LOG_LEVEL_ALL); double freq = 869e6; // E_UTRA BAND #5 see table 5.5-1 of 36.101 AddTestCase (new BuildingsPathlossTestCase (freq, 1, 2, UrbanEnvironment, LargeCity, 137.93, "OH Urban Large city"), TestCase::QUICK); AddTestCase (new BuildingsPathlossTestCase (freq, 1, 2, UrbanEnvironment, SmallCity, 137.88, "OH Urban small city"), TestCase::QUICK); AddTestCase (new BuildingsPathlossTestCase (freq, 1, 2, SubUrbanEnvironment, LargeCity, 128.03, "loss OH SubUrban"), TestCase::QUICK); AddTestCase (new BuildingsPathlossTestCase (freq, 1, 2, OpenAreasEnvironment, LargeCity, 110.21, "loss OH OpenAreas"), TestCase::QUICK); // Test #2 COST231 Model (1500 < freq < 2000~2170 MHz) (Macro<->UE) freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 AddTestCase (new BuildingsPathlossTestCase (freq, 1, 2, UrbanEnvironment, LargeCity, 148.55, "COST231 Urban Large city"), TestCase::QUICK); AddTestCase (new BuildingsPathlossTestCase (freq, 1, 2, UrbanEnvironment, SmallCity, 150.64, "COST231 Urban small city and suburban"), TestCase::QUICK); // Test #3 2.6 GHz model (Macro<->UE) freq = 2.620e9; // E_UTRA BAND #7 see table 5.5-1 of 36.101 AddTestCase (new BuildingsPathlossTestCase (freq, 1, 2, UrbanEnvironment, SmallCity, 121.83, "2.6GHz model"), TestCase::QUICK); // Test #4 ITU1411 LOS model (Macro<->UE) freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 AddTestCase (new BuildingsPathlossTestCase (freq, 1, 3, UrbanEnvironment, LargeCity, 81.00, "ITU1411 LOS"), TestCase::QUICK); // Test #5 ITU1411 NLOS model (Macro<->UE) freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 AddTestCase (new BuildingsPathlossTestCase (freq, 1, 4, UrbanEnvironment, LargeCity, 143.69, "ITU1411 NLOS"), TestCase::QUICK); // Test #6 ITUP1238 (HeNB <-> UE) freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 AddTestCase (new BuildingsPathlossTestCase (freq, 5, 6, UrbanEnvironment, LargeCity, 88.3855, "ITUP1238"), TestCase::QUICK); // Test #7 Outdoor -> Indoor OkumuraHata (Macro<->UE) freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 // The loss is as in test #2 (large city) plus the building penetration loss // which for ConcreteWithWindows is equal to 7 dB -> 148.55 + 7 = 155.55 AddTestCase (new BuildingsPathlossTestCase (freq, 1, 7, UrbanEnvironment, LargeCity, 155.55, "Okumura Hata Outdoor -> Indoor"), TestCase::QUICK); // Test #8 Outdoor -> Indoor ITU1411 (Macro<->UE) freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 // The loss is as in test #4 plus the building penetration loss // which for ConcreteWithWindows is equal to 7 dB -> 81.000 + 7 = 88.000 AddTestCase (new BuildingsPathlossTestCase (freq, 1, 8, UrbanEnvironment, LargeCity, 88.000, "ITU1411 LOS Outdoor -> Indoor"), TestCase::QUICK); // Test #9 Indoor -> Outdoor LOS (HeNB <-> UE) freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 // The loss is similar of test #4 plus the building penetration loss // which for ConcreteWithWindows is equal to 7 dB and the height gain // (2 floors x 2 dB/floor = 4) -> 81.838 + 7 - 4 = 84.838 AddTestCase (new BuildingsPathlossTestCase (freq, 9, 10, UrbanEnvironment, LargeCity, 84.838, "ITU1411 LOS Indoor -> Outdoor"), TestCase::QUICK); // Test #10 Indoor -> Outdoor NLOS (HeNB <-> UE) freq = 2.1140e9; // E_UTRA BAND #1 see table 5.5-1 of 36.101 // The loss is similar as in test #4 plus the building penetration loss // which for ConcreteWithWindows is equal to 7 dB and the height gain // (2 floors x 2 dB/floor = 4) -> 180.90 + 7 - 4 = 183.90 AddTestCase (new BuildingsPathlossTestCase (freq, 9, 11, UrbanEnvironment, LargeCity, 183.90, "ITU1411 NLOS Indoor -> Outdoor"), TestCase::QUICK); }
EpcS1uDlTestSuite::EpcS1uDlTestSuite () : TestSuite ("epc-s1u-downlink", SYSTEM) { std::vector<EnbDlTestData> v1; EnbDlTestData e1; UeDlTestData f1 (1, 100); e1.ues.push_back (f1); v1.push_back (e1); AddTestCase (new EpcS1uDlTestCase ("1 eNB, 1UE", v1), TestCase::QUICK); std::vector<EnbDlTestData> v2; EnbDlTestData e2; UeDlTestData f2_1 (1, 100); e2.ues.push_back (f2_1); UeDlTestData f2_2 (2, 200); e2.ues.push_back (f2_2); v2.push_back (e2); AddTestCase (new EpcS1uDlTestCase ("1 eNB, 2UEs", v2), TestCase::QUICK); std::vector<EnbDlTestData> v3; v3.push_back (e1); v3.push_back (e2); AddTestCase (new EpcS1uDlTestCase ("2 eNBs", v3), TestCase::QUICK); EnbDlTestData e3; UeDlTestData f3_1 (3, 50); e3.ues.push_back (f3_1); UeDlTestData f3_2 (5, 1472); e3.ues.push_back (f3_2); UeDlTestData f3_3 (1, 1); e3.ues.push_back (f3_2); std::vector<EnbDlTestData> v4; v4.push_back (e3); v4.push_back (e1); v4.push_back (e2); AddTestCase (new EpcS1uDlTestCase ("3 eNBs", v4), TestCase::QUICK); std::vector<EnbDlTestData> v5; EnbDlTestData e5; UeDlTestData f5 (10, 3000); e5.ues.push_back (f5); v5.push_back (e5); AddTestCase (new EpcS1uDlTestCase ("1 eNB, 10 pkts 3000 bytes each", v5), TestCase::QUICK); std::vector<EnbDlTestData> v6; EnbDlTestData e6; UeDlTestData f6 (50, 3000); e6.ues.push_back (f6); v6.push_back (e6); AddTestCase (new EpcS1uDlTestCase ("1 eNB, 50 pkts 3000 bytes each", v6), TestCase::QUICK); std::vector<EnbDlTestData> v7; EnbDlTestData e7; UeDlTestData f7 (10, 15000); e7.ues.push_back (f7); v7.push_back (e7); AddTestCase (new EpcS1uDlTestCase ("1 eNB, 10 pkts 15000 bytes each", v7), TestCase::QUICK); std::vector<EnbDlTestData> v8; EnbDlTestData e8; UeDlTestData f8 (100, 15000); e8.ues.push_back (f8); v8.push_back (e8); AddTestCase (new EpcS1uDlTestCase ("1 eNB, 100 pkts 15000 bytes each", v8), TestCase::QUICK); }
LenaTestPhyErrorModelSuite::LenaTestPhyErrorModelSuite () : TestSuite ("lte-phy-error-model", SYSTEM) { NS_LOG_INFO ("creating LenaTestPhyErrorModelTestCase"); for (uint32_t rngRun = 1; rngRun <= 3; ++rngRun) { // Tests on DL Control Channels (PCFICH+PDCCH) // the tolerance is calculated with the following octave code: // // n = 1000; # TX packets // for p=1-[0.007 0.045 0.206 0.343] // tol = n*p - binoinv(0.001, n, p) // endfor // 1 interfering eNB SINR -2.0 BLER 0.007 TB size 217 AddTestCase (new LenaDlCtrlPhyErrorModelTestCase (2, 1078, 0.007, 9, Seconds (0.04), rngRun), (rngRun == 1) ? TestCase::QUICK : TestCase::TAKES_FOREVER); // 2 interfering eNBs SINR -4.0 BLER 0.037 TB size 217 AddTestCase (new LenaDlCtrlPhyErrorModelTestCase (3, 1040, 0.045, 21, Seconds (0.04), rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER); // 3 interfering eNBs SINR -6.0 BLER 0.21 TB size 133 AddTestCase (new LenaDlCtrlPhyErrorModelTestCase (4, 1250, 0.206, 40, Seconds (0.12), rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER); // 4 interfering eNBs SINR -7.0 BLER 0.34 TB size 133 AddTestCase (new LenaDlCtrlPhyErrorModelTestCase (5, 1260, 0.343, 47, Seconds (0.12), rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER); // Tests on DL Data channels (PDSCH) // the tolerance is calculated with the following octave code: // // n = 1000; # TX packets // for p=1-[0.33 0.11 0.2 0.3 0.55 0.14] // tol = n*p - binoinv(0.005, n, p) // endfor // MCS 2 TB size of 256 bits BLER 0.33 SINR -5.51 AddTestCase (new LenaDataPhyErrorModelTestCase (4, 1800, 0.33, 39, Seconds (0.04), rngRun), (rngRun == 1) ? TestCase::QUICK : TestCase::TAKES_FOREVER); // MCS 2 TB size of 528 bits BLER 0.11 SINR -5.51 AddTestCase (new LenaDataPhyErrorModelTestCase (2, 1800, 0.11, 26, Seconds (0.04), rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER); // MCS 2 TB size of 1088 bits BLER 0.02 SINR -5.51 AddTestCase (new LenaDataPhyErrorModelTestCase (1, 1800, 0.02, 33, Seconds (0.04), rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER); // MCS 12 TB size of 4800 bits BLER 0.3 SINR 4.43 AddTestCase (new LenaDataPhyErrorModelTestCase (1, 600, 0.3, 38, Seconds (0.04), rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER); // MCS 12 TB size of 1632 bits BLER 0.55 SINR 4.43 AddTestCase (new LenaDataPhyErrorModelTestCase (3, 600, 0.55, 40, Seconds (0.04), rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER); // MCS 16 TB size of 7272 bits (3648 x 3584) BLER 0.14 SINR 8.48 // BLER 0.14 = 1 - ((1-0.075)*(1-0.075)) AddTestCase (new LenaDataPhyErrorModelTestCase (1, 470, 0.14, 29, Seconds (0.04), rngRun), (rngRun == 1) ? TestCase::EXTENSIVE : TestCase::TAKES_FOREVER); } }