public void VersionSortTest() { SemanticVersion[] versions = new SemanticVersion[] { new SemanticVersion(1, 0, 0, null, null), new SemanticVersion(0, 0, 0, null, null), new SemanticVersion(3, 0, 0, null, null) }; Assert.AreEqual(0, versions.OrderBy(x => x).FirstOrDefault().Major); Assert.AreEqual(3, versions.OrderByDescending(x => x).FirstOrDefault().Major); }
public void MetadataDoesNotInfluencePrecedence() { var versions = new SemanticVersion[] { new SemanticVersion(1, 0, 0, null, metadata: new VersionMetadata("2")), new SemanticVersion(1, 0, 0, null, metadata: new VersionMetadata("1")), new SemanticVersion(1, 0, 0, null, metadata: new VersionMetadata("3")), new SemanticVersion(1, 0, 0, null, metadata: new VersionMetadata("b")), new SemanticVersion(1, 0, 0, null, metadata: new VersionMetadata("a")), new SemanticVersion(1, 0, 0, null, metadata: new VersionMetadata("c")), new SemanticVersion(1, 0, 0, null, metadata: new VersionMetadata("c.1")), }; Assert.Equal(versions, versions.OrderByDescending(x => x)); Assert.Equal(versions, versions.OrderBy(x => x)); }
public void TestSorting() { var versions = new SemanticVersion[] { SemanticVersion.Parse("1.0.0"), SemanticVersion.Parse("1.0.0+debug"), SemanticVersion.Parse("4.3.5"), SemanticVersion.Parse("4.3.2-beta1+fix2"), SemanticVersion.Parse("3.0.0"), SemanticVersion.Parse("4.3.2-beta1+fix1"), SemanticVersion.Parse("4.3.0"), SemanticVersion.Parse("2.0.0"), SemanticVersion.Parse("4.3.1"), SemanticVersion.Parse("4.3.2-beta1"), SemanticVersion.Parse("4.1.0"), SemanticVersion.Parse("4.3.2-beta2"), SemanticVersion.Parse("5.0.0"), }; var sorted = new SemanticVersion[] { SemanticVersion.Parse("1.0.0"), SemanticVersion.Parse("1.0.0+debug"), SemanticVersion.Parse("2.0.0"), SemanticVersion.Parse("3.0.0"), SemanticVersion.Parse("4.1.0"), SemanticVersion.Parse("4.3.0"), SemanticVersion.Parse("4.3.1"), SemanticVersion.Parse("4.3.2-beta1"), SemanticVersion.Parse("4.3.2-beta1+fix1"), SemanticVersion.Parse("4.3.2-beta1+fix2"), SemanticVersion.Parse("4.3.2-beta2"), SemanticVersion.Parse("4.3.5"), SemanticVersion.Parse("5.0.0"), }; Assert.IsTrue(versions.OrderBy(x => x).SequenceEqual(sorted)); }
public void Create_Chronology_Valid_Disordered() { var ch = new SemanticVersion[] { new SemanticVersion(2, 2), new SemanticVersion(1, 0), new SemanticVersion(1, 1), }; var mv = new MonotonicVersioner(ch); Assert.AreEqual(2, mv.Compatibility); Assert.AreEqual(2, mv.Release); Assert.AreEqual(ch[0], mv.Latest); Assert.AreEqual(ch[2], mv.LatestVersions[1]); Assert.AreEqual(ch[0], mv.LatestVersions[2]); Assert.AreEqual(2, mv.LatestVersions.Keys.Count()); Assert.IsTrue(mv.Chronology.SequenceEqual( ch.OrderBy(sv => sv.Minor) )); }