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_DropEcioDistanceInfo() { DropEcioDistanceInfo info = stats[1].GenerateDistanceInfo <DropEcioDistanceInfo, double>(); info.AssertDistanceTest(new[] { -9.4, -8.8, -8.2, -9.6, -10.8, -10.5, -11.3, 0.0, -22.0, 0.0, 0.0, -19.5, -12.5, -7.0, 0.0, -9.0, 0.0, 0.0, 0.0, -6.5, 0.0, 0.0 }); }
public void Test_GenerateDistanceDistribution_DropEcioDistanceInfo( double[] values) { DropEcioDistanceInfo info = new DropEcioDistanceInfo { 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, DropEcioDistanceInfo = 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].DropEcio, values[i]); } }
public void Test_GenerateDistanceDistribution_DropEcioDistanceInfo( double[] values) { DropEcioDistanceInfo info = new DropEcioDistanceInfo { 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, DropEcioDistanceInfo = 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].DropEcio, values[i]); } }