using System; using System.Collections.Generic; using Developpez.Dotnet.Collections; using NUnit.Framework; namespace Developpez.Dotnet.Tests.Collections { [TestFixture(Description = "Tests unitaires pour la classe CompareExtensions")] public class CompareExtensionsTests { [Test(Description = "Vérifie le fonctionnement de la méthode ToComparison")] public void Check_ToComparison() { IComparer comparer = Comparer.Default; Comparison comparison = comparer.ToComparison(); string a = "Foo"; string b = "Bar"; int comparerResult = comparer.Compare(a, b); int comparisonResult = comparison(a, b); Assert.AreEqual(comparerResult, comparisonResult); } [Test(Description = "Vérifie le fonctionnement de la méthode ToComparer")] public void Check_ToComparer() { Comparison comparison = (x,y) => string.Compare(x,y); IComparer comparer = comparison.ToComparer(); string a = "Foo"; string b = "Bar"; int comparerResult = comparer.Compare(a, b); int comparisonResult = comparison(a, b); Assert.AreEqual(comparerResult, comparisonResult); } [Test(Description = "Vérifie le fonctionnement de la méthode Reverse(Comparison)")] public void Check_ReverseComparison() { Comparison comparison = (x, y) => string.Compare(x, y); Comparison reverse = comparison.Reverse(); string a = "Foo"; string b = "Bar"; int comparisonResult = comparison(a, b); int reverseResult = reverse(a, b); Assert.AreEqual(comparisonResult, -reverseResult); } [Test(Description = "Vérifie le fonctionnement de la méthode Reverse(IComparer)")] public void Check_ReverseComparer() { IComparer comparer = Comparer.Default; IComparer reverse = comparer.Reverse(); string a = "Foo"; string b = "Bar"; int comparerResult = comparer.Compare(a, b); int reverseResult = reverse.Compare(a, b); Assert.AreEqual(comparerResult, -reverseResult); } [Test(Description = "Vérifie le fonctionnement de la méthode Min")] public void Check_Min() { const int x = 42; const int y = 55; const int expected = x; int actual = Comparer.Default.Min(x, y); Assert.AreEqual(expected, actual); } [Test(Description = "Vérifie le fonctionnement de la méthode Max")] public void Check_Max() { const int x = 42; const int y = 18; const int expected = x; int actual = Comparer.Default.Max(x, y); Assert.AreEqual(expected, actual); } } }