public void CompareTo_Equals_NotEqual()
        {
            var semver1 = new SemanticVersion(1, 0, 0);
            var semver2 = semver1.IncrementPatch();

            Assert.IsTrue(!semver1.Equals(semver2));
        }
        public void Increment_Patch_Version()
        {
            var versionString = "1.2.3-RC.1";
            var semver = new SemanticVersion(versionString);

            // test with a version string that isn't kept
            var incrementVersion = semver.IncrementPatch();

            Assert.AreEqual<uint>(1, incrementVersion.Major);
            Assert.AreEqual<uint>(2, incrementVersion.Minor);
            Assert.AreEqual<uint>(4, incrementVersion.Patch);
            Assert.IsTrue(string.IsNullOrWhiteSpace(incrementVersion.PreReleaseIdentifier));

            // redeclare -> this time keep the prerelease identifier
            incrementVersion = semver.IncrementPatch(true);

            Assert.AreEqual<uint>(1, incrementVersion.Major);
            Assert.AreEqual<uint>(2, incrementVersion.Minor);
            Assert.AreEqual<uint>(4, incrementVersion.Patch);
            Assert.AreEqual<string>("RC.1", incrementVersion.PreReleaseIdentifier);

            // test that the original version was unaffected
            Assert.AreEqual<uint>(1, semver.Major);
            Assert.AreEqual<uint>(2, semver.Minor);
            Assert.AreEqual<uint>(3, semver.Patch);
            Assert.AreEqual<string>("RC.1", semver.PreReleaseIdentifier);
        }