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]); } }