public void CompareToTest() { // Higher powers of the same prime are greater Assert.That((new PrimeFactors(4)).CompareTo(new PrimeFactors(2)) > 0); // Higher primes are greater Assert.That((new PrimeFactors(3)).CompareTo(new PrimeFactors(2)) > 0); // Equality semantics for (var i = 1; i < 1000; i++) { var iFactors = new PrimeFactors(i); for (var j = 1; j < 1000; j++) { var jFactors = new PrimeFactors(j); if (i == j) { Assert.That(iFactors.CompareTo(jFactors), Is.EqualTo(0), "Prime Factors of equal numbers must compare equal."); } else { Assert.That(iFactors.CompareTo(jFactors), Is.Not.EqualTo(0), "Prime Factors of distinct numbers must compare not-equal."); } } } }