public void ToVersionRangeWorksCorrectly(KspVersion version, KspVersionRange expectedRange) { // Act var result = version.ToVersionRange(); // Assert Assert.AreEqual(expectedRange, result); }
static CompatibleVersionDialog() { options = ServiceLocator.Container.Resolve <IKspBuildMap>().KnownVersions; // C# won't let us foreach over an array while modifying it for (int i = options.Count - 1; i >= 0; --i) { KspVersion v = options[i]; // From GUI/CompatibleKspVersionsDialog.cs KspVersion fullKnownVersion = v.ToVersionRange().Lower.Value; KspVersion toAdd = new KspVersion(fullKnownVersion.Major, fullKnownVersion.Minor); if (!options.Contains(toAdd)) { options.Add(toAdd); } } }
public override bool SingleVersionsCompatible(KspVersion gameVersion, CkanModule module) { var gameVersionRange = gameVersion.ToVersionRange(); var moduleRange = KspVersionRange.Any; if (module.ksp_version != null) { moduleRange = module.ksp_version.ToVersionRange(); } else if (module.ksp_version_min != null || module.ksp_version_max != null) { if (module.ksp_version_min != null && module.ksp_version_max != null) { var minRange = module.ksp_version_min.ToVersionRange(); var maxRange = module.ksp_version_max.ToVersionRange(); if (minRange.Lower.Value <= maxRange.Upper.Value) { moduleRange = new KspVersionRange(minRange.Lower, maxRange.Upper); } else { log.WarnFormat("{0} is not less or equal to {1}", module.ksp_version_min, module.ksp_version_max); return(false); } } else if (module.ksp_version_min != null) { var minRange = module.ksp_version_min.ToVersionRange(); moduleRange = new KspVersionRange(minRange.Lower, KspVersionBound.Unbounded); } else if (module.ksp_version_max != null) { var maxRange = module.ksp_version_max.ToVersionRange(); moduleRange = new KspVersionRange(KspVersionBound.Unbounded, maxRange.Upper); } } else { return(true); } return(gameVersionRange.IntersectWith(moduleRange) != null); }
public bool Compatible(KspVersion gameVersion, CkanModule module) { var gameVersionRange = gameVersion.ToVersionRange(); var moduleRange = KspVersionRange.Any; if (module.ksp_version != null) { moduleRange = module.ksp_version.ToVersionRange(); } else if (module.ksp_version_min != null || module.ksp_version_max != null) { if (module.ksp_version_min != null && module.ksp_version_max != null) { if (module.ksp_version_min <= module.ksp_version_max) { var minRange = module.ksp_version_min.ToVersionRange(); var maxRange = module.ksp_version_max.ToVersionRange(); moduleRange = new KspVersionRange(minRange.Lower, maxRange.Upper); } else { return(false); } } else if (module.ksp_version_min != null) { var minRange = module.ksp_version_min.ToVersionRange(); moduleRange = new KspVersionRange(minRange.Lower, KspVersionBound.Unbounded); } else if (module.ksp_version_max != null) { var maxRange = module.ksp_version_max.ToVersionRange(); moduleRange = new KspVersionRange(KspVersionBound.Unbounded, maxRange.Upper); } } else { return(true); } return(moduleRange.IsSupersetOf(gameVersionRange)); }