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