Exemple #1
0
        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]);
            }
        }
Exemple #4
0
        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();
        }