Skip to content

Commit 6b4f16f

Browse files
sangam14saiyam1814
authored andcommitted
Create add_two_numbers_test.go
1 parent 23da9a5 commit 6b4f16f

File tree

1 file changed

+60
-0
lines changed

1 file changed

+60
-0
lines changed
Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
package add_two_numbers
2+
3+
import (
4+
"testing"
5+
)
6+
7+
func TestAddTwoNumbers(t *testing.T) {
8+
left := [][]int{
9+
[]int{3, 2, 4},
10+
[]int{8, 7, 3, 1},
11+
[]int{8, 1},
12+
}
13+
right := [][]int{
14+
[]int{5, 8, 5},
15+
[]int{2, 1},
16+
[]int{1, 2},
17+
}
18+
results := [][]int{
19+
[]int{8, 0, 0, 1},
20+
[]int{0, 9, 3, 1},
21+
[]int{9, 3},
22+
}
23+
caseNum := 3
24+
for i := 0; i < caseNum; i++ {
25+
l, r := generateNodeList(left[i]), generateNodeList(right[i])
26+
if ret := addTwoNumbers(l, r); !equal(ret, generateNodeList(results[i])) {
27+
t.Fatalf("case %d fails: %v\n", i, ret.Val)
28+
}
29+
}
30+
}
31+
32+
func generateNodeList(list []int) *ListNode {
33+
if len(list) == 0 {
34+
return nil
35+
}
36+
head := new(ListNode)
37+
walk := head
38+
for index, val := range list {
39+
walk.Val = val
40+
if index != len(list)-1 {
41+
walk.Next = new(ListNode)
42+
walk = walk.Next
43+
}
44+
}
45+
return head
46+
}
47+
48+
func equal(left, right *ListNode) bool {
49+
tmp1, tmp2 := left, right
50+
for tmp1 != nil && tmp2 != nil {
51+
if tmp1.Val != tmp2.Val {
52+
return false
53+
}
54+
tmp1, tmp2 = tmp1.Next, tmp2.Next
55+
}
56+
if tmp1 != nil || tmp2 != nil {
57+
return false
58+
}
59+
return true
60+
}

0 commit comments

Comments
 (0)