Skip to content

Commit 7828da4

Browse files
authored
Continue to move FoundationInternationalization tests to swift-testing (#1391)
* Convert CalendarRecurrenceRule tests * Convert date tests * Convert predicate tests * Convert sort descriptor tests * Convert Locale tests * Convert Calendar tests * Convert formatting tests * Ensure current calendar is reset after mutating current locale * Fix build failures * Fix test failures
1 parent 45ba668 commit 7828da4

17 files changed

+2246
-2300
lines changed

Tests/FoundationInternationalizationTests/CalendarRecurrenceRuleTests.swift

Lines changed: 32 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -10,9 +10,7 @@
1010
//
1111
//===----------------------------------------------------------------------===//
1212

13-
#if canImport(TestSupport)
14-
import TestSupport
15-
#endif
13+
import Testing
1614

1715
#if FOUNDATION_FRAMEWORK
1816
@testable import Foundation
@@ -21,15 +19,16 @@ import TestSupport
2119
@testable import FoundationEssentials
2220
#endif // FOUNDATION_FRAMEWORK
2321

24-
final class CalendarRecurrenceRuleTests: XCTestCase {
22+
@Suite("Calendar RecurrenceRule")
23+
private struct CalendarRecurrenceRuleTests {
2524
/// A Gregorian calendar with a time zone set to California
2625
var gregorian: Calendar = {
2726
var gregorian = Calendar(identifier: .gregorian)
2827
gregorian.timeZone = .init(identifier: "US/Pacific")!
2928
return gregorian
3029
}()
3130

32-
func testYearlyRecurrenceInLunarCalendar() {
31+
@Test func yearlyRecurrenceInLunarCalendar() {
3332
// Find the first day of the lunar new year
3433
let start = Date(timeIntervalSince1970: 1726876800.0) // 2024-09-21T00:00:00-0000
3534
let end = Date(timeIntervalSince1970: 1855699200.0) // 2028-10-21T00:00:00-0000
@@ -50,10 +49,10 @@ final class CalendarRecurrenceRuleTests: XCTestCase {
5049
Date(timeIntervalSince1970: 1832508000.0), // 2028-01-26T14:00:00-0000
5150
]
5251

53-
XCTAssertEqual(results, expectedResults)
52+
#expect(results == expectedResults)
5453
}
5554

56-
func testExpandToLeapMonths() {
55+
@Test func expandToLeapMonths() {
5756
var lunarCalendar = Calendar(identifier: .chinese)
5857
lunarCalendar.timeZone = .gmt
5958

@@ -64,14 +63,14 @@ final class CalendarRecurrenceRuleTests: XCTestCase {
6463
rule.daysOfTheMonth = [1]
6564
var sequence = rule.recurrences(of: start).makeIterator()
6665

67-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 1753401600.0)) // 2025-07-25T00:00:00-0000 (Sixth leap month)
68-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 1786579200.0)) // 2026-08-13T00:00:00-0000 (Seventh month)
69-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 1817164800.0)) // 2027-08-02T00:00:00-0000 (Seventh month)
70-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 1850342400.0)) // 2028-08-20T00:00:00-0000 (Seventh month)
71-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 1881014400.0)) // 2029-08-10T00:00:00-0000 (Seventh month)
66+
#expect(sequence.next() == Date(timeIntervalSince1970: 1753401600.0)) // 2025-07-25T00:00:00-0000 (Sixth leap month)
67+
#expect(sequence.next() == Date(timeIntervalSince1970: 1786579200.0)) // 2026-08-13T00:00:00-0000 (Seventh month)
68+
#expect(sequence.next() == Date(timeIntervalSince1970: 1817164800.0)) // 2027-08-02T00:00:00-0000 (Seventh month)
69+
#expect(sequence.next() == Date(timeIntervalSince1970: 1850342400.0)) // 2028-08-20T00:00:00-0000 (Seventh month)
70+
#expect(sequence.next() == Date(timeIntervalSince1970: 1881014400.0)) // 2029-08-10T00:00:00-0000 (Seventh month)
7271
}
7372

74-
func testStartFromLeapMonth() {
73+
@Test func startFromLeapMonth() {
7574
var lunarCalendar = Calendar(identifier: .chinese)
7675
lunarCalendar.timeZone = .gmt
7776

@@ -82,29 +81,29 @@ final class CalendarRecurrenceRuleTests: XCTestCase {
8281
let rule = Calendar.RecurrenceRule(calendar: lunarCalendar, frequency: .yearly, matchingPolicy: .nextTimePreservingSmallerComponents)
8382
var sequence = rule.recurrences(of: start).makeIterator()
8483

85-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 1753401600.0)) // 2025-07-25T00:00:00-0000 (Sixth leap month)
86-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 1786579200.0)) // 2026-08-13T00:00:00-0000 (Seventh month)
87-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 1817164800.0)) // 2027-08-02T00:00:00-0000 (Seventh month)
88-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 1850342400.0)) // 2028-08-20T00:00:00-0000 (Seventh month)
89-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 1881014400.0)) // 2029-08-10T00:00:00-0000 (Seventh month)
90-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 1911600000.0)) // 2030-07-30T00:00:00-0000 (Seventh month)
91-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 1944777600.0)) // 2031-08-18T00:00:00-0000 (Seventh month)
92-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 1975363200.0)) // 2032-08-06T00:00:00-0000 (Seventh month)
93-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 2005948800.0)) // 2033-07-26T00:00:00-0000 (Seventh month)
94-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 2039126400.0)) // 2034-08-14T00:00:00-0000 (Seventh month)
95-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 2069798400.0)) // 2035-08-04T00:00:00-0000 (Seventh month)
96-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 2100384000.0)) // 2036-07-23T00:00:00-0000 (Sixth leap month)
97-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 2133561600.0)) // 2037-08-11T00:00:00-0000 (Seventh month)
98-
XCTAssertEqual(sequence.next(), Date(timeIntervalSince1970: 2164233600.0)) // 2038-08-01T00:00:00-0000 (Seventh month)
84+
#expect(sequence.next() == Date(timeIntervalSince1970: 1753401600.0)) // 2025-07-25T00:00:00-0000 (Sixth leap month)
85+
#expect(sequence.next() == Date(timeIntervalSince1970: 1786579200.0)) // 2026-08-13T00:00:00-0000 (Seventh month)
86+
#expect(sequence.next() == Date(timeIntervalSince1970: 1817164800.0)) // 2027-08-02T00:00:00-0000 (Seventh month)
87+
#expect(sequence.next() == Date(timeIntervalSince1970: 1850342400.0)) // 2028-08-20T00:00:00-0000 (Seventh month)
88+
#expect(sequence.next() == Date(timeIntervalSince1970: 1881014400.0)) // 2029-08-10T00:00:00-0000 (Seventh month)
89+
#expect(sequence.next() == Date(timeIntervalSince1970: 1911600000.0)) // 2030-07-30T00:00:00-0000 (Seventh month)
90+
#expect(sequence.next() == Date(timeIntervalSince1970: 1944777600.0)) // 2031-08-18T00:00:00-0000 (Seventh month)
91+
#expect(sequence.next() == Date(timeIntervalSince1970: 1975363200.0)) // 2032-08-06T00:00:00-0000 (Seventh month)
92+
#expect(sequence.next() == Date(timeIntervalSince1970: 2005948800.0)) // 2033-07-26T00:00:00-0000 (Seventh month)
93+
#expect(sequence.next() == Date(timeIntervalSince1970: 2039126400.0)) // 2034-08-14T00:00:00-0000 (Seventh month)
94+
#expect(sequence.next() == Date(timeIntervalSince1970: 2069798400.0)) // 2035-08-04T00:00:00-0000 (Seventh month)
95+
#expect(sequence.next() == Date(timeIntervalSince1970: 2100384000.0)) // 2036-07-23T00:00:00-0000 (Sixth leap month)
96+
#expect(sequence.next() == Date(timeIntervalSince1970: 2133561600.0)) // 2037-08-11T00:00:00-0000 (Seventh month)
97+
#expect(sequence.next() == Date(timeIntervalSince1970: 2164233600.0)) // 2038-08-01T00:00:00-0000 (Seventh month)
9998

10099
// A strict recurrence only matches in years with leap months
101100
let strictRule = Calendar.RecurrenceRule(calendar: lunarCalendar, frequency: .yearly, matchingPolicy: .strict)
102101
var strictSequence = strictRule.recurrences(of: start).makeIterator()
103-
XCTAssertEqual(strictSequence.next(), Date(timeIntervalSince1970: 1753401600.0)) // 2025-07-25T00:00:00-0000 (Sixth leap month)
104-
XCTAssertEqual(strictSequence.next(), Date(timeIntervalSince1970: 2100384000.0)) // 2036-07-23T00:00:00-0000 (Sixth leap month)
102+
#expect(strictSequence.next() == Date(timeIntervalSince1970: 1753401600.0)) // 2025-07-25T00:00:00-0000 (Sixth leap month)
103+
#expect(strictSequence.next() == Date(timeIntervalSince1970: 2100384000.0)) // 2036-07-23T00:00:00-0000 (Sixth leap month)
105104
}
106105

107-
func testDaylightSavingsRepeatedTimePolicyFirst() {
106+
@Test func daylightSavingsRepeatedTimePolicyFirst() {
108107
let start = Date(timeIntervalSince1970: 1730535600.0) // 2024-11-02T01:20:00-0700
109108
var rule = Calendar.RecurrenceRule(calendar: gregorian, frequency: .daily)
110109
rule.repeatedTimePolicy = .first
@@ -117,10 +116,10 @@ final class CalendarRecurrenceRuleTests: XCTestCase {
117116
/// 02:00 PDT)
118117
Date(timeIntervalSince1970: 1730712000.0), // 2024-11-04T01:20:00-0800
119118
]
120-
XCTAssertEqual(results, expectedResults)
119+
#expect(results == expectedResults)
121120
}
122121

123-
func testDaylightSavingsRepeatedTimePolicyLast() {
122+
@Test func daylightSavingsRepeatedTimePolicyLast() {
124123
let start = Date(timeIntervalSince1970: 1730535600.0) // 2024-11-02T01:20:00-0700
125124
var rule = Calendar.RecurrenceRule(calendar: gregorian, frequency: .daily)
126125
rule.repeatedTimePolicy = .last
@@ -133,6 +132,6 @@ final class CalendarRecurrenceRuleTests: XCTestCase {
133132
Date(timeIntervalSince1970: 1730625600.0), // 2024-11-03T01:20:00-0800
134133
Date(timeIntervalSince1970: 1730712000.0), // 2024-11-04T01:20:00-0800
135134
]
136-
XCTAssertEqual(results, expectedResults)
135+
#expect(results == expectedResults)
137136
}
138137
}

0 commit comments

Comments
 (0)