Skip to content

Commit 7a93797

Browse files
committed
Simplified NSCharacterSet unit tests
1 parent 0526191 commit 7a93797

File tree

1 file changed

+21
-67
lines changed

1 file changed

+21
-67
lines changed

TestFoundation/TestNSCharacterSet.swift

Lines changed: 21 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -15,9 +15,9 @@ import SwiftFoundation
1515
import SwiftXCTest
1616
#endif
1717

18-
private struct Box {
19-
fileprivate let ns: NSCharacterSet
20-
fileprivate let swift: CharacterSet
18+
private struct Box: Equatable {
19+
private let ns: NSCharacterSet
20+
private let swift: CharacterSet
2121

2222
private init(ns: NSCharacterSet, swift: CharacterSet) {
2323
self.ns = ns
@@ -38,68 +38,22 @@ private struct Box {
3838
return Box(ns: NSCharacterSet.decimalDigits._bridgeToObjectiveC(),
3939
swift: CharacterSet.decimalDigits)
4040
}
41-
}
42-
43-
private func assertEqual(_ lhs: Box,
44-
_ rhs: Box,
45-
_ message: @autoclosure () -> String = "",
46-
file: StaticString = #file,
47-
line: UInt = #line) {
48-
49-
assert(equal: true, lhs, rhs, message, file: file, line: line)
50-
}
51-
52-
private func assertNotEqual(_ lhs: Box,
53-
_ rhs: Box,
54-
_ message: @autoclosure () -> String = "",
55-
file: StaticString = #file,
56-
line: UInt = #line) {
57-
58-
assert(equal: false, lhs, rhs, message, file: file, line: line)
59-
}
6041

61-
private func assert<T: Equatable>(equal: Bool,
62-
_ lhs: T,
63-
_ rhs: T,
64-
_ message: @autoclosure () -> String = "",
65-
file: StaticString = #file,
66-
line: UInt = #line) {
67-
68-
if equal {
69-
XCTAssertEqual(lhs, rhs, message, file: file, line: line)
70-
}
71-
else {
72-
XCTAssertNotEqual(lhs, rhs, message, file: file, line: line)
73-
}
74-
}
42+
// MARK: Equatable
7543

76-
private func assert(equal: Bool,
77-
_ lhs: Box,
78-
_ rhs: Box,
79-
_ message: @autoclosure () -> String = "",
80-
file: StaticString = #file,
81-
line: UInt = #line) {
82-
83-
for pair in [(lhs, rhs), (rhs, lhs)] {
84-
assert(equal: equal, pair.0.ns, pair.1.ns, message, file: file, line: line)
85-
assert(equal: equal, pair.0.swift, pair.1.swift, message, file: file, line: line)
86-
87-
assert(equal: equal,
88-
pair.0.ns._bridgeToSwift(),
89-
pair.1.ns._bridgeToSwift(),
90-
message,
91-
file: file,
92-
line: line)
93-
94-
assert(equal: equal,
95-
pair.0.swift._bridgeToObjectiveC(),
96-
pair.1.swift._bridgeToObjectiveC(),
97-
message,
98-
file: file,
99-
line: line)
100-
101-
XCTAssertTrue(pair.0.ns.isEqual(pair.1.ns) == equal, message, file: file, line: line)
102-
XCTAssertTrue(pair.0.ns.isEqual(pair.1.swift) == equal, message, file: file, line: line)
44+
static func ==(lhs: Box, rhs: Box) -> Bool {
45+
return lhs.ns == rhs.ns
46+
&& lhs.swift == rhs.swift
47+
&& lhs.ns._bridgeToSwift() == rhs.ns._bridgeToSwift()
48+
&& lhs.swift._bridgeToObjectiveC() == rhs.swift._bridgeToObjectiveC()
49+
&& lhs.ns.isEqual(rhs.ns)
50+
&& lhs.ns.isEqual(rhs.swift)
51+
&& lhs.ns.isEqual(rhs.ns._bridgeToSwift())
52+
&& lhs.ns.isEqual(rhs.swift._bridgeToObjectiveC())
53+
&& lhs.swift._bridgeToObjectiveC().isEqual(rhs.ns)
54+
&& lhs.swift._bridgeToObjectiveC().isEqual(rhs.swift)
55+
&& lhs.swift._bridgeToObjectiveC().isEqual(rhs.ns._bridgeToSwift())
56+
&& lhs.swift._bridgeToObjectiveC().isEqual(rhs.swift._bridgeToObjectiveC())
10357
}
10458
}
10559

@@ -389,14 +343,14 @@ class TestNSCharacterSet : XCTestCase {
389343
]
390344

391345
for pair in equalPairs {
392-
assertEqual(Box(charactersIn: pair.0), Box(charactersIn: pair.1))
346+
XCTAssertEqual(Box(charactersIn: pair.0), Box(charactersIn: pair.1))
393347
}
394-
assertEqual(Box.alphanumerics, Box.alphanumerics)
348+
XCTAssertEqual(Box.alphanumerics, Box.alphanumerics)
395349

396350
for pair in notEqualPairs {
397-
assertNotEqual(Box(charactersIn: pair.0), Box(charactersIn: pair.1))
351+
XCTAssertNotEqual(Box(charactersIn: pair.0), Box(charactersIn: pair.1))
398352
}
399-
assertNotEqual(Box.alphanumerics, Box.decimalDigits)
353+
XCTAssertNotEqual(Box.alphanumerics, Box.decimalDigits)
400354
}
401355

402356
}

0 commit comments

Comments
 (0)