1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48
|
// Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.
namespace System.Data.Entity.Utilities
{
using System.Linq;
using Xunit;
public class DynamicEqualityComparerLinqIntegrationTests
{
[Fact]
public void Distinct_removes_duplicates_using_provided_equality_function()
{
var values = new[] { "a", "b", "A" };
Assert.True(
new[] { "a", "b" }.SequenceEqual(
values.Distinct((a, b) => a.Equals(b, StringComparison.OrdinalIgnoreCase))));
}
[Fact]
public void Intersect_returns_intersection_using_provided_equality_function()
{
var setA = new[] { "a", "b" };
var setB = new[] { "A", "C" };
Assert.True(
new[] { "a" }.SequenceEqual(
setA.Intersect(setB, (a, b) => a.Equals(b, StringComparison.OrdinalIgnoreCase))));
}
[Fact]
public void GroupBy_groups_items_using_provided_equality_function()
{
var values = new[] { "a", "A" };
Assert.Equal(1, values.GroupBy((a, b) => a.Equals(b, StringComparison.OrdinalIgnoreCase)).Count());
}
[Fact]
public void SequenceEqual_compares_items_using_provided_equality_function()
{
var first = new[] { "a", "A" };
var second = new[] { "A", "a" };
Assert.True(first.SequenceEqual(second, (a, b) => a.Equals(b, StringComparison.OrdinalIgnoreCase)));
}
}
}
|