// -*- swift -*- // RUN: %target-run-simple-swiftgyb // REQUIRES: executable_test import StdlibUnittest import StdlibCollectionUnittest var RangeReplaceableTestSuite = TestSuite("RangeReplaceable") RangeReplaceableTestSuite.test("append/dispatch") { var tester = RangeReplaceableCollectionLog.dispatchTester([ OpaqueValue(1) ]) tester.append(OpaqueValue(2)) expectCustomizable(tester, tester.log.append) } RangeReplaceableTestSuite.test("appendContentsOf/dispatch") { var tester = RangeReplaceableCollectionLog.dispatchTester([ OpaqueValue(1) ]) tester.append(contentsOf: [ 2, 3 ].map(OpaqueValue.init)) expectCustomizable(tester, tester.log.appendContentsOf) } RangeReplaceableTestSuite.test("insert/dispatch") { var tester = RangeReplaceableCollectionLog.dispatchTester([ OpaqueValue(1) ]) tester.insert(OpaqueValue(2), at: tester.base.startIndex) expectCustomizable(tester, tester.log.insert) } RangeReplaceableTestSuite.test("insert(contentsOf:at:)/dispatch") { var tester = RangeReplaceableCollectionLog.dispatchTester([ OpaqueValue(1) ]) tester.insert( contentsOf: [ 2, 3 ].map(OpaqueValue.init), at: tester.base.endIndex) expectCustomizable(tester, tester.log.insertContentsOf) } RangeReplaceableTestSuite.test("remove(at:)/dispatch") { var tester = RangeReplaceableCollectionLog.dispatchTester([ OpaqueValue(1) ]) tester.remove(at: tester.base.startIndex) expectCustomizable(tester, tester.log.removeAt) } RangeReplaceableTestSuite.test("removeLast/whereSelfIsBidirectionalCollection/dispatch") { var tester = LoggingRangeReplaceableBidirectionalCollection(wrapping: LoggingRangeReplaceableBidirectionalCollection(wrapping: [ OpaqueValue(1) ])) _ = tester.removeLast() expectCustomizable(tester, tester.log._customRemoveLast) } RangeReplaceableTestSuite.test("removeLast(n: Int)/whereSelfIsBidirectionalCollection/dispatch") { var tester = LoggingRangeReplaceableBidirectionalCollection(wrapping: LoggingRangeReplaceableBidirectionalCollection(wrapping: [ OpaqueValue(1) ])) _ = tester.removeLast(1) expectCustomizable(tester, tester.log._customRemoveLastN) } RangeReplaceableTestSuite.test("removeSubrange/dispatch") { var tester = RangeReplaceableCollectionLog.dispatchTester( [ 1, 2, 3 ].map(OpaqueValue.init)) tester.removeSubrange(tester.base.startIndex..()) tester.reserveCapacity(10) expectCustomizable(tester, tester.log.reserveCapacity) } runAllTests()