using Xunit; namespace StellaOps.VersionComparison.Tests; public partial class DebianVersionComparerTests { public static TheoryData DebianComparisonCases => new() { // Epoch precedence { "0:1.0-1", "1:0.1-1", -1 }, { "1:1.0-1", "0:9.9-9", 1 }, { "1.0-1", "0:1.0-1", 0 }, // Missing epoch = 0 { "2:1.0-1", "1:9.9-9", 1 }, // Upstream version ordering { "1.9-1", "1.10-1", -1 }, { "1.02-1", "1.2-1", 0 }, // Leading zeros ignored { "1.0-1", "1.0.1-1", -1 }, // Tilde pre-releases { "1.0~rc1-1", "1.0-1", -1 }, { "1.0~alpha-1", "1.0~beta-1", -1 }, { "2.0~rc1", "2.0", -1 }, { "1.0~-1", "1.0-1", -1 }, // Debian revision { "1.0-1", "1.0-2", -1 }, { "1.0-1ubuntu1", "1.0-1ubuntu2", -1 }, { "1.0-1+deb11u1", "1.0-1+deb11u2", -1 }, // Ubuntu backport patterns { "1.0-1", "1.0-1ubuntu0.1", -1 }, { "1.0-1ubuntu0.1", "1.0-1ubuntu0.2", -1 }, { "1.0-1build1", "1.0-1build2", -1 }, // Native packages (no revision) { "1.0", "1.0-1", -1 }, { "1.1", "1.0-99", 1 }, }; }