public void ShouldNot_GetNumbersThatSumToN(List <ulong> numbers, ulong n)
        {
            var solver = new PuzzleSolverDay1();
            var result = solver.GetNumbersThatSumToN(numbers, n);

            Assert.Empty(result);
        }
        public void Should_GetKNumbersThatSumToN(List <ulong> numbers, int k, ulong n, List <ulong> expected)
        {
            var solver = new PuzzleSolverDay1();
            var result = solver.GetKNumbersThatSumToN(numbers, k, n);

            Assert.Equal(expected, result);
        }
        public void Should_GetNumbersThatSumToN(List <ulong> numbers, ulong n)
        {
            var solver = new PuzzleSolverDay1();
            var result = solver.GetNumbersThatSumToN(numbers, n);

            Assert.Equal(n, result[0] + result[1]);
            Assert.Equal(2, result.Count);
        }
        public void ShouldNot_GetKNumbersThatSumToN_TooFewNumbers(List <ulong> numbers, int k, ulong n)
        {
            var solver = new PuzzleSolverDay1();

            Assert.Throws <ArgumentException>("k", () => solver.GetKNumbersThatSumToN(numbers, k, n));
        }