File tree Expand file tree Collapse file tree 1 file changed +60
-0
lines changed Expand file tree Collapse file tree 1 file changed +60
-0
lines changed Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments