public void ThrowsOnPairsInCaseOfOverflowSum() { var inputCollection = new List <int> { 1, 7, 2, int.MaxValue }; var x = 4; Assert.Catch <ArgumentException>(() => NumberTool.MatchSumOfPairs(inputCollection, x)); }
public void ReturnsEmptyCollectionIfInputCollectionIsEmpty() { var inputCollection = new List <int>(); var x = 20; var outputCollection = NumberTool.MatchSumOfPairs(inputCollection, x); CollectionAssert.IsEmpty(outputCollection); }
public void ReturnsEmptyCollectionOfPairsIfNoMatchSum() { var inputCollection = new List <int> { 1, 7, 8, 15 }; var x = 20; var outputCollection = NumberTool.MatchSumOfPairs(inputCollection, x); CollectionAssert.IsEmpty(outputCollection); }
public void ReturnsOnePairIfALotOfTheSameMatchSum() { var inputCollection = new List <int> { 1, 1, 1, 1, 1 }; var x = 2; var outputCollection = NumberTool.MatchSumOfPairs(inputCollection, x); CollectionAssert.IsNotEmpty(outputCollection); Assert.IsTrue(outputCollection.Count() == 1); Assert.AreEqual(x, outputCollection.Single().Value1 + outputCollection.Single().Value2); }
public void ReturnsThreePairsIfThreeMatchSum() { var inputCollection = new List <int> { 1, 7, 2, 6, 4 }; var x = 8; var outputCollection = NumberTool.MatchSumOfPairs(inputCollection, x); CollectionAssert.IsNotEmpty(outputCollection); Assert.IsTrue(outputCollection.Count() == 2); Assert.IsTrue(outputCollection.All(p => p.Value1 + p.Value2 == x)); }
/// <summary> /// Runs application /// </summary> internal void Run() { _userInteraction.DisplayInfo("This application displays pairs from an imput list. Sum of these pairs equal specific value X"); _userInteraction.DisplayInfo(string.Empty); _userInteraction.DisplayInfo("Enter an input list of numbers (Int32) separated by space ' ':"); _userInteraction.DisplayInfo("Example: 1 3 5 6"); var line = _userInteraction.ReadUserInput(); if (string.IsNullOrEmpty(line)) { _userInteraction.DisplayInfo("The line is empty."); return; } var stringList = line.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); IEnumerable <int> numberList; try { numberList = ConvertToIntArray(stringList); } catch (ArgumentException ex) { _userInteraction.DisplayInfo(ex.Message); return; } _userInteraction.DisplayInfo("Enter X - sum of pair:"); line = _userInteraction.ReadUserInput(); if (string.IsNullOrEmpty(line)) { _userInteraction.DisplayInfo("The line is empty."); return; } int x; if (!int.TryParse(line, out x)) { _userInteraction.DisplayInfo("The X is invalid."); return; } var pairs = NumberTool.MatchSumOfPairs(numberList, x); DisplayPairs(pairs); }
public void ThrowsNullExceptionIfInputCollectionIsNull() { var x = 8; Assert.Catch <ArgumentNullException>(() => NumberTool.MatchSumOfPairs(null, x)); }