@@ -15,29 +15,47 @@ import SwiftSyntax
15
15
import _SwiftSyntaxTestSupport
16
16
17
17
public class SourceEditsUtilTest : XCTestCase {
18
+ public func testStringDifferenceReturnSequentialEdits( ) {
19
+ let base = " 0123 "
20
+ let new = " a0123bc "
21
+
22
+ let diffs = getConcurrentEdits ( from: base, to: new)
23
+ XCTAssertEqual (
24
+ diffs. edits,
25
+ [
26
+ SourceEdit ( offset: 0 , length: 0 , replacementLength: 1 ) ,
27
+ SourceEdit ( offset: 4 , length: 0 , replacementLength: 2 ) ,
28
+ ]
29
+ )
30
+
31
+ let appliedDiffsBase = applyEdits ( diffs. edits, concurrent: true , to: base)
32
+
33
+ XCTAssertEqual ( appliedDiffsBase, " ?0123?? " )
34
+ }
35
+
18
36
public func testDiffOfTwoStringsSimple( ) throws {
19
- let s1 = " struct A { func f() { "
20
- let s2 = " struct AA { func f() { "
37
+ let base = " struct A { func f() { "
38
+ let new = " struct AA { func f() { "
21
39
22
- let diffs = getConcurrentEdits ( from: s1 , to: s2 )
40
+ let diffs = getConcurrentEdits ( from: base , to: new )
23
41
XCTAssertEqual ( diffs. edits. count, 1 )
24
42
25
43
let firstDiff = try XCTUnwrap ( diffs. edits. first)
26
44
XCTAssertEqual ( firstDiff, SourceEdit ( offset: 8 , length: 0 , replacementLength: 1 ) )
27
45
}
28
46
29
47
public func testDiffOfTwoSameStrings( ) {
30
- let s1 = " 0123456 "
48
+ let base = " 0123456 "
31
49
32
- let diffs = getConcurrentEdits ( from: s1 , to: s1 )
50
+ let diffs = getConcurrentEdits ( from: base , to: base )
33
51
XCTAssert ( diffs. edits. isEmpty)
34
52
}
35
53
36
54
public func testDiffOfTwoStrings( ) {
37
- let s1 = " 0123456 "
38
- let s2 = " x12456yz "
55
+ let base = " 0123456 "
56
+ let new = " x12456yz "
39
57
40
- let diffs = getConcurrentEdits ( from: s1 , to: s2 )
58
+ let diffs = getConcurrentEdits ( from: base , to: new )
41
59
42
60
let expectedDiffs : [ SourceEdit ] = [
43
61
SourceEdit ( offset: 0 , length: 1 , replacementLength: 1 ) ,
@@ -47,8 +65,8 @@ public class SourceEditsUtilTest: XCTestCase {
47
65
48
66
XCTAssertEqual ( diffs. edits, expectedDiffs)
49
67
50
- let s3 = applyEdits ( expectedDiffs, concurrent: true , to: s1 )
68
+ let appliedDiffsBase = applyEdits ( expectedDiffs, concurrent: true , to: base )
51
69
52
- XCTAssertEqual ( s3 , " ?12456?? " )
70
+ XCTAssertEqual ( appliedDiffsBase , " ?12456?? " )
53
71
}
54
72
}
0 commit comments