예제 #1
0
        /// <summary>
        /// Validate arrays of numbers.
        /// </summary>
        /// <param name="missingNumbersViewModel">Instance of MissingNumbersViewModel.</param>
        /// <returns>Error message.</returns>
        private string ValidateArrays(MissingNumbersViewModel missingNumbersViewModel)
        {
            if ((missingNumbersViewModel.SecondArrayNumbers.Max() - missingNumbersViewModel.SecondArrayNumbers.Min()) > 100)
            {
                return(MissingNumbersMessages.ErrorSecondArrayDifferenceNunmberGreater100);
            }

            if (missingNumbersViewModel.FirstArrayLength < 1)
            {
                return(MissingNumbersMessages.ErrorLengthFirstArray);
            }

            if (missingNumbersViewModel.SecondArrayLength > 2 * Math.Pow(10, 5))
            {
                return(MissingNumbersMessages.ErrorSecondArrayGreat);
            }

            if (missingNumbersViewModel.FirstArrayLength > missingNumbersViewModel.SecondArrayLength)
            {
                return(MissingNumbersMessages.ErrorArraysLength);
            }

            if (missingNumbersViewModel.SecondArrayNumbers.Max() > Math.Pow(10, 4) || missingNumbersViewModel.SecondArrayNumbers.Min() < 1)
            {
                return(MissingNumbersMessages.ErrorSecondArrayNumbersOutOfRange);
            }

            return(string.Empty);
        }
예제 #2
0
 /// <summary>
 /// Get Missing Numbers.
 /// </summary>
 /// <param name="missingNumbersViewModel">Instance of MissingNumbersViewModel.</param>
 /// <returns>Missing Numbers.</returns>
 public string GetMissingNumbers(MissingNumbersViewModel missingNumbersViewModel)
 {
     missingNumbersViewModel = this.GetArrays(missingNumbersViewModel);
     if (string.IsNullOrEmpty(missingNumbersViewModel.ErrorMessage))
     {
         Dictionary <int, int> firstArrayFrecuency  = this.GetFrecuency(missingNumbersViewModel.FirstArrayNumbers);
         Dictionary <int, int> secondArrayFrecuency = this.GetFrecuency(missingNumbersViewModel.SecondArrayNumbers);
         return(this.VerifyFrecuency(firstArrayFrecuency, secondArrayFrecuency));
     }
     else
     {
         return(string.Empty);
     }
 }
예제 #3
0
        public void GetMissingNumbersSuccess()
        {
            MissingNumbersViewModel missingNumbersViewModel = new MissingNumbersViewModel()
            {
                FirstArrayLength         = 1,
                SecondArrayLength        = 1,
                FirstArrayStringNumbers  = "1",
                SecondArrayStringNumbers = "2"
            };

            string result = this.missingNumbersBusiness.GetMissingNumbers(missingNumbersViewModel);

            Assert.AreEqual(string.Empty, missingNumbersViewModel.ErrorMessage);
            Assert.AreNotEqual(string.Empty, result);
        }
예제 #4
0
        public void GetMissingNumbersArrayEmptyText()
        {
            MissingNumbersViewModel missingNumbersViewModel = new MissingNumbersViewModel()
            {
                FirstArrayLength         = 1,
                SecondArrayLength        = 1,
                FirstArrayStringNumbers  = " ",
                SecondArrayStringNumbers = " "
            };

            string result = this.missingNumbersBusiness.GetMissingNumbers(missingNumbersViewModel);

            Assert.AreEqual(MissingNumbersMessages.ErrorConvertingNumbers, missingNumbersViewModel.ErrorMessage);
            Assert.AreEqual(string.Empty, result);
        }
예제 #5
0
        /// <summary>
        /// Get arrays of numbers from string of numbers.
        /// </summary>
        /// <param name="missingNumbersViewModel">Instance of MissingNumbersViewModel.</param>
        /// <returns>Arrays of numbers from string of numbers.</returns>
        private MissingNumbersViewModel GetArrays(MissingNumbersViewModel missingNumbersViewModel)
        {
            try
            {
                string[] tempNumbersFirstArray  = missingNumbersViewModel.FirstArrayStringNumbers.Split(' ');
                string[] tempNumbersSecondArray = missingNumbersViewModel.SecondArrayStringNumbers.Split(' ');
                missingNumbersViewModel.FirstArrayNumbers  = Array.ConvertAll(tempNumbersFirstArray, int.Parse).ToList();
                missingNumbersViewModel.SecondArrayNumbers = Array.ConvertAll(tempNumbersSecondArray, int.Parse).ToList();
                missingNumbersViewModel.ErrorMessage       = this.ValidateArrays(missingNumbersViewModel);
            }
            catch (Exception)
            {
                missingNumbersViewModel.ErrorMessage = MissingNumbersMessages.ErrorConvertingNumbers;
            }

            return(missingNumbersViewModel);
        }
예제 #6
0
 public ActionResult Index(MissingNumbersViewModel missingNumbersViewModel)
 {
     missingNumbersViewModel.MissingNumbersResult = new MissingNumbersBusiness().GetMissingNumbers(missingNumbersViewModel);
     return(this.View(missingNumbersViewModel));
 }