@@ -79,14 +79,14 @@ class TestDateIntervalFormatter: XCTestCase {
79
79
80
80
let result = formatter. string ( from: older, to: newer)
81
81
result. assertContainsInOrder ( " January 1 " , " 2001 " , " 12:00:00 AM " , " Greenwich Mean Time " ,
82
- " February 4 " , " 2001 " , " 5:20:00 AM " , " Greenwich Mean Time " )
82
+ " February 4 " , " 2001 " , " 5:20:00 PM " , " Greenwich Mean Time " )
83
83
}
84
84
85
85
func testStringFromDateToDateAcrossThreeBillionSecondsReversed( ) {
86
86
let older = Date ( timeIntervalSinceReferenceDate: 0 )
87
87
let newer = Date ( timeIntervalSinceReferenceDate: 3e9 )
88
88
89
- let result = formatter. string ( from: older , to: newer )
89
+ let result = formatter. string ( from: newer , to: older )
90
90
result. assertContainsInOrder ( " January 25 " , " 2096 " , " 5:20:00 AM " , " Greenwich Mean Time " ,
91
91
" January 1 " , " 2001 " , " 12:00:00 AM " , " Greenwich Mean Time " )
92
92
}
@@ -95,25 +95,28 @@ class TestDateIntervalFormatter: XCTestCase {
95
95
let older = Date ( timeIntervalSinceReferenceDate: 0 )
96
96
let newer = Date ( timeIntervalSinceReferenceDate: 3e6 )
97
97
98
- let result = formatter. string ( from: older , to: newer )
99
- result. assertContainsInOrder ( " February 4 " , " 2001 " , " 5:20:00 AM " , " Greenwich Mean Time " ,
98
+ let result = formatter. string ( from: newer , to: older )
99
+ result. assertContainsInOrder ( " February 4 " , " 2001 " , " 5:20:00 PM " , " Greenwich Mean Time " ,
100
100
" January 1 " , " 2001 " , " 12:00:00 AM " , " Greenwich Mean Time " )
101
101
}
102
102
103
- func testStringFromDateToSameDate( ) {
103
+ func testStringFromDateToSameDate( ) throws {
104
104
let date = Date ( timeIntervalSinceReferenceDate: 3e6 )
105
105
106
106
// For a range from a date to itself, we represent the date only once, with no interdate separator.
107
107
let result = formatter. string ( from: date, to: date)
108
- result. assertContainsInOrder ( requiresLastToBeAtEnd: true , " February 4 " , " 2001 " , " 5:20:00 AM " , " Greenwich Mean Time " )
108
+ result. assertContainsInOrder ( requiresLastToBeAtEnd: true , " February 4 " , " 2001 " , " 5:20:00 PM " , " Greenwich Mean Time " )
109
+
110
+ let firstFebruary = try result. range ( of: " February " ) . unwrapped ( )
111
+ XCTAssertNil ( result [ firstFebruary. upperBound... ] . range ( of: " February " ) ) // February appears only once.
109
112
}
110
113
111
114
func testStringFromDateIntervalAcrossThreeMillionSeconds( ) throws {
112
115
let interval = DateInterval ( start: Date ( timeIntervalSinceReferenceDate: 0 ) , duration: 3e6 )
113
116
114
117
let result = try formatter. string ( from: interval) . unwrapped ( )
115
118
result. assertContainsInOrder ( " January 1 " , " 2001 " , " 12:00:00 AM " , " Greenwich Mean Time " ,
116
- " February 4 " , " 2001 " , " 5:20:00 AM " , " Greenwich Mean Time " )
119
+ " February 4 " , " 2001 " , " 5:20:00 PM " , " Greenwich Mean Time " )
117
120
}
118
121
119
122
func testStringFromDateToDateAcrossOneWeek( ) {
@@ -190,7 +193,7 @@ class TestDateIntervalFormatter: XCTestCase {
190
193
let newer = Date ( timeIntervalSinceReferenceDate: 3600 * 5 )
191
194
192
195
let result = formatter. string ( from: older, to: newer)
193
- result. assertContainsInOrder ( requiresLastToBeAtEnd: true , " January " , " 1 " , " 2001 " , " 12:00:00 AM " , " 5:00:00 AM " )
196
+ result. assertContainsInOrder ( requiresLastToBeAtEnd: true , " January " , " 1 " , " 2001 " , " 12:00:00 AM " , " 5:00:00 AM " , " GMT " )
194
197
195
198
let firstJanuary = try result. range ( of: " January " ) . unwrapped ( )
196
199
XCTAssertNil ( result [ firstJanuary. upperBound... ] . range ( of: " January " ) ) // January appears only once.
@@ -200,10 +203,10 @@ class TestDateIntervalFormatter: XCTestCase {
200
203
let older = Date ( timeIntervalSinceReferenceDate: 3600 * 22 )
201
204
let newer = Date ( timeIntervalSinceReferenceDate: 3600 * 27 )
202
205
203
- XCTAssertEqual ( formatter. string ( from: older, to: newer) ,
204
- " January 1, 2001, 10:00:00 PM Greenwich Mean Time – January 2, 2001, 3:00:00 AM Greenwich Mean Time " )
205
206
let result = formatter. string ( from: older, to: newer)
206
- result. assertContainsInOrder ( requiresLastToBeAtEnd: true , " January " , " 1 " , " 2001 " , " 10:00:00 AM " , " 5:00:00 AM " )
207
+ result. assertContainsInOrder ( requiresLastToBeAtEnd: true ,
208
+ " January " , " 1 " , " 2001 " , " 10:00:00 PM " , " Greenwich Mean Time " ,
209
+ " January " , " 2 " , " 2001 " , " 3:00:00 AM " , " Greenwich Mean Time " )
207
210
}
208
211
}
209
212
@@ -212,7 +215,7 @@ class TestDateIntervalFormatter: XCTestCase {
212
215
let newer = Date ( timeIntervalSinceReferenceDate: 3600 * 18 )
213
216
214
217
let result = formatter. string ( from: older, to: newer)
215
- result. assertContainsInOrder ( requiresLastToBeAtEnd: true , " January " , " 1 " , " 2001 " , " 12:00:00 AM " , " 6:00:00 PM " )
218
+ result. assertContainsInOrder ( requiresLastToBeAtEnd: true , " January " , " 1 " , " 2001 " , " 12:00:00 AM " , " 6:00:00 PM " , " GMT " )
216
219
217
220
let firstJanuary = try result. range ( of: " January " ) . unwrapped ( )
218
221
XCTAssertNil ( result [ firstJanuary. upperBound... ] . range ( of: " January " ) ) // January appears only once.
0 commit comments