public JsonResult CoverageIntervalPercentage(string fieldName, CoverageStatChart chart) { StatValueField field = new StatValueField { FieldName = fieldName }; field.AutoGenerateIntervals(8); IEnumerable <double> values = (fieldName == "信号RSRP") ? chart.StatList.Select(x => x.Rsrp) : chart.StatList.Select(x => x.Sinr); Dictionary <string, double> result = field.GetPercentageStat(values); return(Json(result.Select(x => new { N = x.Key, V = 100 * x.Value }), JsonRequestBehavior.AllowGet)); }
public void TestStatValueGetPercentageStat() { IEnumerable <double> values = new[] { 2.1, 2.2, 3.1, 2.4, 4.6, 3.7, 1.8, 2.1, 2.2, 1.1, 1.7, 3.1, 3.3, 3.8, 4.7 }; Dictionary <string, double> result = field.GetPercentageStat(values); Assert.IsNotNull(result); Assert.AreEqual(result.Count, 4); Assert.AreEqual(result.ElementAt(0).Key, "[ 1 , 2 )"); Assert.AreEqual(result["[ 1 , 2 )"], 0.2); Assert.AreEqual(result["[ 2 , 3 )"], 0.333333, 1E-6); Assert.AreEqual(result["[ 3 , 4 )"], 0.333333, 1E-6); Assert.AreEqual(result["[ 4 , 5 )"], 0.133333, 1E-6); }