code.gitea.io/gitea@v1.22.3/modules/base/natural_sort_test.go (about) 1 // Copyright 2017 The Gitea Authors. All rights reserved. 2 // SPDX-License-Identifier: MIT 3 4 package base 5 6 import ( 7 "testing" 8 9 "github.com/stretchr/testify/assert" 10 ) 11 12 func TestNaturalSortLess(t *testing.T) { 13 testLess := func(s1, s2 string) { 14 assert.True(t, NaturalSortLess(s1, s2), "s1<s2 should be true: s1=%q, s2=%q", s1, s2) 15 assert.False(t, NaturalSortLess(s2, s1), "s2<s1 should be false: s1=%q, s2=%q", s1, s2) 16 } 17 testEqual := func(s1, s2 string) { 18 assert.False(t, NaturalSortLess(s1, s2), "s1<s2 should be false: s1=%q, s2=%q", s1, s2) 19 assert.False(t, NaturalSortLess(s2, s1), "s2<s1 should be false: s1=%q, s2=%q", s1, s2) 20 } 21 22 testEqual("", "") 23 testLess("", "a") 24 testLess("", "1") 25 26 testLess("v1.2", "v1.2.0") 27 testLess("v1.2.0", "v1.10.0") 28 testLess("v1.20.0", "v1.29.0") 29 testEqual("v1.20.0", "v1.20.0") 30 31 testLess("a", "A") 32 testLess("a", "B") 33 testLess("A", "b") 34 testLess("A", "ab") 35 36 testLess("abc", "bcd") 37 testLess("a-1-a", "a-1-b") 38 testLess("2", "12") 39 40 testLess("cafe", "café") 41 testLess("café", "caff") 42 43 testLess("A-2", "A-11") 44 testLess("0.txt", "1.txt") 45 }