diff options
author | Stephane Delcroix <stephane@delcroix.org> | 2016-12-05 13:31:31 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2016-12-05 13:31:31 +0100 |
commit | 1a5bead2f2e24cc16da23753eaf0882d38d54ea1 (patch) | |
tree | 2fb4bf607ca11d9ed5163ed329796ca651054a6a /ICSharpCode.Decompiler/Tests/Helpers/CodeAssert.cs | |
parent | 3692786c3a0f9ba01ffe9516caa624a018ac885a (diff) | |
download | xamarin-forms-1a5bead2f2e24cc16da23753eaf0882d38d54ea1.tar.gz xamarin-forms-1a5bead2f2e24cc16da23753eaf0882d38d54ea1.tar.bz2 xamarin-forms-1a5bead2f2e24cc16da23753eaf0882d38d54ea1.zip |
[XamlC] drop ICSharpCode.Decompiler (#586)
* [XamlC] drop ICSharpCode.Decompiler
* update nuspec
* fix typo
Diffstat (limited to 'ICSharpCode.Decompiler/Tests/Helpers/CodeAssert.cs')
-rw-r--r-- | ICSharpCode.Decompiler/Tests/Helpers/CodeAssert.cs | 110 |
1 files changed, 0 insertions, 110 deletions
diff --git a/ICSharpCode.Decompiler/Tests/Helpers/CodeAssert.cs b/ICSharpCode.Decompiler/Tests/Helpers/CodeAssert.cs deleted file mode 100644 index d06e2db2..00000000 --- a/ICSharpCode.Decompiler/Tests/Helpers/CodeAssert.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using DiffLib; -using NUnit.Framework; - -namespace ICSharpCode.Decompiler.Tests.Helpers -{ - public class CodeAssert - { - public static void AreEqual(string input1, string input2) - { - var diff = new StringWriter(); - if (!Compare(input1, input2, diff)) { - Assert.Fail(diff.ToString()); - } - } - - static bool Compare(string input1, string input2, StringWriter diff) - { - var differ = new AlignedDiff<string>( - NormalizeAndSplitCode(input1), - NormalizeAndSplitCode(input2), - new CodeLineEqualityComparer(), - new StringSimilarityComparer(), - new StringAlignmentFilter()); - - bool result = true, ignoreChange; - - int line1 = 0, line2 = 0; - - foreach (var change in differ.Generate()) { - switch (change.Change) { - case ChangeType.Same: - diff.Write("{0,4} {1,4} ", ++line1, ++line2); - diff.Write(" "); - diff.WriteLine(change.Element1); - break; - case ChangeType.Added: - diff.Write(" {1,4} ", line1, ++line2); - result &= ignoreChange = ShouldIgnoreChange(change.Element2); - diff.Write(ignoreChange ? " " : " + "); - diff.WriteLine(change.Element2); - break; - case ChangeType.Deleted: - diff.Write("{0,4} ", ++line1, line2); - result &= ignoreChange = ShouldIgnoreChange(change.Element1); - diff.Write(ignoreChange ? " " : " - "); - diff.WriteLine(change.Element1); - break; - case ChangeType.Changed: - diff.Write("{0,4} ", ++line1, line2); - result = false; - diff.Write("(-) "); - diff.WriteLine(change.Element1); - diff.Write(" {1,4} ", line1, ++line2); - diff.Write("(+) "); - diff.WriteLine(change.Element2); - break; - } - } - - return result; - } - - class CodeLineEqualityComparer : IEqualityComparer<string> - { - private IEqualityComparer<string> baseComparer = EqualityComparer<string>.Default; - - public bool Equals(string x, string y) - { - return baseComparer.Equals( - NormalizeLine(x), - NormalizeLine(y) - ); - } - - public int GetHashCode(string obj) - { - return baseComparer.GetHashCode(NormalizeLine(obj)); - } - } - - private static string NormalizeLine(string line) - { - line = line.Trim(); - var index = line.IndexOf("//"); - if (index >= 0) { - return line.Substring(0, index); - } else if (line.StartsWith("#")) { - return string.Empty; - } else { - return line; - } - } - - private static bool ShouldIgnoreChange(string line) - { - // for the result, we should ignore blank lines and added comments - return NormalizeLine(line) == string.Empty; - } - - private static IEnumerable<string> NormalizeAndSplitCode(string input) - { - return input.Split(new[] { "\r\n", "\n\r", "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries); - } - } -} |