Esempio n. 1
0
 public void Init(SnapshotContext gsmSnapshot)
 {
     m_ConvergenceResult = gsmSnapshot.Lookup<ConvergenceResult>(GsmContextkey.GSMConvergenceResult);
     m_SimTrxs = gsmSnapshot.Lookup<List<GSMSimTRX>>(GsmContextkey.GSMSimTRXs);
     m_ServedUsers = gsmSnapshot.Lookup<List<GSMSimUser>>(GsmContextkey.GSMServedUsers);
     m_AllUsers = gsmSnapshot.Lookup<List<GSMSimUser>>(GsmContextkey.AllUsers);
     m_AccessFailUsers = gsmSnapshot.Lookup<List<GSMSimUser>>(GsmContextkey.GSMAccessFails);
     m_ForAccessAgain = gsmSnapshot.Lookup<List<GSMSimUser>>(GsmContextkey.GSMForAccessAgain);
     m_LinkLossGet = gsmSnapshot.Lookup<IGetLinkloss>(GsmContextkey.GSMGetLinkloss);
     m_MaxIterNum = gsmSnapshot.Lookup<GSMUIParam>(GsmContextkey.GSMUIParam).MaxIterNum;
     m_ConvergenceJudge.Init(gsmSnapshot);
 }
Esempio n. 2
0
        public void CellStatisticsTest_1()
        {
            //1个trx
            List<GSMSimTRX> trxList = new List<GSMSimTRX>();
            trxList.Add(GSMMock.MockGsmSimTrx());

            //3个用户
            List<GSMSimUser> m_User = new List<GSMSimUser>();
            m_User.AddRange(GSMMock.MockGsmSimUserList());

            List<GSMSimUser> serverUsers = new List<GSMSimUser>();
            serverUsers.Add(m_User[0]);

            List<GSMSimUser> accessFail = new List<GSMSimUser>();
            accessFail.Add(m_User[2]);

            List<GSMSimUser> forAccessAgain = new List<GSMSimUser>();
            forAccessAgain.Add(m_User[1]);


            //trxList[0].TSs[1].CurULThroughput.Add(m_User[0], 25f);
            m_User[0].UlTs.Add(trxList[0].TSs[1]);
            trxList[0].CellUsers.Add(m_User[0]);
            trxList[0].LastKick.Add(m_User[2]);
            m_User[0].TrafficUser.LinkType = LinkType.Uplink;
            m_User[2].TrafficUser.LinkType = LinkType.Downlink;
            trxList[0].AccessCsUlUsers.Add(m_User[0]);
            trxList[0].AccessCsDlUsers.Add(m_User[2]);

            m_User[0].ULInterf.Add(trxList[0].TSs[1], -110f);
            m_User[0].UlCirs.Add(trxList[0].TSs[1], 15f);

            m_User[0].CurULTxPower.Add(trxList[0].TSs[1], 33f);
            //add by 6.10
            m_User[0].ResultStatistic.UlThorughput.Add(12000);
            m_User[0].ResultStatistic.ULTDInterf.Add(-150);
            m_User[0].ResultStatistic.ULUMTSInterf.Add(-150);

            trxList[0].IterULThrghtpt.Add(25f);
            trxList[0].IterDLThrghtpt.Add(0f);

            ConvergenceResult convergenceResult = new ConvergenceResult();
            //将相应参数加入到context中
            SnapshotContext context = GSMMock.CreateContext();
            context.AddKey(GsmContextkey.GSMSimTRXs, trxList);
            context.AddKey(GsmContextkey.GSMGetLinkloss, m_IGetLinkloss);
            context.AddKey(GsmContextkey.AllUsers, m_User);
            context.AddKey(GsmContextkey.GSMServedUsers, serverUsers);
            context.AddKey(GsmContextkey.GSMAccessFails, accessFail);
            context.AddKey(GsmContextkey.GSMForAccessAgain, forAccessAgain);
            context.AddKey(GsmContextkey.GSMConvergenceResult, convergenceResult);

            SnapShotStatistics statistics = new SnapShotStatistics();
            statistics.Init(context);
            statistics.CellStatistics();

            /*小区统计参数*/

            //上下行负载
            Assert.IsTrue(trxList[0].UlLoad - 0.125 < 0.01);
            Assert.IsTrue(trxList[0].DlLoad - 0 < 0.01);
            //被服务的用户数
            Assert.AreEqual(1, trxList[0].SerUserNum);
            //掉话数
            //Assert.AreEqual(1, trxList[0].DropUserNum);
            //语音及数据阻塞数
            //Assert.IsTrue(trxList[0].VoiceBlock - 0.5 < 0.01);
            //Assert.IsTrue(trxList[0].PacketBlock - 0 < 0.01);
            //接入失败用户数
            Assert.AreEqual(0, trxList[0].FailAccessUserNum);


            statistics.PdfCdfStatistics();
            /*用户统计参数*/
            Assert.IsTrue(m_User[0].ResultStatistic.UserULInterf - (-110) < 0.01);
            Assert.AreEqual(float.NegativeInfinity, m_User[0].ResultStatistic.UserDLInterf);
            Assert.IsTrue(m_User[0].ResultStatistic.ULCir - 15 < 0.01);
            Assert.AreEqual(float.NegativeInfinity, m_User[0].ResultStatistic.DLCir);
            Assert.AreEqual(float.NegativeInfinity, m_User[0].ResultStatistic.DLTCHRxPower);
            Assert.IsTrue(m_User[0].ResultStatistic.TxPower - 33 < 0.01);


            GSMSnapshotResult result = statistics.GetResult();

            result.GetExcelResult();
            result.GetSnapshotDisplayData(new StyleStruct());


            GSMGetSimulationVectorData ggsvd = new GSMGetSimulationVectorData();
            List<IResult> resultList = new List<IResult>();
            resultList.Add(result);

            StyleStruct ss = new StyleStruct();
            GeoPointStyle style1 = new GeoPointStyle();
            style1.Name = "DLSatisfied";
            ss.Styles.Add(style1);

            Assert.AreEqual(6, ((GSMSimulationVectorData)ggsvd.GetSimulationVectorData(resultList, ss)).UserResult.Count);

        }