     XCTAssertTrue(array.isEmpty)
     XCTAssertEqual(nil, array.first)
     XCTAssertEqual(nil, array.last)
-    XCTAssertEqual(0, array.startIndex)
-    XCTAssertEqual(0, array.endIndex)
-    XCTAssertEqual(nil, array.generate().next())
+    XCTAssertTrue(array.startIndex == array.endIndex)
+    
+    array = [1, 2, 3]
+    
+    array.removeAll(keepCapacity: true)
+    XCTAssertEqual(4, array.capacity)
+    XCTAssertEqual(0, array.count)
+    XCTAssertTrue(array.isEmpty)
+    XCTAssertEqual(nil, array.first)
+    XCTAssertEqual(nil, array.last)
+    XCTAssertTrue(array.startIndex == array.endIndex)
   }
   
   func testAppending() {

    XCTAssertTrue(array.isEmpty)
    XCTAssertEqual(nil, array.first)
    XCTAssertEqual(nil, array.last)
    XCTAssertEqual(0, array.startIndex)
    XCTAssertEqual(0, array.endIndex)
    XCTAssertEqual(nil, array.generate().next())
  }
  
  func testInitialisesFromArrayLiteral() {

    XCTAssertTrue(array.isEmpty)
    XCTAssertEqual(nil, array.first)
    XCTAssertEqual(nil, array.last)
    XCTAssertTrue(array.startIndex == array.endIndex)
  }
  
  func testInitialisesFromSequence() {
