/// <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); }
/// <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); } }
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); }
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); }
/// <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); }
public ActionResult Index(MissingNumbersViewModel missingNumbersViewModel) { missingNumbersViewModel.MissingNumbersResult = new MissingNumbersBusiness().GetMissingNumbers(missingNumbersViewModel); return(this.View(missingNumbersViewModel)); }