mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
45 lines
1.1 KiB
45 lines
1.1 KiB
// Copyright 2017 The Gitea Authors. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
|
|
package base |
|
|
|
import ( |
|
"testing" |
|
|
|
"github.com/stretchr/testify/assert" |
|
) |
|
|
|
func TestNaturalSortLess(t *testing.T) { |
|
testLess := func(s1, s2 string) { |
|
assert.True(t, NaturalSortLess(s1, s2), "s1<s2 should be true: s1=%q, s2=%q", s1, s2) |
|
assert.False(t, NaturalSortLess(s2, s1), "s2<s1 should be false: s1=%q, s2=%q", s1, s2) |
|
} |
|
testEqual := func(s1, s2 string) { |
|
assert.False(t, NaturalSortLess(s1, s2), "s1<s2 should be false: s1=%q, s2=%q", s1, s2) |
|
assert.False(t, NaturalSortLess(s2, s1), "s2<s1 should be false: s1=%q, s2=%q", s1, s2) |
|
} |
|
|
|
testEqual("", "") |
|
testLess("", "a") |
|
testLess("", "1") |
|
|
|
testLess("v1.2", "v1.2.0") |
|
testLess("v1.2.0", "v1.10.0") |
|
testLess("v1.20.0", "v1.29.0") |
|
testEqual("v1.20.0", "v1.20.0") |
|
|
|
testLess("a", "A") |
|
testLess("a", "B") |
|
testLess("A", "b") |
|
testLess("A", "ab") |
|
|
|
testLess("abc", "bcd") |
|
testLess("a-1-a", "a-1-b") |
|
testLess("2", "12") |
|
|
|
testLess("cafe", "café") |
|
testLess("café", "caff") |
|
|
|
testLess("A-2", "A-11") |
|
testLess("0.txt", "1.txt") |
|
}
|
|
|