Ejemplo n.º 1
0
        public void ConsoleTestNumberAnalyzer()
        {
            NumberAnalyzer numberAnalyzer = new NumberAnalyzer(100, 4);

            numberAnalyzer.EventTooHightDifference +=
                () => Console.WriteLine("Число отличается на недопустимую велчину.");

            Random random = new Random();

            ConsoleTool.WriteLineConsoleGreenMessage("Исходные данные 100 и от него допуск 4% вперед и назад. Проверим числа в диапазоне от 0 до 199. Тут точно будут недопустимые величины.");
            for (int i = 0; i < 5; i++)
            {
                int testNumber = random.Next(0, 200);
                Console.WriteLine($"Проверка числа: {testNumber}");
                numberAnalyzer.DifferenceChecker(testNumber);
            }

            ConsoleTool.WriteLineConsoleGreenMessage("А теперь скормим заведомо подходящие числа от 97 до 103");
            for (int i = 0; i < 5; i++)
            {
                int testNumber = random.Next(97, 104);
                Console.WriteLine($"Проверка числа: {testNumber}");
                numberAnalyzer.DifferenceChecker(testNumber);
            }
        }
Ejemplo n.º 2
0
        public static void Main(string[] args)
        {
            System.Console.WriteLine("Please enter 4 numbers with 4 digits:");
            string[] userInputs = { "", "", "", "" };
            for (int i = 0; i < 4; i++)
            {
                try
                {
                    userInputs[i] = System.Console.ReadLine();
                    if (userInputs[i].Length != 4)
                    {
                        i--;
                        throw new System.Exception("");
                    }
                }catch (System.Exception ex)
                {
                    System.Console.WriteLine("We accept only numbers with four digits");
                }
            }

            string[] bins = NumberAnalyzer.convertToBin(userInputs);
            foreach (string str in bins)
            {
                System.Console.Write("{0} , ", str);
            }
            System.Console.ReadLine();
        }
Ejemplo n.º 3
0
        public void AnaliseStreamOfNumbersWithBigDifferenceInPercentageTest()
        {
            Collection <double> streamOfNumbers = new Collection <double>()
            {
                1.34, 5.876, 2.7, 3, 12.12736
            };
            NumberAnalyzer numberAnalyzer = new NumberAnalyzer(streamOfNumbers);

            string analizeNotify = null;

            numberAnalyzer.BigDifferenceEvent += delegate(string notify)
            {
                analizeNotify = notify;
            };

            numberAnalyzer.AnalyzeStreamOfNumbersWithPercentage(50);

            Assert.IsNotNull(analizeNotify);
            Console.WriteLine(analizeNotify);
        }
        public void When_AnalyzeRandomNumber_Then_Success()
        {
            var numberComparer = new NumberComparer();
            var numberBuilder = new NumberBuilder(unitsLength: 3);
            var numberAnalyzer = new NumberAnalyzer(numberBuilder);

            var mainNumber = numberBuilder.Build ();
            var firstTryNumber = numberBuilder.Build ();
            var attempt = numberComparer.Compare(mainNumber, firstTryNumber);

            var numberGuessed = false;
            var attemptsLimit = 20;
            var attemptsCount = 1;

            do
            {
                var nextNumber = numberAnalyzer.GetNextNumber(lastAttempt: attempt);

                attempt = numberComparer.Compare(mainNumber, nextNumber);
                attemptsCount++;

                if (attempt.Goods == 3)
                {
                    numberGuessed = true;
                }
            }
            while (!numberGuessed);

            if (attemptsCount > attemptsLimit)
            {
                Assert.Fail("The number has been guessed in {0} attempts. The maximum allowed was {1}", attemptsCount, attemptsLimit);
            }
            else
            {
                Assert.IsTrue(numberGuessed, "The number has been guessed in {0} attempts", attemptsCount);
            }
        }