-
Notifications
You must be signed in to change notification settings - Fork 215
/
Copy pathMedium_002_Add_Two_Numbers_Test.swift
114 lines (99 loc) · 3.09 KB
/
Medium_002_Add_Two_Numbers_Test.swift
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
//
// Medium_002_Add_Two_Numbers_Test.swift
// Solutions
//
// Created by Wu, Di on 3/26/15.
// Copyright (c) 2015 diwu. All rights reserved.
//
import XCTest
class Medium_002_Add_Two_Numbers_Test: XCTestCase, SolutionsTestCase {
func test_001() {
typealias ListNode = Medium_002_Add_Two_Numbers.ListNode
// Test Case
// 2 -> 4 -> 5
// 5 -> 6 -> 4
// Result:
// 7 -> 0 -> 0 -> 1
let dummy1: ListNode = ListNode()
let dummy2: ListNode = ListNode()
var tmp: ListNode? = ListNode(nodeValue: 2, nodeNext: nil)
dummy1.next = tmp
if let n = tmp {
n.next = ListNode(nodeValue: 4, nodeNext: nil)
tmp = n.next
}
if let n = tmp {
n.next = ListNode(nodeValue: 5, nodeNext: nil)
tmp = n.next
}
tmp = ListNode(nodeValue: 5, nodeNext: nil)
dummy2.next = tmp
if let n = tmp {
n.next = ListNode(nodeValue: 6, nodeNext: nil)
tmp = n.next
}
if let n = tmp {
n.next = ListNode(nodeValue: 4, nodeNext: nil)
tmp = n.next
}
var result: ListNode? = Medium_002_Add_Two_Numbers.addNumbers(dummy1.next, node2: dummy2.next)
var numericalValue: Int = 0
var base: Int = 0
while result != nil {
if let n = result {
numericalValue += n.value * Int(pow(Double(10), Double(base)))
result = result?.next
base += 1
}
}
XCTAssert(numericalValue == 1007, "Medium_002_Add_Two_Numbers_Test #1")
}
func test_001_objc() {
typealias ListNode = ObjC_Medium_002_Add_Two_Numbers_Node;
// Test Case
// 2 -> 4 -> 5
// 5 -> 6 -> 4
// Result:
// 7 -> 0 -> 0 -> 1
let dummy1: ListNode = ListNode()
let dummy2: ListNode = ListNode()
var tmp: ListNode? = ListNode.init(2, next: nil);
dummy1.next = tmp
if let n = tmp {
n.next = ListNode.init(4, next: nil)
tmp = n.next
}
if let n = tmp {
n.next = ListNode.init(5, next: nil)
tmp = n.next
}
tmp = ListNode.init(5, next: nil)
dummy2.next = tmp
if let n = tmp {
n.next = ListNode.init(6, next: nil)
tmp = n.next
}
if let n = tmp {
n.next = ListNode.init(4, next: nil)
tmp = n.next
}
var result: ListNode? = ObjC_Medium_002_Add_Two_Numbers.add(dummy1.next, node2: dummy2.next)
var numericalValue: Int = 0
var base: Int = 0
while result != nil {
if let n = result {
numericalValue += n.value * Int(pow(Double(10), Double(base)))
result = result?.next
base += 1
}
}
XCTAssert(numericalValue == 1007, "Medium_002_Add_Two_Numbers_Test #2 - \(numericalValue)")
}
}
/*
// Test Case
// 2 -> 4 -> 5
// 5 -> 6 -> 4
// Result:
// 7 -> 0 -> 0 -> 1
*/