@@ -1133,5 +1133,71 @@ public void CallingCompareWithAnUnsupportedGenericParamThrows()
1133
1133
Assert . Throws < LibGit2SharpException > ( ( ) => repo . Diff . Compare < string > ( ) ) ;
1134
1134
}
1135
1135
}
1136
+
1137
+ [ Fact ]
1138
+ public void UsingPatienceAlgorithmCompareOptionProducesPatienceDiff ( )
1139
+ {
1140
+ string repoPath = InitNewRepository ( ) ;
1141
+ using ( var repo = new Repository ( repoPath ) )
1142
+ {
1143
+ Func < string , Tree > fromString = s => repo . ObjectDatabase . CreateTree ( new TreeDefinition ( ) . Add ( "file.txt" , OdbHelper . CreateBlob ( repo , s ) , Mode . NonExecutableFile ) ) ;
1144
+
1145
+ Tree treeOld = fromString ( new StringBuilder ( )
1146
+ . Append ( "aaaaaa\n " )
1147
+ . Append ( "aaaaaa\n " )
1148
+ . Append ( "bbbbbb\n " )
1149
+ . Append ( "bbbbbb\n " )
1150
+ . Append ( "cccccc\n " )
1151
+ . Append ( "cccccc\n " )
1152
+ . Append ( "abc\n " ) . ToString ( ) ) ;
1153
+
1154
+ Tree treeNew = fromString ( new StringBuilder ( )
1155
+ . Append ( "abc\n " )
1156
+ . Append ( "aaaaaa\n " )
1157
+ . Append ( "aaaaaa\n " )
1158
+ . Append ( "bbbbbb\n " )
1159
+ . Append ( "bbbbbb\n " )
1160
+ . Append ( "cccccc\n " )
1161
+ . Append ( "cccccc\n " ) . ToString ( ) ) ;
1162
+
1163
+ string diffDefault = new StringBuilder ( )
1164
+ . Append ( "diff --git a/file.txt b/file.txt\n " )
1165
+ . Append ( "index 3299d68..accc3bd 100644\n " )
1166
+ . Append ( "--- a/file.txt\n " )
1167
+ . Append ( "+++ b/file.txt\n " )
1168
+ . Append ( "@@ -1,7 +1,7 @@\n " )
1169
+ . Append ( "+abc\n " )
1170
+ . Append ( " aaaaaa\n " )
1171
+ . Append ( " aaaaaa\n " )
1172
+ . Append ( " bbbbbb\n " )
1173
+ . Append ( " bbbbbb\n " )
1174
+ . Append ( " cccccc\n " )
1175
+ . Append ( " cccccc\n " )
1176
+ . Append ( "-abc\n " ) . ToString ( ) ;
1177
+
1178
+ string diffPatience = new StringBuilder ( )
1179
+ . Append ( "diff --git a/file.txt b/file.txt\n " )
1180
+ . Append ( "index 3299d68..accc3bd 100644\n " )
1181
+ . Append ( "--- a/file.txt\n " )
1182
+ . Append ( "+++ b/file.txt\n " )
1183
+ . Append ( "@@ -1,7 +1,7 @@\n " )
1184
+ . Append ( "-aaaaaa\n " )
1185
+ . Append ( "-aaaaaa\n " )
1186
+ . Append ( "-bbbbbb\n " )
1187
+ . Append ( "-bbbbbb\n " )
1188
+ . Append ( "-cccccc\n " )
1189
+ . Append ( "-cccccc\n " )
1190
+ . Append ( " abc\n " )
1191
+ . Append ( "+aaaaaa\n " )
1192
+ . Append ( "+aaaaaa\n " )
1193
+ . Append ( "+bbbbbb\n " )
1194
+ . Append ( "+bbbbbb\n " )
1195
+ . Append ( "+cccccc\n " )
1196
+ . Append ( "+cccccc\n " ) . ToString ( ) ;
1197
+
1198
+ Assert . Equal ( diffDefault , repo . Diff . Compare < Patch > ( treeOld , treeNew ) ) ;
1199
+ Assert . Equal ( diffPatience , repo . Diff . Compare < Patch > ( treeOld , treeNew , compareOptions : new CompareOptions { PatienceAlgorithm = true } ) ) ;
1200
+ }
1201
+ }
1136
1202
}
1137
1203
}
0 commit comments