コード例 #1
0
        public void Add_Creates_Carry()
        {
            var l1 = new ListNode(2)
            {
                next = new ListNode(4)
                {
                    next = new ListNode(3)
                }
            };
            var l2 = new ListNode(5)
            {
                next = new ListNode(6)
                {
                    next = new ListNode(4)
                }
            };
            var expected = new ListNode(7)
            {
                next = new ListNode(0)
                {
                    next = new ListNode(8)
                }
            };
            var sut    = new AddTwoNumbersSolution();
            var actual = sut.AddTwoNumbers(l1, l2);

            LinkedListTestHelper(expected, actual);
        }
コード例 #2
0
        static void AddTwoNumbers()
        {
            var l1 = new ListNode(0);
            var l2 = new ListNode(0);

            l1.next = l2;
            var l3 = new ListNode(9);

            l2.next = l3;

            var r1 = new ListNode(0);
            var r2 = new ListNode(0);

            r1.next = r2;
            var r3 = new ListNode(5);

            r2.next = r3;
            var r4 = new ListNode(9);

            r3.next = r4;

            var solution = new AddTwoNumbersSolution().Solve(l1, r1);

            foreach (var value in solution.Values().Reverse())
            {
                Console.Write(value);
            }
        }
コード例 #3
0
        public void Add_Two_Equal_Length_Arrays()
        {
            var l1 = new ListNode(2)
            {
                next = new ListNode(4)
                {
                    next = new ListNode(3)
                }
            };
            var l2 = new ListNode(5)
            {
                next = new ListNode(5)
                {
                    next = new ListNode(4)
                }
            };
            var expected = new ListNode(7)
            {
                next = new ListNode(9)
                {
                    next = new ListNode(7)
                }
            };
            var sut    = new AddTwoNumbersSolution();
            var actual = sut.AddTwoNumbers(l1, l2);

            LinkedListTestHelper(expected, actual);
        }
コード例 #4
0
        public void First_Argument_Is_Null()
        {
            // Arrange
            var solution = new AddTwoNumbersSolution();
            var expected = new ListNode(5)
            {
                next = new ListNode(6)
                {
                    next = new ListNode(4)
                }
            };

            //act
            var result = solution.AddTwoNumbers(null, new ListNode(5)
            {
                next = new ListNode(6)
                {
                    next = new ListNode(4)
                }
            });

            //Assert
            while (result != null || expected != null)
            {
                Assert.Equal(expected.val, result.val);

                result   = result.next;
                expected = expected.next;
            }
        }
コード例 #5
0
        public void TestAddTwoNumbers1()
        {
            // Input: (2 -> 4 -> 3) + (5 -> 6 -> 4)
            // Output: 7 -> 0 -> 8
            // Explanation: 342 + 465 = 807

            var l1c = new ListNode(3);
            var l1b = new ListNode(4)
            {
                next = l1c
            };
            var l1a = new ListNode(2)
            {
                next = l1b
            };

            var l2c = new ListNode(4);
            var l2b = new ListNode(6)
            {
                next = l2c
            };
            var l2a = new ListNode(5)
            {
                next = l2b
            };

            var resultA = AddTwoNumbersSolution.AddTwoNumbers(l1a, l2a);
            var resultB = resultA.next;
            var resultC = resultA.next.next;

            var resultString = string.Concat(resultC.val, resultB.val, resultA.val);

            Assert.Equal("807", resultString);
        }
コード例 #6
0
        public void Zero_Condition2()
        {
            // Arrange
            var solution = new AddTwoNumbersSolution();
            var expected = new ListNode(0)
            {
                next = new ListNode(0)
                {
                    next = new ListNode(1)
                }
            };

            //act
            var result = solution.AddTwoNumbers(new ListNode(1), new ListNode(9)
            {
                next = new ListNode(9)
            });

            //Assert
            while (result != null || expected != null)
            {
                Assert.Equal(expected.val, result.val);

                result   = result.next;
                expected = expected.next;
            }
        }
コード例 #7
0
        public void AddTwoNumbersTest()
        {
            var l1 = AddTwoNumbersSolution.GenerateList(new[] { 2, 3, 4 });
            var l2 = AddTwoNumbersSolution.GenerateList(new[] { 9, 8, 7 });
            var l3 = new AddTwoNumbersSolution().AddTwoNumbers(l1, l2);

            Assert.AreEqual(4, l3.val);
        }
コード例 #8
0
        public int[] Solution1_NotEqualLengthInput_Success(int[] a1, int[] a2)
        {
            var node1 = Array2ListNode(a1);
            var node2 = Array2ListNode(a2);

            var result = AddTwoNumbersSolution.Solution1(node1, node2);

            return(ListNode2Array(result));
        }
コード例 #9
0
        //[TestCase(new int[] { 1, 2, 3 }, new int[] { 0, 3 }, Result = new int[] { 1, 5, 3 })]
        public void Solution1_InvalidInput_Fail(int[] a1, int[] a2)
        {
            var node1 = Array2ListNode(a1);
            var node2 = Array2ListNode(a2);

            Assert.Throws <ArgumentException>(() =>
            {
                AddTwoNumbersSolution.Solution1(node1, node2);
            });

            //return ListNode2Array(result);
        }
コード例 #10
0
        public void Both_Arguments_Null()
        {
            // Arrange
            var      solution = new AddTwoNumbersSolution();
            ListNode expected = null;

            //act
            var result = solution.AddTwoNumbers(null, null);

            //Assert
            Assert.Equal(expected, result);
        }
コード例 #11
0
        public void Add_Creates_New_Node()
        {
            var l1       = new ListNode(5);
            var l2       = new ListNode(5);
            var expected = new ListNode(0)
            {
                next = new ListNode(1)
            };
            var sut    = new AddTwoNumbersSolution();
            var actual = sut.AddTwoNumbers(l1, l2);

            LinkedListTestHelper(expected, actual);
        }
コード例 #12
0
        public void AddTwoNumbers(int[] n1, int[] n2, string mustBe)
        {
            var addTwoNumbers = new AddTwoNumbersSolution();

            var l1 = AddTwoNumbersSolution.CreateListNodes(n1);
            var l2 = AddTwoNumbersSolution.CreateListNodes(n2);

            var lResult = addTwoNumbers.AddTwoNumbers(l1, l2);


            var result = AddTwoNumbersSolution.GetAllNumbersListNode(lResult, new List <int>());

            result.Should().Be(mustBe);
        }
コード例 #13
0
        public void Add_Skewed_Length_Arrays()
        {
            var l1 = new ListNode(1)
            {
                next = new ListNode(9)
            };
            var l2       = new ListNode(5);
            var expected = new ListNode(6)
            {
                next = new ListNode(9)
            };
            var sut    = new AddTwoNumbersSolution();
            var actual = sut.AddTwoNumbers(l1, l2);

            LinkedListTestHelper(expected, actual);
        }
コード例 #14
0
        public void TestAddTwoNumbers2()
        {
            var l1b = new ListNode(8);
            var l1a = new ListNode(1)
            {
                next = l1b
            };

            var l2a = new ListNode(0);

            var resultA = AddTwoNumbersSolution.AddTwoNumbers(l1a, l2a);
            var resultB = resultA.next;

            var resultString = string.Concat(resultB.val, resultA.val);

            Assert.Equal("81", resultString);
        }
コード例 #15
0
        public void Add_Multiple_Carryover()
        {
            var l1 = new ListNode(1);
            var l2 = new ListNode(9)
            {
                next = new ListNode(9)
            };
            var expected = new ListNode(0)
            {
                next = new ListNode(0)
                {
                    next = new ListNode(1)
                }
            };
            var sut    = new AddTwoNumbersSolution();
            var actual = sut.AddTwoNumbers(l1, l2);

            LinkedListTestHelper(expected, actual);
        }
コード例 #16
0
        public void TestAddTwoNumbers4()
        {
            var l1a = new ListNode(9);

            var l2b = new ListNode(9);
            var l2a = new ListNode(5)
            {
                next = l2b
            };


            var resultA = AddTwoNumbersSolution.AddTwoNumbers(l1a, l2a);
            var resultB = resultA.next;
            var resultC = resultB.next;

            var resultString = string.Concat(resultC.val, resultB.val, resultA.val);

            Assert.Equal("104", resultString);
        }
コード例 #17
0
        public void Common_Test()
        {
            // Arrange
            var solution = new AddTwoNumbersSolution();
            var expected = new ListNode(7)
            {
                next = new ListNode(0)
                {
                    next = new ListNode(8)
                    {
                        next = new ListNode(6)
                    }
                }
            };
            //act
            var result = solution.AddTwoNumbers(new ListNode(2)
            {
                next = new ListNode(4)
                {
                    next = new ListNode(3)
                }
            },
                                                new ListNode(5)
            {
                next = new ListNode(6)
                {
                    next = new ListNode(4)
                    {
                        next = new ListNode(6)
                    }
                }
            });

            //Assert
            while (result != null || expected != null)
            {
                Assert.Equal(expected.val, result.val);

                result   = result.next;
                expected = expected.next;
            }
        }
コード例 #18
0
        public void test_returnsSumLinkedList()
        {
            var l1 = new ListNode(2)
            {
                next = new ListNode(4)
                {
                    next = new ListNode(3)
                }
            };
            var l2 = new ListNode(5)
            {
                next = new ListNode(6)
                {
                    next = new ListNode(4)
                }
            };

            var target = new AddTwoNumbersSolution();
            var actual = target.AddTwoNumbers(l1, l2);
        }
コード例 #19
0
        public void AddTwoListWithNullValue()
        {
            // Given
            AddTwoNumbersSolution.ListNode listNode1 = new AddTwoNumbersSolution.ListNode(2);
            AddTwoNumbersSolution.ListNode nextNode1 = new AddTwoNumbersSolution.ListNode(4);
            listNode1.next = nextNode1;
            AddTwoNumbersSolution.ListNode nextNode2 = new AddTwoNumbersSolution.ListNode(3);
            nextNode1.next = nextNode2;

            AddTwoNumbersSolution.ListNode listNode2  = new AddTwoNumbersSolution.ListNode(5);
            AddTwoNumbersSolution.ListNode nextNode21 = new AddTwoNumbersSolution.ListNode(6);
            listNode2.next = nextNode21;
            AddTwoNumbersSolution.ListNode nextNode22 = new AddTwoNumbersSolution.ListNode(4);
            nextNode21.next = nextNode22;

            // When
            AddTwoNumbersSolution add = new AddTwoNumbersSolution();
            var result = add.AddTwoNumbers(listNode1, listNode2);

            // Then
            Assert.AreEqual(7, result.val);
            Assert.AreEqual(0, result.next.val);
            Assert.AreEqual(8, result.next.next.val);
        }
コード例 #20
0
 public void Setup()
 {
     solution = new AddTwoNumbersSolution();
 }
コード例 #21
0
 public void Initialize()
 {
     _solution = new AddTwoNumbersSolution();
 }