private void ArrayHasNoDuplicates(List <ValidationResult> errors, SortingInput input) { long[] arr = input.GetNumbers(); if (arr.GroupBy(f => f).Any(g => g.Count() > 1)) { errors.Add(new ValidationResult($"Sequence cannot have duplicate numbers.", new[] { "Line" })); } }
private void ArrayIsCorrectLength(List <ValidationResult> errors, SortingInput input, int maxArrLength) { long[] arr = input.GetNumbers(); if (arr.Length > maxArrLength) { errors.Add(new ValidationResult($"Max of {maxArrLength} numbers is allowed.", new[] { "Line" })); } }
private void ArrayValuesBetweenMinMax(List <ValidationResult> errors, SortingInput input, int min, int max) { long[] arr = input.GetNumbers(); Array.Sort(arr); if (arr.Any(f => f < min) || arr.Any(f => f > max)) { errors.Add(new ValidationResult($"Numbers must be between {min} and {max}.", new[] { "Line" })); } }
private bool OnlyNumbersAndSpaces(List <ValidationResult> errors, SortingInput input) { string pattern = @"^([1-9][0-9]*[ ])*[1-9][0-9]*[ ]*$"; Regex regex = new Regex(pattern); if (!regex.IsMatch(input.Line)) { errors.Add(new ValidationResult($"Only numbers separated by space are allowed. Ex: \"4 2 3 8\".")); return(false); } return(true); }