| // RUN: %target-resilience-test |
| // REQUIRES: executable_test |
| |
| import StdlibUnittest |
| import enum_change_size |
| |
| |
| var EnumChangeSizeTest = TestSuite("EnumChangeSize") |
| |
| public func getMySingletonEnumValues(_ c: ChangeSize) |
| -> [SingletonEnum?] { |
| return [.X(c), nil] |
| } |
| |
| EnumChangeSizeTest.test("SingletonEnum") { |
| do { |
| let c = ChangeSize(value: 123) |
| for e in [getMySingletonEnumValues(c), getSingletonEnumValues(c)] { |
| let b: [Int] = e.map { |
| switch $0 { |
| case .some(.X(let cc)): |
| expectEqual(c.value, cc.value) |
| return 0 |
| case .none: |
| return 1 |
| } |
| } |
| expectEqual(b, [0, 1]) |
| } |
| } |
| } |
| |
| public func getMySinglePayloadEnumValues(_ c: ChangeSize) |
| -> [SinglePayloadEnum?] { |
| return [.X(c), .Y, .Z, nil] |
| } |
| |
| EnumChangeSizeTest.test("SinglePayloadEnum") { |
| do { |
| let c = ChangeSize(value: 123) |
| for e in [getMySinglePayloadEnumValues(c), getSinglePayloadEnumValues(c)] { |
| let b: [Int] = e.map { |
| switch $0 { |
| case .some(.X(let cc)): |
| expectEqual(c.value, cc.value) |
| return 0 |
| case .some(.Y): |
| return 1 |
| case .some(.Z): |
| return 2 |
| case .none: |
| return 3 |
| } |
| } |
| expectEqual(b, [0, 1, 2, 3]) |
| } |
| } |
| } |
| |
| public func getMyMultiPayloadEnumValues(_ c: ChangeSize, _ d: ChangeSize) |
| -> [MultiPayloadEnum?] { |
| return [.X(c), .Y(d), .Z, nil] |
| } |
| |
| EnumChangeSizeTest.test("MultiPayloadEnum") { |
| do { |
| let c = ChangeSize(value: 123) |
| let d = ChangeSize(value: 321) |
| for e in [getMyMultiPayloadEnumValues(c, d), getMultiPayloadEnumValues(c, d)] { |
| let b: [Int] = e.map { |
| switch $0 { |
| case .some(.X(let cc)): |
| expectEqual(c.value, cc.value) |
| return 0 |
| case .some(.Y(let dd)): |
| expectEqual(d.value, dd.value) |
| return 1 |
| case .some(.Z): |
| return 2 |
| case .none: |
| return 3 |
| } |
| } |
| expectEqual(b, [0, 1, 2, 3]) |
| } |
| } |
| } |
| |
| runAllTests() |
| |