diff --git a/docs/diff-tool.order.md b/docs/diff-tool.order.md
index ceb99b41..4cd981d9 100644
--- a/docs/diff-tool.order.md
+++ b/docs/diff-tool.order.md
@@ -17,9 +17,9 @@ To change this file edit the source file and then run MarkdownSnippets.
* **[Kaleidoscope](/docs/diff-tool.md#kaleidoscope)** OSX (Cost: Paid)
* **[DeltaWalker](/docs/diff-tool.md#deltawalker)** Windows/OSX (Cost: Paid)
* **[WinMerge](/docs/diff-tool.md#winmerge)** Windows (Cost: Free with option to donate)
+ * **[TortoiseMerge](/docs/diff-tool.md#tortoisemerge)** Windows (Cost: Free)
* **[TortoiseGitMerge](/docs/diff-tool.md#tortoisegitmerge)** Windows (Cost: Free)
* **[TortoiseGitIDiff](/docs/diff-tool.md#tortoisegitidiff)** Windows (Cost: Free)
- * **[TortoiseMerge](/docs/diff-tool.md#tortoisemerge)** Windows (Cost: Free)
* **[TortoiseIDiff](/docs/diff-tool.md#tortoiseidiff)** Windows (Cost: Free)
* **[KDiff3](/docs/diff-tool.md#kdiff3)** Windows/OSX (Cost: Free)
* **[TkDiff](/docs/diff-tool.md#tkdiff)** OSX (Cost: Free)
@@ -33,8 +33,8 @@ To change this file edit the source file and then run MarkdownSnippets.
* **[Meld](/docs/diff-tool.md#meld)** Windows/OSX/Linux (Cost: Free)
* **[SublimeMerge](/docs/diff-tool.md#sublimemerge)** Windows/OSX/Linux (Cost: Paid)
* **[VisualStudioCode](/docs/diff-tool.md#visualstudiocode)** Windows/OSX/Linux (Cost: Free)
- * **[Cursor](/docs/diff-tool.md#cursor)** Windows/OSX/Linux (Cost: Free and Paid)
* **[VisualStudio](/docs/diff-tool.md#visualstudio)** Windows (Cost: Paid and free options)
+ * **[Cursor](/docs/diff-tool.md#cursor)** Windows/OSX/Linux (Cost: Free and Paid)
* **[DiffEngineViewer](/docs/diff-tool.md#diffengineviewer)** Windows/OSX/Linux (Cost: Free)
diff --git a/src/DiffEngine.Tests/DefinitionsTest.cs b/src/DiffEngine.Tests/DefinitionsTest.cs
index 4b489ada..b32079cd 100644
--- a/src/DiffEngine.Tests/DefinitionsTest.cs
+++ b/src/DiffEngine.Tests/DefinitionsTest.cs
@@ -74,12 +74,22 @@ static string GetOsSupport(OsSupport osSupport)
return builder.ToString();
}
+ ///
+ /// Both files say "keep in sync", and this is what checks it. Ordered, because the order is
+ /// the thing being kept in sync: the enum is the default resolution order (OrderReader hands
+ /// back Enum.GetValues), while the generated docs and the remainder after a
+ /// DiffEngine_ToolOrder prefix follow Definitions. IsEquivalentTo is order insensitive by
+ /// default, so the two drifted apart under a green test.
+ ///
[Test]
public async Task ToolOrderMatchesEnumOrder()
{
- var definitionsOrder = Definitions.Tools.Select(_ => _.Tool).ToList();
- var enumOrder = Enum.GetValues(typeof(DiffTool)).Cast().ToList();
- await Assert.That(definitionsOrder).IsEquivalentTo(enumOrder);
+ // Joined, because the collection assertions here are order insensitive and the order is
+ // the whole point. A string also names the first tool that differs, rather than saying the
+ // two lists have the same contents
+ var definitionsOrder = string.Join(", ", Definitions.Tools.Select(_ => _.Tool));
+ var enumOrder = string.Join(", ", Enum.GetValues(typeof(DiffTool)).Cast());
+ await Assert.That(definitionsOrder).IsEqualTo(enumOrder);
}
[Test]
diff --git a/src/DiffEngine.Tests/defaultOrder.include.md b/src/DiffEngine.Tests/defaultOrder.include.md
index ab54a8bd..829cd918 100644
--- a/src/DiffEngine.Tests/defaultOrder.include.md
+++ b/src/DiffEngine.Tests/defaultOrder.include.md
@@ -5,9 +5,9 @@
* **[Kaleidoscope](/docs/diff-tool.md#kaleidoscope)** OSX (Cost: Paid)
* **[DeltaWalker](/docs/diff-tool.md#deltawalker)** Windows/OSX (Cost: Paid)
* **[WinMerge](/docs/diff-tool.md#winmerge)** Windows (Cost: Free with option to donate)
+ * **[TortoiseMerge](/docs/diff-tool.md#tortoisemerge)** Windows (Cost: Free)
* **[TortoiseGitMerge](/docs/diff-tool.md#tortoisegitmerge)** Windows (Cost: Free)
* **[TortoiseGitIDiff](/docs/diff-tool.md#tortoisegitidiff)** Windows (Cost: Free)
- * **[TortoiseMerge](/docs/diff-tool.md#tortoisemerge)** Windows (Cost: Free)
* **[TortoiseIDiff](/docs/diff-tool.md#tortoiseidiff)** Windows (Cost: Free)
* **[KDiff3](/docs/diff-tool.md#kdiff3)** Windows/OSX (Cost: Free)
* **[TkDiff](/docs/diff-tool.md#tkdiff)** OSX (Cost: Free)
@@ -21,6 +21,6 @@
* **[Meld](/docs/diff-tool.md#meld)** Windows/OSX/Linux (Cost: Free)
* **[SublimeMerge](/docs/diff-tool.md#sublimemerge)** Windows/OSX/Linux (Cost: Paid)
* **[VisualStudioCode](/docs/diff-tool.md#visualstudiocode)** Windows/OSX/Linux (Cost: Free)
- * **[Cursor](/docs/diff-tool.md#cursor)** Windows/OSX/Linux (Cost: Free and Paid)
* **[VisualStudio](/docs/diff-tool.md#visualstudio)** Windows (Cost: Paid and free options)
+ * **[Cursor](/docs/diff-tool.md#cursor)** Windows/OSX/Linux (Cost: Free and Paid)
* **[DiffEngineViewer](/docs/diff-tool.md#diffengineviewer)** Windows/OSX/Linux (Cost: Free)
diff --git a/src/DiffEngine/Definitions.cs b/src/DiffEngine/Definitions.cs
index 6d9db7a2..43696838 100644
--- a/src/DiffEngine/Definitions.cs
+++ b/src/DiffEngine/Definitions.cs
@@ -15,9 +15,9 @@ static Definitions() =>
Implementation.Kaleidoscope(),
Implementation.DeltaWalker(),
Implementation.WinMerge(),
+ Implementation.TortoiseMerge(),
Implementation.TortoiseGitMerge(),
Implementation.TortoiseGitIDiff(),
- Implementation.TortoiseMerge(),
Implementation.TortoiseIDiff(),
Implementation.KDiff3(),
Implementation.TkDiff(),
@@ -31,8 +31,8 @@ static Definitions() =>
Implementation.Meld(),
Implementation.SublimeMerge(),
Implementation.VisualStudioCode(),
- Implementation.Cursor(),
Implementation.VisualStudio(),
+ Implementation.Cursor(),
Implementation.DiffEngineViewer(),
];
}