public void MahrExportTest(string measure, string standard, string max, string min, string expected) { //assign var fpath = @"D:\2.txt"; var data = new List<MeasureExportModel>(); var model = new MeasureExportModel() { MeasureName = DateTime.Now.ToString(@"mmss"), MeasureValue = measure, Max = max, Min = min, Standard = standard, Deviation = "", Symbol = "", }; var model2 = new MeasureExportModel() { //"15.029", "15.000", "15.100", "14.900 MeasureName = DateTime.Now.ToString(@"mmss") + "-1", MeasureValue = "15.029", Max = "15.1", Min = "14.9", Standard = "15", Deviation = "", Symbol = "", }; data.Add(model); data.Add(model2); //act ExportHelper.MahrExport(data, fpath); //assert Assert.True(1 == 1); }
/// <summary> /// 計算 Mahr 評估值 /// </summary> /// <param name="data"></param> /// <returns></returns> public static string GetEvaluation(MeasureExportModel data) { var evaluation = ""; char space = ' '; double min, max, measure, standard; if (Double.TryParse(data.Standard, out standard) && Double.TryParse(data.MeasureValue, out measure) && Double.TryParse(data.Min, out min) && Double.TryParse(data.Max, out max)) { var deviation = measure - standard; var isGreater = (deviation) > 0; var symbol = (isGreater) ? "+" : "-"; var diffPercent = (isGreater) ? deviation / (max - standard) : deviation / (standard - min); var count = 0; var absDiffPercent = Math.Abs(diffPercent); if (absDiffPercent <= 0.25) count = 1; else if (absDiffPercent > 0.25 && absDiffPercent <= 0.5) count = 2; else if (absDiffPercent > 0.5 && absDiffPercent <= 0.75) count = 3; else count = 4; for (var i = 0; i < count; i++) evaluation += symbol; } return evaluation.PadLeft(11, space); }
public void GetEvaluationTest(string measure, string standard, string max, string min, string expected) { //assign var model = new MeasureExportModel() { MeasureName = DateTime.Now.ToString(@"mmss"), MeasureValue = measure, Max = max, Min = min, Standard = standard, Deviation = "", Symbol = "", }; //act var evaluation = ExportHelper.GetEvaluation(model); //assert Assert.True(evaluation == expected); }