1
0
mirror of https://github.com/taigrr/wtf synced 2025-01-18 04:03:14 -08:00

Adding twitch module to display top streams (#805)

This commit is contained in:
Bjoern Weidlich
2019-12-30 19:20:54 -08:00
committed by Chris Cummer
parent fa0d8761ae
commit 86b32b3f9f
9 changed files with 256 additions and 0 deletions

View File

@@ -2,6 +2,9 @@ package utils
import (
"fmt"
"golang.org/x/text/language"
"golang.org/x/text/message"
"math"
"strings"
"github.com/rivo/tview"
@@ -72,3 +75,13 @@ func Truncate(src string, maxLen int, withEllipse bool) string {
}
return src
}
// Formats number as string with 1000 delimiters and, if necessary, rounds it to 2 decimals
func PrettyNumber(number float64) string {
p := message.NewPrinter(language.English)
if number == math.Trunc(number) {
return p.Sprintf("%.0f", number)
} else {
return p.Sprintf("%.2f", number)
}
}

View File

@@ -43,3 +43,17 @@ func Test_Truncate(t *testing.T) {
// Only supports non-ellipsed emoji
assert.Equal(t, "🌮🚙", Truncate("🌮🚙💥👾", 2, false))
}
func Test_PrettyNumber(t *testing.T) {
assert.Equal(t, "1,000,000", PrettyNumber(1000000))
assert.Equal(t, "1,000,000.99", PrettyNumber(1000000.99))
assert.Equal(t, "1,000,000", PrettyNumber(1000000.00))
assert.Equal(t, "100,000", PrettyNumber(100000))
assert.Equal(t, "100,000.01", PrettyNumber(100000.009))
assert.Equal(t, "10,000", PrettyNumber(10000))
assert.Equal(t, "1,000", PrettyNumber(1000))
assert.Equal(t, "1,000", PrettyNumber(1000))
assert.Equal(t, "100", PrettyNumber(100))
assert.Equal(t, "0", PrettyNumber(0))
assert.Equal(t, "0.10", PrettyNumber(0.1))
}