0001 http://swift.org/LICENSE.txthttp://swift.org/CONTRIBUTORS.txt
0013 private enum _XCTAssertion| XCTAssert.swift:63 | func failureDescription(assertion: _XCTAssertion) -> String { |
| XCTAssert.swift:84 | private func _XCTEvaluateAssertion(assertion: _XCTAssertion, @autoclosure message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__, @noescape expression: () throws -> _XCTAssertionResult) { |
{
0014 case Equal| XCTAssert.swift:31 | case .Equal: return "XCTAssertEqual" |
| XCTAssert.swift:163 | _XCTEvaluateAssertion(.Equal, message: message, file: file, line: line) { |
| XCTAssert.swift:174 | _XCTEvaluateAssertion(.Equal, message: message, file: file, line: line) { |
| XCTAssert.swift:185 | _XCTEvaluateAssertion(.Equal, message: message, file: file, line: line) { |
| XCTAssert.swift:196 | _XCTEvaluateAssertion(.Equal, message: message, file: file, line: line) { |
| XCTAssert.swift:207 | _XCTEvaluateAssertion(.Equal, message: message, file: file, line: line) { |
0015 case EqualWithAccuracy| XCTAssert.swift:32 | case .EqualWithAccuracy: return "XCTAssertEqualWithAccuracy" |
| XCTAssert.swift:218 | _XCTEvaluateAssertion(.EqualWithAccuracy, message: message, file: file, line: line) { |
0016 case GreaterThan| XCTAssert.swift:33 | case .GreaterThan: return "XCTAssertGreaterThan" |
| XCTAssert.swift:240 | _XCTEvaluateAssertion(.GreaterThan, message: message, file: file, line: line) { |
0017 case GreaterThanOrEqual| XCTAssert.swift:34 | case .GreaterThanOrEqual: return "XCTAssertGreaterThanOrEqual" |
| XCTAssert.swift:251 | _XCTEvaluateAssertion(.GreaterThanOrEqual, message: message, file: file, line: line) { |
0018 case LessThan| XCTAssert.swift:35 | case .LessThan: return "XCTAssertLessThan" |
| XCTAssert.swift:262 | _XCTEvaluateAssertion(.LessThan, message: message, file: file, line: line) { |
0019 case LessThanOrEqual| XCTAssert.swift:36 | case .LessThanOrEqual: return "XCTAssertLessThanOrEqual" |
| XCTAssert.swift:273 | _XCTEvaluateAssertion(.LessThanOrEqual, message: message, file: file, line: line) { |
0020 case NotEqual| XCTAssert.swift:37 | case .NotEqual: return "XCTAssertNotEqual" |
| XCTAssert.swift:295 | _XCTEvaluateAssertion(.NotEqual, message: message, file: file, line: line) { |
| XCTAssert.swift:306 | _XCTEvaluateAssertion(.NotEqual, message: message, file: file, line: line) { |
| XCTAssert.swift:317 | _XCTEvaluateAssertion(.NotEqual, message: message, file: file, line: line) { |
| XCTAssert.swift:328 | _XCTEvaluateAssertion(.NotEqual, message: message, file: file, line: line) { |
| XCTAssert.swift:339 | _XCTEvaluateAssertion(.NotEqual, message: message, file: file, line: line) { |
0021 case NotEqualWithAccuracy| XCTAssert.swift:38 | case .NotEqualWithAccuracy: return "XCTAssertNotEqualWithAccuracy" |
| XCTAssert.swift:350 | _XCTEvaluateAssertion(.NotEqualWithAccuracy, message: message, file: file, line: line) { |
0022 case Nil| XCTAssert.swift:39 | case .Nil: return "XCTAssertNil" |
| XCTAssert.swift:284 | _XCTEvaluateAssertion(.Nil, message: message, file: file, line: line) { |
| XCTAssert.swift:361 | _XCTEvaluateAssertion(.Nil, message: message, file: file, line: line) { |
0023 case NotNil| XCTAssert.swift:40 | case .NotNil: return "XCTAssertNotNil" |
0024 case True| XCTAssert.swift:41 | case .True: return "XCTAssertTrue" |
| XCTAssert.swift:372 | _XCTEvaluateAssertion(.True, message: message, file: file, line: line) { |
0025 case False| XCTAssert.swift:42 | case .False: return "XCTAssertFalse" |
| XCTAssert.swift:229 | _XCTEvaluateAssertion(.False, message: message, file: file, line: line) { |
0026 case Fail| XCTAssert.swift:44 | case .Fail: return nil |
| XCTAssert.swift:383 | _XCTEvaluateAssertion(.Fail, message: message, file: file, line: line) { |
0027 case ThrowsError| XCTAssert.swift:43 | case .ThrowsError: return "XCTAssertThrowsError" |
| XCTAssert.swift:389 | _XCTEvaluateAssertion(.ThrowsError, message: message, file: file, line: line) { |
0028
0029 var name| XCTAssert.swift:76 | if let name = assertion.name { |
: String? {
0030 switch(self) {
0031 case .Equal: return "XCTAssertEqual"
0032 case .EqualWithAccuracy: return "XCTAssertEqualWithAccuracy"
0033 case .GreaterThan: return "XCTAssertGreaterThan"
0034 case .GreaterThanOrEqual: return "XCTAssertGreaterThanOrEqual"
0035 case .LessThan: return "XCTAssertLessThan"
0036 case .LessThanOrEqual: return "XCTAssertLessThanOrEqual"
0037 case .NotEqual: return "XCTAssertNotEqual"
0038 case .NotEqualWithAccuracy: return "XCTAssertNotEqualWithAccuracy"
0039 case .Nil: return "XCTAssertNil"
0040 case .NotNil: return "XCTAssertNotNil"
0041 case .True: return "XCTAssertTrue"
0042 case .False: return "XCTAssertFalse"
0043 case .ThrowsError: return "XCTAssertThrowsError"
0044 case .Fail: return nil
0045 }
0046 }
0047 }
0048
0049 private enum _XCTAssertionResult| XCTAssert.swift:84 | private func _XCTEvaluateAssertion(assertion: _XCTAssertion, @autoclosure message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__, @noescape expression: () throws -> _XCTAssertionResult) { |
| XCTAssert.swift:85 | let result: _XCTAssertionResult |
{
0050 case Success| XCTAssert.swift:66 | case .Success: |
| XCTAssert.swift:93 | case .Success: |
| XCTAssert.swift:166 | return .Success |
| XCTAssert.swift:177 | return .Success |
| XCTAssert.swift:188 | return .Success |
| XCTAssert.swift:199 | return .Success |
| XCTAssert.swift:210 | return .Success |
| XCTAssert.swift:221 | return .Success |
| XCTAssert.swift:232 | return .Success |
| XCTAssert.swift:243 | return .Success |
| XCTAssert.swift:254 | return .Success |
| XCTAssert.swift:265 | return .Success |
| XCTAssert.swift:276 | return .Success |
| XCTAssert.swift:287 | return .Success |
| XCTAssert.swift:298 | return .Success |
| XCTAssert.swift:309 | return .Success |
| XCTAssert.swift:320 | return .Success |
| XCTAssert.swift:331 | return .Success |
| XCTAssert.swift:342 | return .Success |
| XCTAssert.swift:353 | return .Success |
| XCTAssert.swift:364 | return .Success |
| XCTAssert.swift:375 | return .Success |
| XCTAssert.swift:399 | return .Success |
0051 case ExpectedFailure| XCTAssert.swift:68 | case .ExpectedFailure(let details?): |
| XCTAssert.swift:70 | case .ExpectedFailure(_): |
| XCTAssert.swift:168 | return .ExpectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\")") |
| XCTAssert.swift:179 | return .ExpectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\")") |
| XCTAssert.swift:190 | return .ExpectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\")") |
| XCTAssert.swift:201 | return .ExpectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\")") |
| XCTAssert.swift:212 | return .ExpectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\")") |
| XCTAssert.swift:223 | return .ExpectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\") +/- (\"\(accuracy)\")") |
| XCTAssert.swift:234 | return .ExpectedFailure(nil) |
| XCTAssert.swift:245 | return .ExpectedFailure("(\"\(value1)\") is not greater than (\"\(value2)\")") |
| XCTAssert.swift:256 | return .ExpectedFailure("(\"\(value1)\") is less than (\"\(value2)\")") |
| XCTAssert.swift:267 | return .ExpectedFailure("(\"\(value1)\") is not less than (\"\(value2)\")") |
| XCTAssert.swift:278 | return .ExpectedFailure("(\"\(value1)\") is greater than (\"\(value2)\")") |
| XCTAssert.swift:289 | return .ExpectedFailure("\"\(value!)\"") |
| XCTAssert.swift:300 | return .ExpectedFailure("(\"\(value1)\") is equal to (\"\(value2)\")") |
| XCTAssert.swift:311 | return .ExpectedFailure("(\"\(value1)\") is equal to (\"\(value2)\")") |
| XCTAssert.swift:322 | return .ExpectedFailure("(\"\(value1)\") is equal to (\"\(value2)\")") |
| XCTAssert.swift:333 | return .ExpectedFailure("(\"\(value1)\") is equal to (\"\(value2)\")") |
| XCTAssert.swift:344 | return .ExpectedFailure("(\"\(value1)\") is equal to (\"\(value2)\")") |
| XCTAssert.swift:355 | return .ExpectedFailure("(\"\(value1)\") is equal to (\"\(value2)\") +/- (\"\(accuracy)\")") |
| XCTAssert.swift:366 | return .ExpectedFailure(nil) |
| XCTAssert.swift:377 | return .ExpectedFailure(nil) |
| XCTAssert.swift:384 | return .ExpectedFailure(nil) |
| XCTAssert.swift:401 | return .ExpectedFailure("did not throw error") |
(String?)
0052 case UnexpectedFailure| XCTAssert.swift:56 | case .UnexpectedFailure(_): |
| XCTAssert.swift:72 | case .UnexpectedFailure(let error): |
| XCTAssert.swift:89 | result = .UnexpectedFailure(error) |
(ErrorType)
0053
0054 var expected| XCTAssert.swift:98 | handler(XCTFailure(message: message(), failureDescription: result.failureDescription(assertion), expected: result.expected, file: file, line: line)) |
: Bool {
0055 switch (self) {
0056 case .UnexpectedFailure(_):
0057 return false
0058 default:
0059 return true
0060 }
0061 }
0062
0063 func failureDescription| XCTAssert.swift:98 | handler(XCTFailure(message: message(), failureDescription: result.failureDescription(assertion), expected: result.expected, file: file, line: line)) |
(assertion: _XCTAssertion) -> String {
0064 let explanation: String
0065 switch (self) {
0066 case .Success:
0067 explanation = "passed"
0068 case .ExpectedFailure(let details?):
0069 explanation = "failed: \(details)"
0070 case .ExpectedFailure(_):
0071 explanation = "failed"
0072 case .UnexpectedFailure(let error):
0073 explanation = "threw error \"\(error)\""
0074 }
0075
0076 if let name = assertion.name {
0077 return "\(name) \(explanation)"
0078 } else {
0079 return explanation
0080 }
0081 }
0082 }
0083
0084 private func _XCTEvaluateAssertion| XCTAssert.swift:163 | _XCTEvaluateAssertion(.Equal, message: message, file: file, line: line) { |
| XCTAssert.swift:174 | _XCTEvaluateAssertion(.Equal, message: message, file: file, line: line) { |
| XCTAssert.swift:185 | _XCTEvaluateAssertion(.Equal, message: message, file: file, line: line) { |
| XCTAssert.swift:196 | _XCTEvaluateAssertion(.Equal, message: message, file: file, line: line) { |
| XCTAssert.swift:207 | _XCTEvaluateAssertion(.Equal, message: message, file: file, line: line) { |
| XCTAssert.swift:218 | _XCTEvaluateAssertion(.EqualWithAccuracy, message: message, file: file, line: line) { |
| XCTAssert.swift:229 | _XCTEvaluateAssertion(.False, message: message, file: file, line: line) { |
| XCTAssert.swift:240 | _XCTEvaluateAssertion(.GreaterThan, message: message, file: file, line: line) { |
| XCTAssert.swift:251 | _XCTEvaluateAssertion(.GreaterThanOrEqual, message: message, file: file, line: line) { |
| XCTAssert.swift:262 | _XCTEvaluateAssertion(.LessThan, message: message, file: file, line: line) { |
| XCTAssert.swift:273 | _XCTEvaluateAssertion(.LessThanOrEqual, message: message, file: file, line: line) { |
| XCTAssert.swift:284 | _XCTEvaluateAssertion(.Nil, message: message, file: file, line: line) { |
| XCTAssert.swift:295 | _XCTEvaluateAssertion(.NotEqual, message: message, file: file, line: line) { |
| XCTAssert.swift:306 | _XCTEvaluateAssertion(.NotEqual, message: message, file: file, line: line) { |
| XCTAssert.swift:317 | _XCTEvaluateAssertion(.NotEqual, message: message, file: file, line: line) { |
| XCTAssert.swift:328 | _XCTEvaluateAssertion(.NotEqual, message: message, file: file, line: line) { |
| XCTAssert.swift:339 | _XCTEvaluateAssertion(.NotEqual, message: message, file: file, line: line) { |
| XCTAssert.swift:350 | _XCTEvaluateAssertion(.NotEqualWithAccuracy, message: message, file: file, line: line) { |
| XCTAssert.swift:361 | _XCTEvaluateAssertion(.Nil, message: message, file: file, line: line) { |
| XCTAssert.swift:372 | _XCTEvaluateAssertion(.True, message: message, file: file, line: line) { |
| XCTAssert.swift:383 | _XCTEvaluateAssertion(.Fail, message: message, file: file, line: line) { |
| XCTAssert.swift:389 | _XCTEvaluateAssertion(.ThrowsError, message: message, file: file, line: line) { |
(assertion: _XCTAssertion, @autoclosure message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__, @noescape expression: () throws -> _XCTAssertionResult) {
0085 let result: _XCTAssertionResult
0086 do {
0087 result = try expression()
0088 } catch {
0089 result = .UnexpectedFailure(error)
0090 }
0091
0092 switch result {
0093 case .Success:
0094 return
0095
0096 default:
0097 if let handler = XCTFailureHandler {
0098 handler(XCTFailure(message: message(), failureDescription: result.failureDescription(assertion), expected: result.expected, file: file, line: line))
0099 }
0100 }
0101 }
0102
0103 RequiresParameterParameterParameterParameterNotepublic func XCTAssert(@autoclosure expression: () throws -> BooleanType, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0159 XCTAssertTrue(expression, message, file: file, line: line)
0160 }
0161
0162 public func XCTAssertEqual<T: Equatable>(@autoclosure expression1: () throws -> T?, @autoclosure _ expression2: () throws -> T?, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0163 _XCTEvaluateAssertion(.Equal, message: message, file: file, line: line) {
0164 let (value1, value2) = (try expression1(), try expression2())
0165 if value1 == value2 {
0166 return .Success
0167 } else {
0168 return .ExpectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\")")
0169 }
0170 }
0171 }
0172
0173 public func XCTAssertEqual<T: Equatable>(@autoclosure expression1: () throws -> ArraySlice<T>, @autoclosure _ expression2: () throws -> ArraySlice<T>, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0174 _XCTEvaluateAssertion(.Equal, message: message, file: file, line: line) {
0175 let (value1, value2) = (try expression1(), try expression2())
0176 if value1 == value2 {
0177 return .Success
0178 } else {
0179 return .ExpectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\")")
0180 }
0181 }
0182 }
0183
0184 public func XCTAssertEqual<T: Equatable>(@autoclosure expression1: () throws -> ContiguousArray<T>, @autoclosure _ expression2: () throws -> ContiguousArray<T>, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0185 _XCTEvaluateAssertion(.Equal, message: message, file: file, line: line) {
0186 let (value1, value2) = (try expression1(), try expression2())
0187 if value1 == value2 {
0188 return .Success
0189 } else {
0190 return .ExpectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\")")
0191 }
0192 }
0193 }
0194
0195 public func XCTAssertEqual<T: Equatable>(@autoclosure expression1: () throws -> [T], @autoclosure _ expression2: () throws -> [T], @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0196 _XCTEvaluateAssertion(.Equal, message: message, file: file, line: line) {
0197 let (value1, value2) = (try expression1(), try expression2())
0198 if value1 == value2 {
0199 return .Success
0200 } else {
0201 return .ExpectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\")")
0202 }
0203 }
0204 }
0205
0206 public func XCTAssertEqual<T, U: Equatable>(@autoclosure expression1: () throws -> [T: U], @autoclosure _ expression2: () throws -> [T: U], @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0207 _XCTEvaluateAssertion(.Equal, message: message, file: file, line: line) {
0208 let (value1, value2) = (try expression1(), try expression2())
0209 if value1 == value2 {
0210 return .Success
0211 } else {
0212 return .ExpectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\")")
0213 }
0214 }
0215 }
0216
0217 public func XCTAssertEqualWithAccuracy<T: FloatingPointType>(@autoclosure expression1: () throws -> T, @autoclosure _ expression2: () throws -> T, accuracy: T, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0218 _XCTEvaluateAssertion(.EqualWithAccuracy, message: message, file: file, line: line) {
0219 let (value1, value2) = (try expression1(), try expression2())
0220 if abs(value1.distanceTo(value2)) <= abs(accuracy.distanceTo(T(0))) {
0221 return .Success
0222 } else {
0223 return .ExpectedFailure("(\"\(value1)\") is not equal to (\"\(value2)\") +/- (\"\(accuracy)\")")
0224 }
0225 }
0226 }
0227
0228 public func XCTAssertFalse(@autoclosure expression: () throws -> BooleanType, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0229 _XCTEvaluateAssertion(.False, message: message, file: file, line: line) {
0230 let value = try expression()
0231 if !value.boolValue {
0232 return .Success
0233 } else {
0234 return .ExpectedFailure(nil)
0235 }
0236 }
0237 }
0238
0239 public func XCTAssertGreaterThan<T: Comparable>(@autoclosure expression1: () throws -> T, @autoclosure _ expression2: () throws -> T, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0240 _XCTEvaluateAssertion(.GreaterThan, message: message, file: file, line: line) {
0241 let (value1, value2) = (try expression1(), try expression2())
0242 if value1 > value2 {
0243 return .Success
0244 } else {
0245 return .ExpectedFailure("(\"\(value1)\") is not greater than (\"\(value2)\")")
0246 }
0247 }
0248 }
0249
0250 public func XCTAssertGreaterThanOrEqual<T: Comparable>(@autoclosure expression1: () throws -> T, @autoclosure _ expression2: () throws -> T, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0251 _XCTEvaluateAssertion(.GreaterThanOrEqual, message: message, file: file, line: line) {
0252 let (value1, value2) = (try expression1(), try expression2())
0253 if value1 >= value2 {
0254 return .Success
0255 } else {
0256 return .ExpectedFailure("(\"\(value1)\") is less than (\"\(value2)\")")
0257 }
0258 }
0259 }
0260
0261 public func XCTAssertLessThan<T: Comparable>(@autoclosure expression1: () throws -> T, @autoclosure _ expression2: () throws -> T, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0262 _XCTEvaluateAssertion(.LessThan, message: message, file: file, line: line) {
0263 let (value1, value2) = (try expression1(), try expression2())
0264 if value1 < value2 {
0265 return .Success
0266 } else {
0267 return .ExpectedFailure("(\"\(value1)\") is not less than (\"\(value2)\")")
0268 }
0269 }
0270 }
0271
0272 public func XCTAssertLessThanOrEqual<T: Comparable>(@autoclosure expression1: () throws -> T, @autoclosure _ expression2: () throws -> T, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0273 _XCTEvaluateAssertion(.LessThanOrEqual, message: message, file: file, line: line) {
0274 let (value1, value2) = (try expression1(), try expression2())
0275 if value1 <= value2 {
0276 return .Success
0277 } else {
0278 return .ExpectedFailure("(\"\(value1)\") is greater than (\"\(value2)\")")
0279 }
0280 }
0281 }
0282
0283 public func XCTAssertNil(@autoclosure expression: () throws -> Any?, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0284 _XCTEvaluateAssertion(.Nil, message: message, file: file, line: line) {
0285 let value = try expression()
0286 if value == nil {
0287 return .Success
0288 } else {
0289 return .ExpectedFailure("\"\(value!)\"")
0290 }
0291 }
0292 }
0293
0294 public func XCTAssertNotEqual<T: Equatable>(@autoclosure expression1: () throws -> T?, @autoclosure _ expression2: () throws -> T?, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0295 _XCTEvaluateAssertion(.NotEqual, message: message, file: file, line: line) {
0296 let (value1, value2) = (try expression1(), try expression2())
0297 if value1 != value2 {
0298 return .Success
0299 } else {
0300 return .ExpectedFailure("(\"\(value1)\") is equal to (\"\(value2)\")")
0301 }
0302 }
0303 }
0304
0305 public func XCTAssertNotEqual<T: Equatable>(@autoclosure expression1: () throws -> ContiguousArray<T>, @autoclosure _ expression2: () throws -> ContiguousArray<T>, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0306 _XCTEvaluateAssertion(.NotEqual, message: message, file: file, line: line) {
0307 let (value1, value2) = (try expression1(), try expression2())
0308 if value1 != value2 {
0309 return .Success
0310 } else {
0311 return .ExpectedFailure("(\"\(value1)\") is equal to (\"\(value2)\")")
0312 }
0313 }
0314 }
0315
0316 public func XCTAssertNotEqual<T: Equatable>(@autoclosure expression1: () throws -> ArraySlice<T>, @autoclosure _ expression2: () throws -> ArraySlice<T>, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0317 _XCTEvaluateAssertion(.NotEqual, message: message, file: file, line: line) {
0318 let (value1, value2) = (try expression1(), try expression2())
0319 if value1 != value2 {
0320 return .Success
0321 } else {
0322 return .ExpectedFailure("(\"\(value1)\") is equal to (\"\(value2)\")")
0323 }
0324 }
0325 }
0326
0327 public func XCTAssertNotEqual<T: Equatable>(@autoclosure expression1: () throws -> [T], @autoclosure _ expression2: () throws -> [T], @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0328 _XCTEvaluateAssertion(.NotEqual, message: message, file: file, line: line) {
0329 let (value1, value2) = (try expression1(), try expression2())
0330 if value1 != value2 {
0331 return .Success
0332 } else {
0333 return .ExpectedFailure("(\"\(value1)\") is equal to (\"\(value2)\")")
0334 }
0335 }
0336 }
0337
0338 public func XCTAssertNotEqual<T, U: Equatable>(@autoclosure expression1: () throws -> [T: U], @autoclosure _ expression2: () throws -> [T: U], @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0339 _XCTEvaluateAssertion(.NotEqual, message: message, file: file, line: line) {
0340 let (value1, value2) = (try expression1(), try expression2())
0341 if value1 != value2 {
0342 return .Success
0343 } else {
0344 return .ExpectedFailure("(\"\(value1)\") is equal to (\"\(value2)\")")
0345 }
0346 }
0347 }
0348
0349 public func XCTAssertNotEqualWithAccuracy<T: FloatingPointType>(@autoclosure expression1: () throws -> T, @autoclosure _ expression2: () throws -> T, _ accuracy: T, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0350 _XCTEvaluateAssertion(.NotEqualWithAccuracy, message: message, file: file, line: line) {
0351 let (value1, value2) = (try expression1(), try expression2())
0352 if abs(value1.distanceTo(value2)) > abs(accuracy.distanceTo(T(0))) {
0353 return .Success
0354 } else {
0355 return .ExpectedFailure("(\"\(value1)\") is equal to (\"\(value2)\") +/- (\"\(accuracy)\")")
0356 }
0357 }
0358 }
0359
0360 public func XCTAssertNotNil(@autoclosure expression: () throws -> Any?, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0361 _XCTEvaluateAssertion(.Nil, message: message, file: file, line: line) {
0362 let value = try expression()
0363 if value != nil {
0364 return .Success
0365 } else {
0366 return .ExpectedFailure(nil)
0367 }
0368 }
0369 }
0370
0371 public func XCTAssertTrue| XCTAssert.swift:159 | XCTAssertTrue(expression, message, file: file, line: line) |
(@autoclosure expression: () throws -> BooleanType, @autoclosure _ message: () -> String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0372 _XCTEvaluateAssertion(.True, message: message, file: file, line: line) {
0373 let value = try expression()
0374 if value.boolValue {
0375 return .Success
0376 } else {
0377 return .ExpectedFailure(nil)
0378 }
0379 }
0380 }
0381
0382 public func XCTFail(message: String = "", file: StaticString = __FILE__, line: UInt = __LINE__) {
0383 _XCTEvaluateAssertion(.Fail, message: message, file: file, line: line) {
0384 return .ExpectedFailure(nil)
0385 }
0386 }
0387
0388 public func XCTAssertThrowsError<T>(@autoclosure expression: () throws -> T, _ message: String = "", file: StaticString = __FILE__, line: UInt = __LINE__, _ errorHandler: (error: ErrorType) -> Void = { _ in }) {
0389 _XCTEvaluateAssertion(.ThrowsError, message: message, file: file, line: line) {
0390 var caughtErrorOptional: ErrorType?
0391 do {
0392 _ = try expression()
0393 } catch {
0394 caughtErrorOptional = error
0395 }
0396
0397 if let caughtError = caughtErrorOptional {
0398 errorHandler(error: caughtError)
0399 return .Success
0400 } else {
0401 return .ExpectedFailure("did not throw error")
0402 }
0403 }
0404 }
0405