Sets
ReadOnlySetAssertions<TSet, T> is available for IReadOnlySet<T> and HashSet<T> via .Should(). It extends EnumerableAssertions<TEnumerable, T>, so all enumerable assertions are available too.
Set Comparison
Comparisons use set semantics — order and duplicates are ignored, and membership is judged by the set's own comparer:
var set = new HashSet<int> { 1, 2, 3 };
set.Should().SetEquals(3, 2, 1);
set.Should().IsSupersetOf(1, 2);
set.Should().IsSubsetOf(1, 2, 3, 4);
See SetEquals, IsSupersetOf and IsSubsetOf.
Chaining
Chainable methods return a ReadOnlySetAssertionsChain<TSet, T>:
set.Should()
.IsSupersetOf(1, 2)
.And.IsSubsetOf(1, 2, 3, 4);
All object-level assertions are also available:
HashSet<int>? maybeNull = GetSet();
maybeNull.Should().NotBeNull().And.SetEquals(1, 2, 3);