diff options
author | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-08-02 19:40:11 +0300 |
---|---|---|
committer | Bjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com> | 2021-08-02 19:47:38 +0300 |
commit | af10ffbfd1170fd8efc774225684511276987eba (patch) | |
tree | 92bf1b9e9996b84f2277333b246bac47fffa0f74 /locales_test.go | |
parent | 2ca00f08c07cf6cf27a6524af04c78c4f492bfa7 (diff) |
Initial version
Diffstat (limited to 'locales_test.go')
-rw-r--r-- | locales_test.go | 91 |
1 files changed, 91 insertions, 0 deletions
diff --git a/locales_test.go b/locales_test.go new file mode 100644 index 0000000..909a58d --- /dev/null +++ b/locales_test.go @@ -0,0 +1,91 @@ +package localescompressed + +import ( + "context" + "errors" + "testing" + "time" + + "github.com/bep/workers" + qt "github.com/frankban/quicktest" + "github.com/gohugoio/locales" + "github.com/gohugoio/locales/currency" + "github.com/gohugoio/locales/en" + "github.com/gohugoio/locales/nn" +) + +func TestGetTranslator(t *testing.T) { + c := qt.New(t) + + d, _ := time.Parse("2006-Jan-02", "2018-Jan-06") + + assertSame := func(c *qt.C, tr1, tr2 locales.Translator) { + num := 120.842 + precision := uint64(2) + curr := currency.USD + d := time.Now() + + c.Assert(tr1.CardinalPluralRule(num, precision), qt.Equals, tr2.CardinalPluralRule(num, precision)) + c.Assert(tr1.FmtNumber(num, precision), qt.Equals, tr2.FmtNumber(num, precision)) + c.Assert(tr1.FmtPercent(num, precision), qt.Equals, tr2.FmtPercent(num, precision)) + + c.Assert(tr1.FmtAccounting(num, precision, curr), qt.Equals, tr2.FmtAccounting(num, precision, curr)) + c.Assert(tr1.FmtCurrency(num, precision, curr), qt.Equals, tr2.FmtCurrency(num, precision, curr)) + + c.Assert(tr1.FmtDateFull(d), qt.Equals, tr2.FmtDateFull(d)) + c.Assert(tr1.FmtDateLong(d), qt.Equals, tr2.FmtDateLong(d)) + c.Assert(tr1.FmtDateMedium(d), qt.Equals, tr2.FmtDateMedium(d)) + c.Assert(tr1.FmtDateShort(d), qt.Equals, tr2.FmtDateShort(d)) + + c.Assert(tr1.FmtTimeFull(d), qt.Equals, tr2.FmtTimeFull(d)) + c.Assert(tr1.FmtTimeLong(d), qt.Equals, tr2.FmtTimeLong(d)) + c.Assert(tr1.FmtTimeMedium(d), qt.Equals, tr2.FmtTimeMedium(d)) + c.Assert(tr1.FmtTimeShort(d), qt.Equals, tr2.FmtTimeShort(d)) + + c.Assert(tr1.WeekdayAbbreviated(d.Weekday()), qt.Equals, tr2.WeekdayAbbreviated(d.Weekday())) + c.Assert(tr1.MonthAbbreviated(d.Month()), qt.Equals, tr2.MonthAbbreviated(d.Month())) + } + + c.Run("Basic", func(c *qt.C) { + tnn := GetTranslator("nn_NO") + c.Assert(tnn, qt.Not(qt.IsNil)) + c.Assert(tnn.MonthWide(d.Month()), qt.Equals, "januar") + }) + + // Sample tests; verify that the compression script works correctly. + c.Run("Sample", func(c *qt.C) { + assertSame(c, GetTranslator("en"), en.New()) + assertSame(c, GetTranslator("nn"), nn.New()) + }) + + c.Run("Para", func(c *qt.C) { + p := workers.New(4) + r, _ := p.Start(context.Background()) + + for i := 0; i < 10; i++ { + for _, locale := range []string{"nn_NO", "nn", "nyn", "sg", "se", "rwk", "mas"} { + locale := locale + r.Run(func() error { + tnn := GetTranslator(locale) + if tnn == nil { + return errors.New("translator is nil") + } + + if tnn.MonthWide(d.Month()) == "" { + return errors.New("translator is invalid") + } + + return nil + }) + } + } + }) +} + +func TestGetCurrency(t *testing.T) { + c := qt.New(t) + c.Assert(GetCurrency("NOK"), qt.Equals, currency.NOK) + c.Assert(GetCurrency("USD"), qt.Equals, currency.USD) + c.Assert(GetCurrency("usd"), qt.Equals, currency.USD) + c.Assert(GetCurrency("foo"), qt.Equals, currency.Type(-1)) +} |