コード例 #1
0
ファイル: StatTests.cs プロジェクト: the-Dust/StatMethods
        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);
        }
コード例 #2
0
        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)}");
        }
コード例 #3
0
        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;
                }
            }
        }