mirror of
https://github.com/photoprism/photoprism.git
synced 2025-12-12 00:34:13 +01:00
59 lines
1.4 KiB
Go
59 lines
1.4 KiB
Go
package txt
|
|
|
|
import (
|
|
"strings"
|
|
"testing"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
)
|
|
|
|
func TestClip(t *testing.T) {
|
|
t.Run("ASCII", func(t *testing.T) {
|
|
assert.Equal(t, "ASCI", Clip("ASCII", 4))
|
|
})
|
|
t.Run("ShortEnough", func(t *testing.T) {
|
|
assert.Equal(t, "I'm ä lazy BRoWN fox!", Clip("I'm ä lazy BRoWN fox!", 128))
|
|
})
|
|
t.Run("Clip", func(t *testing.T) {
|
|
assert.Equal(t, "I'm ä", Clip("I'm ä lazy BRoWN fox!", 6))
|
|
assert.Equal(t, "I'm ä l", Clip("I'm ä lazy BRoWN fox!", 7))
|
|
})
|
|
t.Run("TrimSpace", func(t *testing.T) {
|
|
assert.Equal(t, "abc", Clip(" abc ty3q5y4y46uy", 4))
|
|
})
|
|
t.Run("Empty", func(t *testing.T) {
|
|
assert.Equal(t, "", Clip("", -1))
|
|
})
|
|
}
|
|
|
|
func BenchmarkClipRunesASCII(b *testing.B) {
|
|
s := strings.Repeat("abc def ghi ", 20) // ASCII
|
|
b.ReportAllocs()
|
|
for b.Loop() {
|
|
_ = Clip(s, 50)
|
|
}
|
|
}
|
|
|
|
func BenchmarkClipRunesUTF8(b *testing.B) {
|
|
s := strings.Repeat("Grüße 世", 20) // non-ASCII runes
|
|
b.ReportAllocs()
|
|
for b.Loop() {
|
|
_ = Clip(s, 50)
|
|
}
|
|
}
|
|
|
|
func TestShorten(t *testing.T) {
|
|
t.Run("ShortEnough", func(t *testing.T) {
|
|
assert.Equal(t, "fox!", Shorten("fox!", 6, "..."))
|
|
})
|
|
t.Run("CustomSuffix", func(t *testing.T) {
|
|
assert.Equal(t, "I'm ä...", Shorten("I'm ä lazy BRoWN fox!", 8, "..."))
|
|
})
|
|
t.Run("DefaultSuffix", func(t *testing.T) {
|
|
assert.Equal(t, "I'm…", Shorten("I'm ä lazy BRoWN fox!", 7, ""))
|
|
})
|
|
t.Run("Empty", func(t *testing.T) {
|
|
assert.Equal(t, "", Shorten("", -1, ""))
|
|
})
|
|
}
|