summaryrefslogtreecommitdiff
path: root/ICSharpCode.Decompiler/Tests/Helpers/CodeAssert.cs
diff options
context:
space:
mode:
authorStephane Delcroix <stephane@delcroix.org>2016-12-05 13:31:31 +0100
committerGitHub <noreply@github.com>2016-12-05 13:31:31 +0100
commit1a5bead2f2e24cc16da23753eaf0882d38d54ea1 (patch)
tree2fb4bf607ca11d9ed5163ed329796ca651054a6a /ICSharpCode.Decompiler/Tests/Helpers/CodeAssert.cs
parent3692786c3a0f9ba01ffe9516caa624a018ac885a (diff)
downloadxamarin-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.cs110
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);
- }
- }
-}