Skip to content

Add IEqualityComparer and Func predicate overloads to equality assertions#196

Merged
MrKWatkins merged 3 commits intomainfrom
copilot/add-equal-assertion-overloads
Feb 21, 2026
Merged

Add IEqualityComparer and Func predicate overloads to equality assertions#196
MrKWatkins merged 3 commits intomainfrom
copilot/add-equal-assertion-overloads

Conversation

Copy link
Contributor

Copilot AI commented Feb 21, 2026

All equality assertions (Equal, NotEqual, SequenceEqual, NotSequenceEqual) now support custom comparison via IEqualityComparer<T> or Func<T?, T?, bool> overloads.

Changes

  • ObjectAssertions<T>Equal and NotEqual overloads with comparer/predicate
  • EnumerableAssertions<TEnumerable, T>SequenceEqual and NotSequenceEqual overloads; extracted SequenceEqualCore to share logic across overloads
  • ReadOnlySpanAssertions<T> — All four span and IEnumerable variants of SequenceEqual/NotSequenceEqual; extracted SequenceEqualEnumerableCore/NotSequenceEqualEnumerableCore

16 new public methods, 28 new tests (381 → 409).

Usage

// IEqualityComparer overload
"hello".Should().Equal("HELLO", StringComparer.OrdinalIgnoreCase);

// Func predicate overload
"hello".Should().Equal("HELLO", (a, b) => string.Equals(a, b, StringComparison.OrdinalIgnoreCase));

// SequenceEqual with comparer
new[] { "a", "b" }.Should().SequenceEqual(new[] { "A", "B" }, StringComparer.OrdinalIgnoreCase);

💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more Copilot coding agent tips in the docs.

Copilot AI and others added 2 commits February 21, 2026 13:01
Copilot AI changed the title [WIP] Add overloads for Equal assertions with custom comparers Add IEqualityComparer and Func predicate overloads to equality assertions Feb 21, 2026
Copilot AI requested a review from MrKWatkins February 21, 2026 13:07
@MrKWatkins MrKWatkins marked this pull request as ready for review February 21, 2026 13:18
@MrKWatkins MrKWatkins merged commit b121e2c into main Feb 21, 2026
6 checks passed
@MrKWatkins MrKWatkins deleted the copilot/add-equal-assertion-overloads branch February 21, 2026 13:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants