@@ -1133,5 +1133,75 @@ public void CallingCompareWithAnUnsupportedGenericParamThrows()
11331133Assert . Throws < LibGit2SharpException > ( ( ) => repo . Diff . Compare < string > ( ) ) ;
11341134}
11351135}
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+ }
11361206}
11371207}
0 commit comments