public void FindPairsTest() { int itemCount = 10000; int minValue = -1000; int maxValue = 1000; List <int> integers = new List <int>(); Random rand = new Random(); for (int i = 0; i < itemCount; i++) { integers.Add(rand.Next(minValue, maxValue)); } var p = new PairSum(integers); for (int x = -10; x < 11; x++) { var result = p.Find(x); List <int> intCheck = integers.ToList(); foreach (var tup in result) { Assert.AreEqual(tup.Item1 + tup.Item2, x); intCheck.Remove(tup.Item1); intCheck.Remove(tup.Item2); } Assert.IsTrue(intCheck.Count == itemCount - result.Count * 2); } }
public void GivenNullArray_WhenFind_ThenThrows() { // Arrange var tps = new PairSum(); // Act // Assert Assert.ThrowsException <ArgumentNullException>(() => tps.Find(null, 10)); }
public void GivenArrayAndSum_WhenFind_ThenReturnsAllTwoPairSumsWhichEqualToSumNumber() { // Arrange var array = new[] { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; var sum = 8; var tps = new PairSum(); // Act var result = tps.Find(array, sum).OrderBy(x => x.Item1).ThenBy(x => x.Item2).ToList(); // Assert var expectedResult = new List <Tuple <int, int> >() { new Tuple <int, int>(1, 7), new Tuple <int, int>(2, 6), new Tuple <int, int>(3, 5) }; for (int i = 0; i < expectedResult.Count; i++) { Assert.AreEqual(expectedResult[i], result[i]); } }
static void Main(string[] args) { var sumList = PairSum.FindAPairsSumThatMatchesTarget(new List <int>() { 1, 2, 3, 4, 6 }, 6); Console.WriteLine($"Sum List [{sumList[0]}, {sumList[1]}]"); Console.WriteLine(); var sumListAlt = PairSum.FindAPairsAltSolution(new List <int>() { 1, 2, 3, 4, 6 }, 6); Console.WriteLine($"Sum List Alt [{sumList[0]}, {sumList[1]}]"); Console.WriteLine(); var removeDups = RemoveDuplicates.RemoveAllDuplicateNumbers(new List <int>() { 2, 2, 2, 11 }); Console.WriteLine($"Length after Dups have been removed: {removeDups}"); Console.WriteLine(); var removeDupsEducativeVersion = RemoveDuplicates.RemoveAllDupsWithArray(new int[] { 2, 3, 3, 3, 6, 9, 9 }); Console.WriteLine($"Length after Dups have been removed: {removeDupsEducativeVersion}"); Console.WriteLine(); var easySquares = SquareArray.GenerateListOfSquaresEasy(new List <int>() { -2, -1, 0, 2, 3 }); Console.Write($"[ "); foreach (var number in easySquares) { Console.Write($"{number} "); } Console.Write($"]"); Console.WriteLine(); var squares = SquareArray.GenerateArrayOfSquares(new int[] { -2, -1, 0, 2, 3 }); Console.Write($"[ "); foreach (var number in squares) { Console.Write($"{number} "); } Console.Write($"]"); Console.WriteLine(); var listSquares = SquareArray.GenerateListOfSquares(new List <int>() { -2, -1, 0, 2, 3 }); Console.Write($"[ "); foreach (var number in listSquares) { Console.Write($"{number} "); } Console.Write($"]"); Console.WriteLine(); var triplets = TripletsToZero.FindUniqueTripletsThatEqualZero(new List <int>() { -3, 0, 1, 2, -1, 1, -2 }); foreach (var list in triplets) { Console.Write($"Triplet: "); foreach (var number in list) { Console.Write($"{number} "); } Console.WriteLine(); } Console.WriteLine(); var closestToTarget = TripletSum.FindTripletSumClosestToTarget(new List <int>() { 1, 0, 1, 1 }, 100); Console.WriteLine($"Closest: {closestToTarget}"); Console.WriteLine(); var searchTriplet = TripletSum.SearchTriplet(new int[] { 1, 0, 1, 1 }, 100); Console.WriteLine($"Educative Closest: {searchTriplet}"); Console.WriteLine(); var tripletCount = CountTriplets.CountTripletsThatHasASumLessThanTarget(new List <int>() { -1, 4, 2, 1, 3 }, 5); Console.WriteLine($"Triplets Less than target: {tripletCount}"); Console.WriteLine(); var productsList = ProductLessThanTarget.FindProductsLessThanTarget(new List <int>() { 8, 2, 6, 5 }, 50); Console.WriteLine($"Product List: "); foreach (var list in productsList) { Console.Write(" ["); foreach (var number in list) { Console.Write($"{number} "); } Console.Write("] "); } Console.WriteLine(); var productsEducative = ProductLessThanTarget.FindProductEducative(new int[] { 8, 2, 2, 5 }, 50); Console.WriteLine($"Product List: "); foreach (var list in productsEducative) { Console.Write(" ["); foreach (var number in list) { Console.Write($"{number} "); } Console.Write("] "); } Console.WriteLine(); var dutchFlag = DutchFlag.SortInPlace(new List <int>() { 2, 2, 0, 1, 2, 0 }); Console.WriteLine("DutchFlag = "); foreach (var number in dutchFlag) { Console.Write($"{number} "); } Console.WriteLine(); var quad = QaudSum.ListOfQuads(new List <int>() { 4, 1, 2, -1, 1, -3, 28, -26 }, 1); Console.WriteLine("Quad List: "); foreach (var list in quad) { Console.Write($"["); foreach (var number in list) { Console.Write($"{number} "); } Console.Write("]"); } Console.WriteLine(); }