hugo/tpl/lang/lang_test.go
Bjørn Erik Pedersen 3a96655592 Reduce binary size vs locale, update to CLDR v36.1
Test building with `go build -ldflags="-s -w"`

Hugo 0.86.2: 46MB
Before this commit: 77MB
After this commit: 54MB

Fixes #8839
Fixes #8841
2021-08-02 19:40:32 +02:00

107 lines
2.4 KiB
Go
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package lang
import (
"testing"
translators "github.com/gohugoio/localescompressed"
qt "github.com/frankban/quicktest"
"github.com/gohugoio/hugo/deps"
)
func TestNumFmt(t *testing.T) {
t.Parallel()
c := qt.New(t)
ns := New(&deps.Deps{}, nil)
cases := []struct {
prec int
n float64
runes string
delim string
want string
}{
{2, -12345.6789, "", "", "-12,345.68"},
{2, -12345.6789, "- . ,", "", "-12,345.68"},
{2, -12345.1234, "- . ,", "", "-12,345.12"},
{2, 12345.6789, "- . ,", "", "12,345.68"},
{0, 12345.6789, "- . ,", "", "12,346"},
{11, -12345.6789, "- . ,", "", "-12,345.67890000000"},
{2, 927.675, "- .", "", "927.68"},
{2, 1927.675, "- .", "", "1927.68"},
{2, 2927.675, "- .", "", "2927.68"},
{3, -12345.6789, "- ,", "", "-12345,679"},
{6, -12345.6789, "- , .", "", "-12.345,678900"},
{3, -12345.6789, "-|,| ", "|", "-12 345,679"},
{6, -12345.6789, "-|,| ", "|", "-12 345,678900"},
// Arabic, ar_AE
{6, -12345.6789, "- ٫ ٬", "", "-12٬345٫678900"},
{6, -12345.6789, "-|٫| ", "|", "-12 345٫678900"},
}
for _, cas := range cases {
var s string
var err error
if len(cas.runes) == 0 {
s, err = ns.FormatNumberCustom(cas.prec, cas.n)
} else {
if cas.delim == "" {
s, err = ns.FormatNumberCustom(cas.prec, cas.n, cas.runes)
} else {
s, err = ns.FormatNumberCustom(cas.prec, cas.n, cas.runes, cas.delim)
}
}
c.Assert(err, qt.IsNil)
c.Assert(s, qt.Equals, cas.want)
}
}
func TestFormatNumbers(t *testing.T) {
c := qt.New(t)
nsNn := New(&deps.Deps{}, translators.GetTranslator("nn"))
nsEn := New(&deps.Deps{}, translators.GetTranslator("en"))
pi := 3.14159265359
c.Run("FormatNumber", func(c *qt.C) {
c.Parallel()
got, err := nsNn.FormatNumber(3, pi)
c.Assert(err, qt.IsNil)
c.Assert(got, qt.Equals, "3,142")
got, err = nsEn.FormatNumber(3, pi)
c.Assert(err, qt.IsNil)
c.Assert(got, qt.Equals, "3.142")
})
c.Run("FormatPercent", func(c *qt.C) {
c.Parallel()
got, err := nsEn.FormatPercent(3, 67.33333)
c.Assert(err, qt.IsNil)
c.Assert(got, qt.Equals, "67.333%")
})
c.Run("FormatCurrency", func(c *qt.C) {
c.Parallel()
got, err := nsEn.FormatCurrency(2, "USD", 20000)
c.Assert(err, qt.IsNil)
c.Assert(got, qt.Equals, "$20,000.00")
})
c.Run("FormatAccounting", func(c *qt.C) {
c.Parallel()
got, err := nsEn.FormatAccounting(2, "USD", 20000)
c.Assert(err, qt.IsNil)
c.Assert(got, qt.Equals, "$20,000.00")
})
}