forked from Quick/Nimble
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathBeCloseToTest.swift
142 lines (116 loc) · 6.33 KB
/
BeCloseToTest.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
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
import Foundation
import XCTest
import Nimble
final class BeCloseToTest: XCTestCase {
func testBeCloseTo() {
expect(1.2).to(beCloseTo(1.2001))
expect(1.2 as CDouble).to(beCloseTo(1.2001))
expect(1.2 as Float).to(beCloseTo(1.2001))
failsWithErrorMessage("expected to not be close to <1.2001> (within 0.0001), got <1.2>") {
expect(1.2).toNot(beCloseTo(1.2001))
}
}
func testBeCloseToWithin() {
expect(1.2).to(beCloseTo(9.300, within: 10))
failsWithErrorMessage("expected to not be close to <1.2001> (within 1.1), got <1.2>") {
expect(1.2).toNot(beCloseTo(1.2001, within: 1.1))
}
}
func testBeCloseToWithNSNumber() {
expect(1.2 as NSNumber).to(beCloseTo(9.300, within: 10))
expect(1.2 as NSNumber).to(beCloseTo(9.300 as NSNumber, within: 10))
expect(1.2).to(beCloseTo(9.300 as NSNumber, within: 10))
failsWithErrorMessage("expected to not be close to <1.2001> (within 1.1), got <1.2>") {
expect(1.2 as NSNumber).toNot(beCloseTo(1.2001, within: 1.1))
}
}
func testBeCloseToWithCGFloat() {
expect(CGFloat(1.2)).to(beCloseTo(1.2001))
expect(CGFloat(1.2)).to(beCloseTo(CGFloat(1.2001)))
failsWithErrorMessage("expected to not be close to <1.2001> (within 1.1), got <1.2>") {
expect(CGFloat(1.2)).toNot(beCloseTo(1.2001, within: 1.1))
}
}
func testBeCloseToWithDate() {
expect(Date(dateTimeString: "2015-08-26 11:43:00")).to(beCloseTo(Date(dateTimeString: "2015-08-26 11:43:05"), within: 10))
failsWithErrorMessage("expected to not be close to <2015-08-26 11:43:00.0050> (within 0.006), got <2015-08-26 11:43:00.0000>") {
let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005)
expect(Date(dateTimeString: "2015-08-26 11:43:00")).toNot(beCloseTo(expectedDate, within: 0.006))
}
}
func testBeCloseToWithNSDate() {
expect(NSDate(dateTimeString: "2015-08-26 11:43:00")).to(beCloseTo(NSDate(dateTimeString: "2015-08-26 11:43:05"), within: 10))
failsWithErrorMessage("expected to not be close to <2015-08-26 11:43:00.0050> (within 0.006), got <2015-08-26 11:43:00.0000>") {
let expectedDate = NSDate(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005)
expect(NSDate(dateTimeString: "2015-08-26 11:43:00")).toNot(beCloseTo(expectedDate, within: 0.006))
}
}
func testBeCloseToOperator() {
expect(1.2) ≈ 1.2001
expect(1.2 as CDouble) ≈ 1.2001
failsWithErrorMessage("expected to be close to <1.2002> (within 0.0001), got <1.2>") {
expect(1.2) ≈ 1.2002
}
}
func testBeCloseToWithinOperator() {
expect(1.2) ≈ (9.300, 10)
expect(1.2) == (9.300, 10)
failsWithErrorMessage("expected to be close to <1.1> (within 0.1), got <1.3>") {
expect(1.3) ≈ (1.1, 0.1)
}
failsWithErrorMessage("expected to be close to <1.1> (within 0.1), got <1.3>") {
expect(1.3) == (1.1, 0.1)
}
}
func testPlusMinusOperator() {
expect(1.2) ≈ 9.300 ± 10
expect(1.2) == 9.300 ± 10
failsWithErrorMessage("expected to be close to <1.1> (within 0.1), got <1.3>") {
expect(1.3) ≈ 1.1 ± 0.1
}
failsWithErrorMessage("expected to be close to <1.1> (within 0.1), got <1.3>") {
expect(1.3) == 1.1 ± 0.1
}
}
func testBeCloseToOperatorWithDate() {
expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ Date(dateTimeString: "2015-08-26 11:43:00")
failsWithErrorMessage("expected to be close to <2015-08-26 11:43:00.0050> (within 0.0001), got <2015-08-26 11:43:00.0000>") {
let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005)
expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ expectedDate
}
}
func testBeCloseToWithinOperatorWithDate() {
expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ (Date(dateTimeString: "2015-08-26 11:43:05"), 10)
expect(Date(dateTimeString: "2015-08-26 11:43:00")) == (Date(dateTimeString: "2015-08-26 11:43:05"), 10)
failsWithErrorMessage("expected to be close to <2015-08-26 11:43:00.0050> (within 0.004), got <2015-08-26 11:43:00.0000>") {
let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005)
expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ (expectedDate, 0.004)
}
failsWithErrorMessage("expected to be close to <2015-08-26 11:43:00.0050> (within 0.004), got <2015-08-26 11:43:00.0000>") {
let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005)
expect(Date(dateTimeString: "2015-08-26 11:43:00")) == (expectedDate, 0.004)
}
}
func testPlusMinusOperatorWithDate() {
expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ Date(dateTimeString: "2015-08-26 11:43:05") ± 10
expect(Date(dateTimeString: "2015-08-26 11:43:00")) == Date(dateTimeString: "2015-08-26 11:43:05") ± 10
failsWithErrorMessage("expected to be close to <2015-08-26 11:43:00.0050> (within 0.004), got <2015-08-26 11:43:00.0000>") {
let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005)
expect(Date(dateTimeString: "2015-08-26 11:43:00")) ≈ expectedDate ± 0.004
}
failsWithErrorMessage("expected to be close to <2015-08-26 11:43:00.0050> (within 0.004), got <2015-08-26 11:43:00.0000>") {
let expectedDate = Date(dateTimeString: "2015-08-26 11:43:00").addingTimeInterval(0.005)
expect(Date(dateTimeString: "2015-08-26 11:43:00")) == expectedDate ± 0.004
}
}
func testBeCloseToArray() {
expect([0.0, 1.1, 2.2]) ≈ [0.0001, 1.1001, 2.2001]
expect([0.0, 1.1, 2.2]).to(beCloseTo([0.1, 1.2, 2.3], within: 0.1))
failsWithErrorMessage("expected to be close to <[0.1, 1.1]> (each within 0.0001), got <[0.1, 1.2]>") {
expect([0.1, 1.2]) ≈ [0.1, 1.1]
}
failsWithErrorMessage("expected to be close to <[0.3, 1.3]> (each within 0.1), got <[0.1, 1.2]>") {
expect([0.1, 1.2]).to(beCloseTo([0.3, 1.3], within: 0.1))
}
}
}