public void TestPm10AqiExpectedCategories() { Tuple <int, int> result = Pm10Aqi.CalculateAQIAndCategory(0); // 0 to 54.0 should be green for (double d = 0; d <= 54.0; d += 0.1) { result = Pm10Aqi.CalculateAQIAndCategory(d); Assert.AreEqual(1, result.Item2); } // 54.1 to 154.0 should be yellow for (double d = 54.1; d <= 154.0; d += 0.1) { result = Pm10Aqi.CalculateAQIAndCategory(d); Assert.AreEqual(2, result.Item2); } // 154.1 to 254.0 should be orange for (double d = 154.1; d <= 254.0; d += 0.1) { result = Pm10Aqi.CalculateAQIAndCategory(d); Assert.AreEqual(3, result.Item2); } // 254.1 to 354.0 should be red for (double d = 254.1; d <= 354.0; d += 0.1) { result = Pm10Aqi.CalculateAQIAndCategory(d); Assert.AreEqual(4, result.Item2); } // 354.1 to 424.0 should be purple for (double d = 354.1; d <= 424.0; d += 0.1) { result = Pm10Aqi.CalculateAQIAndCategory(d); Assert.AreEqual(5, result.Item2); } // 424.1 to 604.0 should be maroon for (double d = 424.1; d <= 604.0; d += 0.1) { result = Pm10Aqi.CalculateAQIAndCategory(d); Assert.AreEqual(6, result.Item2); } }
public IHttpActionResult AddStationDataPointSet([FromBody] DataPoint[] dataSet) { DateTime start = DateTime.Now; if (dataSet.Length == 0) { return(NotFound()); } foreach (DataPoint dataPoint in dataSet) { if (dataPoint.Category == 0 && dataPoint.AQI == 0 || dataPoint.AQI < 0) { Tuple <int, int> result = null; switch (dataPoint.Parameter.Name) { case "PM2.5": result = Pm25Aqi.CalculateAQIAndCategory(dataPoint.Value); dataPoint.AQI = result.Item1; dataPoint.Category = result.Item2; break; case "PM10": result = Pm10Aqi.CalculateAQIAndCategory(dataPoint.Value); dataPoint.AQI = result.Item1; dataPoint.Category = result.Item2; break; case "CO": result = CoAqi.CalculateAQIAndCategory(dataPoint.Value); dataPoint.AQI = result.Item1; dataPoint.Category = result.Item2; break; case "NO2": result = No2Aqi.CalculateAQIAndCategory(dataPoint.Value); dataPoint.AQI = result.Item1; dataPoint.Category = result.Item2; break; case "OZONE": result = OzoneAqi.CalculateAQIAndCategory(dataPoint.Value); dataPoint.AQI = result.Item1; dataPoint.Category = result.Item2; break; case "SO2": result = So2Aqi.CalculateAQIAndCategory(dataPoint.Value); dataPoint.AQI = result.Item1; dataPoint.Category = result.Item2; break; } } } IEnumerable <DataPoint> response = _stationRepo.SetDataPointsFromStation(dataSet); DateTime end = DateTime.Now; if (response == null) { return(NotFound()); } return(Ok(response)); }