package proto import "testing" // A version is newer only when it is a higher dotted number: never for the // same, an older one, or what is not a version at all. func TestVersionNewer(t *testing.T) { for _, c := range []struct { a, b string want bool }{ {"0.2.5", "0.2.4", true}, {"0.2.10", "0.2.9", true}, {"0.3.0", "0.2.99", true}, {"1.0", "0.9.9", true}, {"0.2.4", "0.2.4", false}, {"0.2.3", "0.2.4", false}, {"0.2", "0.2.0", false}, {"v0.2.5", "0.2.4", true}, {"", "0.2.4", false}, {"dev", "0.2.4", false}, {"0.2.5", "dev", false}, {"0.2.5", "", false}, {"0.2.5-rc1", "0.2.4", true}, } { if got := VersionNewer(c.a, c.b); got != c.want { t.Errorf("VersionNewer(%q, %q) = %v, want %v", c.a, c.b, got, c.want) } } }