// SPDX-License-Identifier: MIT package contract import "testing" func TestCompareVersions(t *testing.T) { cases := []struct { a, b string want int }{ {"1.0.0", "1.0.0", 0}, {"1.0.1", "1.0.0", 1}, {"1.9.0", "1.10.0", -1}, {"2.0.0", "1.99.99", 1}, {"1.0.0-rc.1", "1.0.0", -1}, {"1.0.0", "1.0.0-rc.1", 1}, {"1.0.0-rc.2", "1.0.0-rc.10", -1}, {"1.0.0-alpha", "1.0.0-alpha.1", -1}, {"1.0.0-1", "1.0.0-a", -1}, {"0.0.0-dev.abc", "0.0.1", -1}, } for _, c := range cases { if got := CompareVersions(c.a, c.b); got != c.want { t.Errorf("CompareVersions(%q, %q) = %d, want %d", c.a, c.b, got, c.want) } if got := CompareVersions(c.b, c.a); got != -c.want { t.Errorf("CompareVersions(%q, %q) = %d, want %d", c.b, c.a, got, -c.want) } } }