Skip to content

Commit 98575e8

Browse files
authored
Collection diffing. (#1)
* Collection diffing. * The move elimination passes now emit correct indices. * Update the docs on mutation offsets. Improve the correctness of the reproducibility tests. * Update all test cases to test for reproducibility. Add a new random data test case. * Fix a couple of malformed iteration ranges. * Revert the removal of the position invariant guarantee of `Changeset.mutations`. * Elaborate on `moves` not necessarily representing all moves.
1 parent 4a8147c commit 98575e8

File tree

7 files changed

+1621
-20
lines changed

7 files changed

+1621
-20
lines changed

FlexibleDiff.xcodeproj/project.pbxproj

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,10 @@
1313
9A4CCB5D1F95E22100ACF758 /* Nimble.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9A4CCB5B1F95E21700ACF758 /* Nimble.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
1414
9A4CCB5E1F95E22100ACF758 /* Quick.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 9A4CCB5C1F95E21700ACF758 /* Quick.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
1515
9A4CCB621F95E38A00ACF758 /* FlexibleDiff.h in Headers */ = {isa = PBXBuildFile; fileRef = 9A4CCB611F95E38A00ACF758 /* FlexibleDiff.h */; settings = {ATTRIBUTES = (Public, ); }; };
16-
9A4CCB681F95E73200ACF758 /* Placeholder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A4CCB671F95E73200ACF758 /* Placeholder.swift */; };
17-
9A4CCB6A1F95E74800ACF758 /* FlexibleDiffSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9A4CCB691F95E74800ACF758 /* FlexibleDiffSpec.swift */; };
16+
9AD5D41A1F95F7FE00E6AE5A /* Changeset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AD5D4181F95F7FE00E6AE5A /* Changeset.swift */; };
17+
9AD5D41B1F95F7FE00E6AE5A /* Snapshot.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AD5D4191F95F7FE00E6AE5A /* Snapshot.swift */; };
18+
9AD5D41E1F95F80900E6AE5A /* Delta+NimbleMatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AD5D41C1F95F80900E6AE5A /* Delta+NimbleMatcher.swift */; };
19+
9AD5D41F1F95F80900E6AE5A /* ChangesetSpec.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9AD5D41D1F95F80900E6AE5A /* ChangesetSpec.swift */; };
1820
/* End PBXBuildFile section */
1921

2022
/* Begin PBXContainerItemProxy section */
@@ -78,8 +80,10 @@
7880
9A4CCB5B1F95E21700ACF758 /* Nimble.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Nimble.framework; sourceTree = BUILT_PRODUCTS_DIR; };
7981
9A4CCB5C1F95E21700ACF758 /* Quick.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = Quick.framework; sourceTree = BUILT_PRODUCTS_DIR; };
8082
9A4CCB611F95E38A00ACF758 /* FlexibleDiff.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FlexibleDiff.h; sourceTree = "<group>"; };
81-
9A4CCB671F95E73200ACF758 /* Placeholder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Placeholder.swift; sourceTree = "<group>"; };
82-
9A4CCB691F95E74800ACF758 /* FlexibleDiffSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; indentWidth = 4; lastKnownFileType = sourcecode.swift; path = FlexibleDiffSpec.swift; sourceTree = "<group>"; tabWidth = 4; };
83+
9AD5D4181F95F7FE00E6AE5A /* Changeset.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Changeset.swift; sourceTree = "<group>"; };
84+
9AD5D4191F95F7FE00E6AE5A /* Snapshot.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Snapshot.swift; sourceTree = "<group>"; };
85+
9AD5D41C1F95F80900E6AE5A /* Delta+NimbleMatcher.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "Delta+NimbleMatcher.swift"; sourceTree = "<group>"; };
86+
9AD5D41D1F95F80900E6AE5A /* ChangesetSpec.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = ChangesetSpec.swift; sourceTree = "<group>"; };
8387
/* End PBXFileReference section */
8488

8589
/* Begin PBXFrameworksBuildPhase section */
@@ -129,9 +133,10 @@
129133
9A4CCB1A1F95DEF000ACF758 /* FlexibleDiff */ = {
130134
isa = PBXGroup;
131135
children = (
136+
9AD5D4181F95F7FE00E6AE5A /* Changeset.swift */,
137+
9AD5D4191F95F7FE00E6AE5A /* Snapshot.swift */,
132138
9A4CCB1C1F95DEF000ACF758 /* Info.plist */,
133139
9A4CCB611F95E38A00ACF758 /* FlexibleDiff.h */,
134-
9A4CCB671F95E73200ACF758 /* Placeholder.swift */,
135140
);
136141
path = FlexibleDiff;
137142
sourceTree = "<group>";
@@ -232,7 +237,8 @@
232237
9A4CCB4D1F95E18900ACF758 /* FlexibleDiffTests */ = {
233238
isa = PBXGroup;
234239
children = (
235-
9A4CCB691F95E74800ACF758 /* FlexibleDiffSpec.swift */,
240+
9AD5D41D1F95F80900E6AE5A /* ChangesetSpec.swift */,
241+
9AD5D41C1F95F80900E6AE5A /* Delta+NimbleMatcher.swift */,
236242
9A4CCB501F95E18900ACF758 /* Info.plist */,
237243
);
238244
path = FlexibleDiffTests;
@@ -360,15 +366,17 @@
360366
isa = PBXSourcesBuildPhase;
361367
buildActionMask = 2147483647;
362368
files = (
363-
9A4CCB681F95E73200ACF758 /* Placeholder.swift in Sources */,
369+
9AD5D41A1F95F7FE00E6AE5A /* Changeset.swift in Sources */,
370+
9AD5D41B1F95F7FE00E6AE5A /* Snapshot.swift in Sources */,
364371
);
365372
runOnlyForDeploymentPostprocessing = 0;
366373
};
367374
9A4CCB481F95E18900ACF758 /* Sources */ = {
368375
isa = PBXSourcesBuildPhase;
369376
buildActionMask = 2147483647;
370377
files = (
371-
9A4CCB6A1F95E74800ACF758 /* FlexibleDiffSpec.swift in Sources */,
378+
9AD5D41E1F95F80900E6AE5A /* Delta+NimbleMatcher.swift in Sources */,
379+
9AD5D41F1F95F80900E6AE5A /* ChangesetSpec.swift in Sources */,
372380
);
373381
runOnlyForDeploymentPostprocessing = 0;
374382
};

0 commit comments

Comments
 (0)