public void CanGetValidWinsorization() { //Arrange Winsorizator wins = new Winsorizator(); double[] input1 = { 2, 3, 17, 6, 1 }; int m1 = 2; double reference1 = 5.8; double[] input2 = { 17, 38, 9, 63, 41, 15 }; int m2 = 4; double reference2 = 31.75; double[] input3 = { 7, 82, 33, 33, 33, 1, 56 }; int m3 = 2; double reference3 = 35; //Action double result1 = wins.FindWinsorizedMedium(input1, m1); double result2 = wins.FindWinsorizedMedium(input2, m2); double result3 = wins.FindWinsorizedMedium(input3, m3); //Assert Assert.AreEqual(reference1, result1, 0.0001); Assert.AreEqual(reference2, result2, 0.0001); Assert.AreEqual(reference3, result3, 0.0001); }
static void WinsorizationDemonstration() { double[] demoFirst = { 2, 3, 17, 6, 1 }; double[] demoSecond = { 17, 38, 9, 63, 41, 15 }; double[] demoThird = { 7, 82, 33, 33, 33, 1, 56 }; Winsorizator wins = new Winsorizator(); Console.WriteLine("Демонстрационные значения винсоризации на заданных массивах " + Environment.NewLine + "(m - степень винсоризации)"); Console.WriteLine($"Массив [2, 3, 17, 6, 1] и m = 2: {wins.FindWinsorizedMedium(demoFirst,2)}"); Console.WriteLine($"Массив [17, 38, 9, 63, 41, 15] и m = 4: {wins.FindWinsorizedMedium(demoSecond, 4)}"); Console.WriteLine($"Массив [7, 82, 33, 33, 33, 1, 56] и m = 2: {wins.FindWinsorizedMedium(demoThird, 2)}"); }
static void Main(string[] args) { Console.WriteLine("Здравствуйте!"); while (true) { Console.Write(greetingMessage); //1-winsorization, 2 - median filtration, 3 - demonstration int operationNumber = ChooseAction(); if (operationNumber == 3) { WinsorizationDemonstration(); continue; } Console.WriteLine(enterArray); DataParser parser = new DataParser(); double[] parsedArray = null; do { string inputArray = Console.ReadLine(); parsedArray = parser.ParseArray(inputArray); Console.WriteLine(parser.ValidationMessage); }while (parsedArray == null); if (operationNumber == 1) { Console.WriteLine(enterWinsParameter); } else if (operationNumber == 2) { Console.WriteLine(enterMedianParameter); } Console.WriteLine(parameterCharachter); int parsedParameter = -1; do { string inputParameter = Console.ReadLine(); parsedParameter = parser.ParseParameter(inputParameter, parsedArray.Length); Console.WriteLine(parser.ValidationMessage); }while (parsedParameter == -1); Console.WriteLine(resultOfTask); if (operationNumber == 1) { Winsorizator wins = new Winsorizator(); double output = wins.FindWinsorizedMedium(parsedArray, parsedParameter); Console.WriteLine(output); } else { MedianFilter filter = new MedianFilter(); double[] output = filter.GetMedianFiltration(parsedArray, parsedParameter); Console.WriteLine(string.Join(" ", output)); } Console.WriteLine(anythingElse); string answer = Console.ReadLine(); if (!answer.ToLower().Contains("да")) { break; } } }