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); }
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); }