public void Compare_And_CompareTo() { for (var i = 0; i < Versions.Length - 1; i++) { var a = Versions[i]; Assert.Equal(a, a); if (a != null) { Assert.Equal(a, SemVer.Parse(a.ToString())); } Assert.False(a < null); Assert.False(a > null); Assert.False(a <= null); Assert.False(a >= null); for (var j = i + 1; j < Versions.Length; j++) { var b = Versions[j]; Assert.NotEqual(a, b); Assert.True(SemVer.Compare(a, b) < 0, $"{ a } is not smaller than { b }"); if (a != null) { Assert.True(a.CompareTo(b) < 0); } } } Assert.Equal(Versions, Versions.OrderBy(x => x, Comparer <SemVer> .Default)); }