We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
2 parents 2a193b5 + c27309c commit 1d3007fCopy full SHA for 1d3007f
2 files changed
strings/stringsutil.go
@@ -245,3 +245,11 @@ func LongestRepeatingSequence(s string) LongestSequence {
245
}
246
return LongestSequence{Sequence: res, Count: resCount}
247
248
+
249
+// Truncate a string to max length
250
+func Truncate(data string, maxSize int) string {
251
+ if maxSize >= 0 && len(data) > maxSize {
252
+ return data[:maxSize]
253
+ }
254
+ return data
255
+}
strings/stringsutil_test.go
@@ -288,3 +288,26 @@ func TestLongestRepeatingSequence(t *testing.T) {
288
require.Equalf(t, test.expected, result.Sequence, "test: %s, expected %q, got: %s", test.s, test.expected, result.Sequence)
289
290
291
292
+type truncateTest struct {
293
+ test string
294
+ maxSize int
295
+ result string
296
297
298
+func TestTruncate(t *testing.T) {
299
+ tests := []truncateTest{
300
+ {test: "abcd", maxSize: -1, result: "abcd"},
301
+ {test: "abcd", maxSize: 0, result: ""},
302
+ {test: "abcde", maxSize: 3, result: "abc"},
303
+ {test: "abcdef", maxSize: 8, result: "abcdef"},
304
+ {test: "abcdefg", maxSize: 6, result: "abcdef"},
305
+ {test: "aaaa", maxSize: 20, result: "aaaa"},
306
+ {test: "aaaa", maxSize: 4, result: "aaaa"},
307
308
309
+ for _, test := range tests {
310
+ res := Truncate(test.test, test.maxSize)
311
+ require.Equalf(t, test.result, res, "test:%s maxsize: %d result: %s", test.test, test.maxSize, res)
312
313
0 commit comments