@@ -1133,5 +1133,75 @@ 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 =
1144
+ s =>
1145
+ repo . ObjectDatabase . CreateTree ( new TreeDefinition ( ) . Add ( "file.txt" ,
1146
+ OdbHelper . CreateBlob ( repo , s ) , Mode . NonExecutableFile ) ) ;
1147
+
1148
+ Tree treeOld = fromString ( new StringBuilder ( )
1149
+ . Append ( "aaaaaa\n " )
1150
+ . Append ( "aaaaaa\n " )
1151
+ . Append ( "bbbbbb\n " )
1152
+ . Append ( "bbbbbb\n " )
1153
+ . Append ( "cccccc\n " )
1154
+ . Append ( "cccccc\n " )
1155
+ . Append ( "abc\n " ) . ToString ( ) ) ;
1156
+
1157
+ Tree treeNew = fromString ( new StringBuilder ( )
1158
+ . Append ( "abc\n " )
1159
+ . Append ( "aaaaaa\n " )
1160
+ . Append ( "aaaaaa\n " )
1161
+ . Append ( "bbbbbb\n " )
1162
+ . Append ( "bbbbbb\n " )
1163
+ . Append ( "cccccc\n " )
1164
+ . Append ( "cccccc\n " ) . ToString ( ) ) ;
1165
+
1166
+ string diffDefault = new StringBuilder ( )
1167
+ . Append ( "diff --git a/file.txt b/file.txt\n " )
1168
+ . Append ( "index 3299d68..accc3bd 100644\n " )
1169
+ . Append ( "--- a/file.txt\n " )
1170
+ . Append ( "+++ b/file.txt\n " )
1171
+ . Append ( "@@ -1,7 +1,7 @@\n " )
1172
+ . Append ( "+abc\n " )
1173
+ . Append ( " aaaaaa\n " )
1174
+ . Append ( " aaaaaa\n " )
1175
+ . Append ( " bbbbbb\n " )
1176
+ . Append ( " bbbbbb\n " )
1177
+ . Append ( " cccccc\n " )
1178
+ . Append ( " cccccc\n " )
1179
+ . Append ( "-abc\n " ) . ToString ( ) ;
1180
+
1181
+ string diffPatience = new StringBuilder ( )
1182
+ . Append ( "diff --git a/file.txt b/file.txt\n " )
1183
+ . Append ( "index 3299d68..accc3bd 100644\n " )
1184
+ . Append ( "--- a/file.txt\n " )
1185
+ . Append ( "+++ b/file.txt\n " )
1186
+ . Append ( "@@ -1,7 +1,7 @@\n " )
1187
+ . Append ( "-aaaaaa\n " )
1188
+ . Append ( "-aaaaaa\n " )
1189
+ . Append ( "-bbbbbb\n " )
1190
+ . Append ( "-bbbbbb\n " )
1191
+ . Append ( "-cccccc\n " )
1192
+ . Append ( "-cccccc\n " )
1193
+ . Append ( " abc\n " )
1194
+ . Append ( "+aaaaaa\n " )
1195
+ . Append ( "+aaaaaa\n " )
1196
+ . Append ( "+bbbbbb\n " )
1197
+ . Append ( "+bbbbbb\n " )
1198
+ . Append ( "+cccccc\n " )
1199
+ . Append ( "+cccccc\n " ) . ToString ( ) ;
1200
+
1201
+ Assert . Equal ( diffDefault , repo . Diff . Compare < Patch > ( treeOld , treeNew ) ) ;
1202
+ Assert . Equal ( diffPatience , repo . Diff . Compare < Patch > ( treeOld , treeNew ,
1203
+ compareOptions : new CompareOptions { UsePatienceAlgorithm = true } ) ) ;
1204
+ }
1205
+ }
1136
1206
}
1137
1207
}
0 commit comments