UniqueItems Constraint
UniqueItemsConstraint tests that an IEnumerable contains no duplicate items.
Usage
Is.Unique
Modifiers
.IgnoreCase
.IgnoreWhiteSpace // NUnit 4.2+
.Using(IComparer comparer)
.Using(IEqualityComparer comparer)
.Using<T>(IComparer<T> comparer)
.Using<T>(IEqualityComparer<T> comparer)
.Using<T>(Comparison<T> comparer)
.Using<T>(Func<T, T, bool> comparer)
.UsingPropertiesComparer() // NUnit 4.1+
Examples
[Test]
public void UniqueItemsConstraint_Examples()
{
int[] numbers = { 1, 2, 3, 4, 5 };
string[] names = { "Alice", "Bob", "Carol" };
// Basic uniqueness check
Assert.That(numbers, Is.Unique);
Assert.That(names, Is.Unique);
// Fails: contains duplicates
Assert.That(new[] { 1, 2, 2, 3 }, Is.Not.Unique);
// Case-insensitive uniqueness
Assert.That(new[] { "Alice", "ALICE" }, Is.Unique); // Passes: different case
Assert.That(new[] { "Alice", "ALICE" }, Is.Not.Unique.IgnoreCase); // Passes: same when ignoring case
}
Notes
- An empty collection is considered unique (no duplicates possible).
- Duplicates are determined using the default equality comparer unless a custom comparer is specified.
See Also
- CollectionEquivalent Constraint - Test collection equivalence
- AllItems Constraint - Test all items against a constraint