@@ -2,9 +2,10 @@ import XCTest
22import KeyedArray
33
44final class KeyedArrayTests : XCTestCase {
5- struct DemoVal : Equatable , Identifiable , ExpressibleByStringLiteral {
5+ struct DemoVal : Equatable , Identifiable , ExpressibleByStringLiteral , CustomStringConvertible {
66 let str : String
77 var id : Character { str. first! }
8+ var description : String { str }
89
910 init ( _ str: String ) { self . str = str }
1011 init ( stringLiteral str: String ) { self . str = str }
@@ -47,13 +48,31 @@ final class KeyedArrayTests: XCTestCase {
4748 XCTAssertEqual ( ar. array, [ " alpha " ] )
4849 }
4950
50- func testReplaceByIndex ( ) {
51+ func testReplaceByAppend ( ) {
5152 ar. append ( " bravo " )
5253
5354 XCTAssertEqual ( ar. array, [ " alpha " , " bravo " ] )
5455 XCTAssertEqual ( ar. dictionary, [ " a " : " alpha " , " b " : " bravo " ] )
5556 }
5657
58+ func testMutateValueInPlaceByKey( ) {
59+ ar. mutateValueInPlace ( for: " a " ) { existing in
60+ existing = " alpine "
61+ }
62+
63+ XCTAssertEqual ( ar. array, [ " alpine " , " beta " ] )
64+ XCTAssertEqual ( ar. dictionary, [ " a " : " alpine " , " b " : " beta " ] )
65+ }
66+
67+ func testMutateValueInPlaceByIndex( ) {
68+ ar. mutateValueInPlace ( for: 0 ) { existing in
69+ existing = " alpine "
70+ }
71+
72+ XCTAssertEqual ( ar. array, [ " alpine " , " beta " ] )
73+ XCTAssertEqual ( ar. dictionary, [ " a " : " alpine " , " b " : " beta " ] )
74+ }
75+
5776 func testArrayIsArray( ) {
5877 XCTAssertEqual ( Array ( ar. array) , ar. array)
5978 }
0 commit comments