public static void Import(this List<DistanceDistribution> result, CdrCallsDistanceInfo cdrCallInfo, CdrDropsDistanceInfo cdrDropInfo, DropEcioDistanceInfo dropEcioInfo, GoodEcioDistanceInfo goodEcioInfo) { int[] distanceRange = { 0,200,400,600,800,1000,1200,1400,1600,1800,2000,2200,2400,2600,2800,3000,4000, 5000,6000,7000,8000,9000 }; for (int i = 0; i < distanceRange.Length - 1; i++) { string propertyName = "DistanceTo" + distanceRange[i + 1] + "Info"; PropertyInfo cdrCallsProperty = (typeof(CdrCallsDistanceInfo)).GetProperty(propertyName); PropertyInfo cdrDropsProperty = (typeof(CdrDropsDistanceInfo)).GetProperty(propertyName); PropertyInfo dropEcioProperty = (typeof(DropEcioDistanceInfo)).GetProperty(propertyName); PropertyInfo goodEcioProperty = (typeof(GoodEcioDistanceInfo)).GetProperty(propertyName); result.Add(new DistanceDistribution { DistanceDescription = distanceRange[i] + " -> " + distanceRange[i + 1] + "m", CdrCalls = (cdrCallInfo == null) ? 0 : (int) cdrCallsProperty.GetValue(cdrCallInfo), CdrDrops = (cdrDropInfo == null) ? 0 : (int) cdrDropsProperty.GetValue(cdrDropInfo), DropEcio = (dropEcioInfo == null) ? 0 : (double) dropEcioProperty.GetValue(dropEcioInfo), GoodEcio = (goodEcioInfo == null) ? 0 : (double) goodEcioProperty.GetValue(goodEcioInfo)*100 }); } result.Add( new DistanceDistribution { DistanceDescription = "9000m -> inf", CdrCalls = (cdrCallInfo == null) ? 0 : cdrCallInfo.DistanceToInfInfo, CdrDrops = (cdrDropInfo == null) ? 0 : cdrDropInfo.DistanceToInfInfo, DropEcio = (dropEcioInfo == null) ? 0 : dropEcioInfo.DistanceToInfInfo, GoodEcio = (goodEcioInfo == null) ? 0 : goodEcioInfo.DistanceToInfInfo * 100 }); }
public void TestTopDrop2GCellCsv_CdrCallsDistanceInfo() { CdrCallsDistanceInfo info = stats[3].GenerateDistanceInfo <CdrCallsDistanceInfo, int>(); info.AssertDistanceTest(new[] { 235, 1478, 2615, 1299, 299, 118, 62, 39, 38, 13, 9, 16, 7, 6, 36, 88, 2, 1, 0, 1, 0, 0 }); }
public void TestImport_CdrCalls() { CdrCallsDistanceInfo info = new CdrCallsDistanceInfo { DistanceTo1000Info = 1233, DistanceTo1600Info = 2344, DistanceTo2200Info = 3765 }; result = new List<DistanceDistribution>(); result.Import(info, null, null, null); Assert.AreEqual(result.Count, 22); Assert.AreEqual(result[4].CdrCalls, 1233); Assert.AreEqual(result[7].CdrCalls, 2344); Assert.AreEqual(result[10].CdrCalls, 3765); }
public void TestImport_CdrCalls() { CdrCallsDistanceInfo info = new CdrCallsDistanceInfo { DistanceTo1000Info = 1233, DistanceTo1600Info = 2344, DistanceTo2200Info = 3765 }; result = new List <DistanceDistribution>(); result.Import(info, null, null, null); Assert.AreEqual(result.Count, 22); Assert.AreEqual(result[4].CdrCalls, 1233); Assert.AreEqual(result[7].CdrCalls, 2344); Assert.AreEqual(result[10].CdrCalls, 3765); }
public void Test_GenerateDistanceDistribution_CdrCallsDistanceInfo( int[] values) { CdrCallsDistanceInfo info = new CdrCallsDistanceInfo { DistanceTo200Info = values[0], DistanceTo400Info = values[1], DistanceTo600Info = values[2], DistanceTo800Info = values[3], DistanceTo1000Info = values[4], DistanceTo1200Info = values[5], DistanceTo1400Info = values[6], DistanceTo1600Info = values[7], DistanceTo1800Info = values[8], DistanceTo2000Info = values[9], DistanceTo2200Info = values[10], DistanceTo2400Info = values[11], DistanceTo2600Info = values[12], DistanceTo2800Info = values[13], DistanceTo3000Info = values[14], DistanceTo4000Info = values[15], DistanceTo5000Info = values[16], DistanceTo6000Info = values[17], DistanceTo7000Info = values[18], DistanceTo8000Info = values[19], DistanceTo9000Info = values[20], DistanceToInfInfo = values[21] }; statList.Add(new TopDrop2GCellDaily { CellId = 1, SectorId = 2, Frequency = 3, StatTime = DateTime.Today, CdrCallsDistanceInfo = info }); mockRepository.SetupGet(x => x.Stats).Returns(statList.AsQueryable()); List <DistanceDistribution> distribution = _service.GenerateDistanceDistribution(); Assert.AreEqual(distribution.Count, 22); for (int i = 0; i < 22; i++) { Assert.AreEqual(distribution[i].CdrCalls, values[i]); } }
public void Test_GenerateDistanceDistribution_CdrCallsDistanceInfo( int[] values) { CdrCallsDistanceInfo info = new CdrCallsDistanceInfo { DistanceTo200Info = values[0], DistanceTo400Info = values[1], DistanceTo600Info = values[2], DistanceTo800Info = values[3], DistanceTo1000Info = values[4], DistanceTo1200Info = values[5], DistanceTo1400Info = values[6], DistanceTo1600Info = values[7], DistanceTo1800Info = values[8], DistanceTo2000Info = values[9], DistanceTo2200Info = values[10], DistanceTo2400Info = values[11], DistanceTo2600Info = values[12], DistanceTo2800Info = values[13], DistanceTo3000Info = values[14], DistanceTo4000Info = values[15], DistanceTo5000Info = values[16], DistanceTo6000Info = values[17], DistanceTo7000Info = values[18], DistanceTo8000Info = values[19], DistanceTo9000Info = values[20], DistanceToInfInfo = values[21] }; statList.Add(new TopDrop2GCellDaily { CellId = 1, SectorId = 2, Frequency = 3, StatTime = DateTime.Today, CdrCallsDistanceInfo = info }); mockRepository.Setup(x => x.GetAll()).Returns(statList.AsQueryable()); List<DistanceDistribution> distribution = _service.GenerateDistanceDistribution(); Assert.AreEqual(distribution.Count, 22); for (int i = 0; i < 22; i++) { Assert.AreEqual(distribution[i].CdrCalls, values[i]); } }