hugo

Fork of github.com/gohugoio/hugo with reverse pagination support

git clone git://git.shimmy1996.com/hugo.git

lang_test.go (3391B)

    1 package lang
    2 
    3 import (
    4 	"testing"
    5 
    6 	qt "github.com/frankban/quicktest"
    7 	"github.com/gohugoio/hugo/deps"
    8 	translators "github.com/gohugoio/localescompressed"
    9 )
   10 
   11 func TestNumFmt(t *testing.T) {
   12 	t.Parallel()
   13 	c := qt.New(t)
   14 
   15 	ns := New(&deps.Deps{}, nil)
   16 
   17 	cases := []struct {
   18 		prec  int
   19 		n     float64
   20 		runes string
   21 		delim string
   22 
   23 		want string
   24 	}{
   25 		{2, -12345.6789, "", "", "-12,345.68"},
   26 		{2, -12345.6789, "- . ,", "", "-12,345.68"},
   27 		{2, -12345.1234, "- . ,", "", "-12,345.12"},
   28 
   29 		{2, 12345.6789, "- . ,", "", "12,345.68"},
   30 		{0, 12345.6789, "- . ,", "", "12,346"},
   31 		{11, -12345.6789, "- . ,", "", "-12,345.67890000000"},
   32 
   33 		{2, 927.675, "- .", "", "927.68"},
   34 		{2, 1927.675, "- .", "", "1927.68"},
   35 		{2, 2927.675, "- .", "", "2927.68"},
   36 
   37 		{3, -12345.6789, "- ,", "", "-12345,679"},
   38 		{6, -12345.6789, "- , .", "", "-12.345,678900"},
   39 
   40 		{3, -12345.6789, "-|,| ", "|", "-12 345,679"},
   41 		{6, -12345.6789, "-|,| ", "|", "-12 345,678900"},
   42 
   43 		// Arabic, ar_AE
   44 		{6, -12345.6789, "‏- ٫ ٬", "", "‏-12٬345٫678900"},
   45 		{6, -12345.6789, "‏-|٫| ", "|", "‏-12 345٫678900"},
   46 	}
   47 
   48 	for _, cas := range cases {
   49 		var s string
   50 		var err error
   51 
   52 		if len(cas.runes) == 0 {
   53 			s, err = ns.FormatNumberCustom(cas.prec, cas.n)
   54 		} else {
   55 			if cas.delim == "" {
   56 				s, err = ns.FormatNumberCustom(cas.prec, cas.n, cas.runes)
   57 			} else {
   58 				s, err = ns.FormatNumberCustom(cas.prec, cas.n, cas.runes, cas.delim)
   59 			}
   60 		}
   61 
   62 		c.Assert(err, qt.IsNil)
   63 		c.Assert(s, qt.Equals, cas.want)
   64 	}
   65 }
   66 
   67 func TestFormatNumbers(t *testing.T) {
   68 
   69 	c := qt.New(t)
   70 
   71 	nsNn := New(&deps.Deps{}, translators.GetTranslator("nn"))
   72 	nsEn := New(&deps.Deps{}, translators.GetTranslator("en"))
   73 	pi := 3.14159265359
   74 
   75 	c.Run("FormatNumber", func(c *qt.C) {
   76 		c.Parallel()
   77 		got, err := nsNn.FormatNumber(3, pi)
   78 		c.Assert(err, qt.IsNil)
   79 		c.Assert(got, qt.Equals, "3,142")
   80 
   81 		got, err = nsEn.FormatNumber(3, pi)
   82 		c.Assert(err, qt.IsNil)
   83 		c.Assert(got, qt.Equals, "3.142")
   84 	})
   85 
   86 	c.Run("FormatPercent", func(c *qt.C) {
   87 		c.Parallel()
   88 		got, err := nsEn.FormatPercent(3, 67.33333)
   89 		c.Assert(err, qt.IsNil)
   90 		c.Assert(got, qt.Equals, "67.333%")
   91 	})
   92 
   93 	c.Run("FormatCurrency", func(c *qt.C) {
   94 		c.Parallel()
   95 		got, err := nsEn.FormatCurrency(2, "USD", 20000)
   96 		c.Assert(err, qt.IsNil)
   97 		c.Assert(got, qt.Equals, "$20,000.00")
   98 	})
   99 
  100 	c.Run("FormatAccounting", func(c *qt.C) {
  101 		c.Parallel()
  102 		got, err := nsEn.FormatAccounting(2, "USD", 20000)
  103 		c.Assert(err, qt.IsNil)
  104 		c.Assert(got, qt.Equals, "$20,000.00")
  105 	})
  106 
  107 }
  108 
  109 // Issue 9446
  110 func TestLanguageKeyFormat(t *testing.T) {
  111 
  112 	c := qt.New(t)
  113 
  114 	nsUnderscoreUpper := New(&deps.Deps{}, translators.GetTranslator("es_ES"))
  115 	nsUnderscoreLower := New(&deps.Deps{}, translators.GetTranslator("es_es"))
  116 	nsHyphenUpper := New(&deps.Deps{}, translators.GetTranslator("es-ES"))
  117 	nsHyphenLower := New(&deps.Deps{}, translators.GetTranslator("es-es"))
  118 	pi := 3.14159265359
  119 
  120 	c.Run("FormatNumber", func(c *qt.C) {
  121 		c.Parallel()
  122 		got, err := nsUnderscoreUpper.FormatNumber(3, pi)
  123 		c.Assert(err, qt.IsNil)
  124 		c.Assert(got, qt.Equals, "3,142")
  125 
  126 		got, err = nsUnderscoreLower.FormatNumber(3, pi)
  127 		c.Assert(err, qt.IsNil)
  128 		c.Assert(got, qt.Equals, "3,142")
  129 
  130 		got, err = nsHyphenUpper.FormatNumber(3, pi)
  131 		c.Assert(err, qt.IsNil)
  132 		c.Assert(got, qt.Equals, "3,142")
  133 
  134 		got, err = nsHyphenLower.FormatNumber(3, pi)
  135 		c.Assert(err, qt.IsNil)
  136 		c.Assert(got, qt.Equals, "3,142")
  137 
  138 	})
  139 
  140 }