diff options
author | Christopher Speller <crspeller@gmail.com> | 2017-07-20 15:22:49 -0700 |
---|---|---|
committer | GitHub <noreply@github.com> | 2017-07-20 15:22:49 -0700 |
commit | 58839cefb50e56ae5b157b37e9814ae83ceee70b (patch) | |
tree | 5de966481678096fc9567f74f96673b34a65127c /vendor/golang.org/x/text/internal/number/format_test.go | |
parent | e2f4492eadb5d3c58606b1fdd5774b63a07c236a (diff) | |
download | chat-58839cefb50e56ae5b157b37e9814ae83ceee70b.tar.gz chat-58839cefb50e56ae5b157b37e9814ae83ceee70b.tar.bz2 chat-58839cefb50e56ae5b157b37e9814ae83ceee70b.zip |
Upgrading server dependancies (#6984)
Diffstat (limited to 'vendor/golang.org/x/text/internal/number/format_test.go')
-rwxr-xr-x | vendor/golang.org/x/text/internal/number/format_test.go | 247 |
1 files changed, 196 insertions, 51 deletions
diff --git a/vendor/golang.org/x/text/internal/number/format_test.go b/vendor/golang.org/x/text/internal/number/format_test.go index 355a33a70..4c47bc568 100755 --- a/vendor/golang.org/x/text/internal/number/format_test.go +++ b/vendor/golang.org/x/text/internal/number/format_test.go @@ -7,7 +7,6 @@ package number import ( "fmt" "log" - "strings" "testing" "golang.org/x/text/language" @@ -37,7 +36,7 @@ func TestAppendDecimal(t *testing.T) { "-Inf": "-∞", }, }, { - pattern: "+0", + pattern: "+0;+0", test: pairs{ "0": "+0", "1": "+1", @@ -48,9 +47,10 @@ func TestAppendDecimal(t *testing.T) { "1.2": "+1", "NaN": "NaN", "-Inf": "-∞", + "Inf": "+∞", }, }, { - pattern: "0 +", + pattern: "0 +;0 +", test: pairs{ "0": "0 +", "1": "1 +", @@ -60,7 +60,10 @@ func TestAppendDecimal(t *testing.T) { }, { pattern: "0;0-", test: pairs{ - "-1": "1-", + "-1": "1-", + "NaN": "NaN", + "-Inf": "∞-", + "Inf": "∞", }, }, { pattern: "0000", @@ -149,20 +152,28 @@ func TestAppendDecimal(t *testing.T) { "123456789012": "1,23,45,67,89,012", "0.123456789": "0.123", }, + }, { + pattern: "0,00,000.###", + test: pairs{ + "0": "0,00,000", + "123456789012": "1,23,45,67,89,012", + "12.3456789": "0,00,012.345", + "0.123456789": "0,00,000.123", + }, // Support for ill-formed patterns. }, { pattern: "#", test: pairs{ - ".00": "0", - "0": "0", + ".00": "", // This is the behavior of fmt. + "0": "", // This is the behavior of fmt. "1": "1", "10.": "10", }, }, { pattern: ".#", test: pairs{ - "0": "0", + "0": "", // This is the behavior of fmt. "1": "1", "1.2": "1.2", "1.2345": "1.2", @@ -252,57 +263,174 @@ func TestAppendDecimal(t *testing.T) { }, { pattern: "#E0", test: pairs{ - "0": "0E0", - "1": "1E0", - "123.456": "1E2", + "0": "0\u202f×\u202f10⁰", + "1": "1\u202f×\u202f10⁰", + "123.456": "1\u202f×\u202f10²", }, }, { pattern: "#E+0", test: pairs{ - "0": "0E+0", - "1000": "1E+3", - "1E100": "1E+100", - "1E-100": "1E-100", + "0": "0\u202f×\u202f10⁺⁰", + "1000": "1\u202f×\u202f10⁺³", + "1E100": "1\u202f×\u202f10⁺¹⁰⁰", + "1E-100": "1\u202f×\u202f10⁻¹⁰⁰", "NaN": "NaN", "-Inf": "-∞", }, }, { pattern: "##0E00", test: pairs{ - "100": "100E00", - "12345": "10E03", - "123.456": "100E00", + "100": "100\u202f×\u202f10⁰⁰", + "12345": "10\u202f×\u202f10⁰³", + "123.456": "100\u202f×\u202f10⁰⁰", }, }, { pattern: "##0.###E00", test: pairs{ - "100": "100E00", - "12345": "12.34E03", - "123.456": "123.4E00", + "100": "100\u202f×\u202f10⁰⁰", + "12345": "12.34\u202f×\u202f10⁰³", + "123.456": "123.4\u202f×\u202f10⁰⁰", }, }, { pattern: "##0.000E00", test: pairs{ - "100": "100.0E00", - "12345": "12.34E03", - "123.456": "123.4E00", + "100": "100.0\u202f×\u202f10⁰⁰", + "12345": "12.34\u202f×\u202f10⁰³", + "123.456": "123.4\u202f×\u202f10⁰⁰", + }, + }, { + pattern: "@@E0", + test: pairs{ + "0": "0.0\u202f×\u202f10⁰", + "99": "9.9\u202f×\u202f10¹", + "0.99": "9.9\u202f×\u202f10⁻¹", + }, + }, { + pattern: "@###E00", + test: pairs{ + "0": "0\u202f×\u202f10⁰⁰", + "1": "1\u202f×\u202f10⁰⁰", + "11": "1.1\u202f×\u202f10⁰¹", + "111": "1.11\u202f×\u202f10⁰²", + "1111": "1.111\u202f×\u202f10⁰³", + "11111": "1.111\u202f×\u202f10⁰⁴", + "0.1": "1\u202f×\u202f10⁻⁰¹", + "0.11": "1.1\u202f×\u202f10⁻⁰¹", + "0.001": "1\u202f×\u202f10⁻⁰³", + }, + }, { + pattern: "*x##0", + test: pairs{ + "0": "xx0", + "10": "x10", + "100": "100", + "1000": "1000", + }, + }, { + pattern: "##0*x", + test: pairs{ + "0": "0xx", + "10": "10x", + "100": "100", + "1000": "1000", + }, + }, { + pattern: "* ###0.000", + test: pairs{ + "0": " 0.000", + "123": " 123.000", + "123.456": " 123.456", + "1234.567": "1234.567", + }, + }, { + pattern: "**0.0#######E00", + test: pairs{ + "0": "***0.0\u202f×\u202f10⁰⁰", + "10": "***1.0\u202f×\u202f10⁰¹", + "11": "***1.1\u202f×\u202f10⁰¹", + "111": "**1.11\u202f×\u202f10⁰²", + "1111": "*1.111\u202f×\u202f10⁰³", + "11111": "1.1111\u202f×\u202f10⁰⁴", + "11110": "*1.111\u202f×\u202f10⁰⁴", + "11100": "**1.11\u202f×\u202f10⁰⁴", + "11000": "***1.1\u202f×\u202f10⁰⁴", + "10000": "***1.0\u202f×\u202f10⁰⁴", + }, + }, { + pattern: "*xpre0suf", + test: pairs{ + "0": "pre0suf", + "10": "pre10suf", + }, + }, { + pattern: "*∞ pre ###0 suf", + test: pairs{ + "0": "∞∞∞ pre 0 suf", + "10": "∞∞ pre 10 suf", + "100": "∞ pre 100 suf", + "1000": " pre 1000 suf", + }, + }, { + pattern: "pre *∞###0 suf", + test: pairs{ + "0": "pre ∞∞∞0 suf", + "10": "pre ∞∞10 suf", + "100": "pre ∞100 suf", + "1000": "pre 1000 suf", + }, + }, { + pattern: "pre ###0*∞ suf", + test: pairs{ + "0": "pre 0∞∞∞ suf", + "10": "pre 10∞∞ suf", + "100": "pre 100∞ suf", + "1000": "pre 1000 suf", + }, + }, { + pattern: "pre ###0 suf *∞", + test: pairs{ + "0": "pre 0 suf ∞∞∞", + "10": "pre 10 suf ∞∞", + "100": "pre 100 suf ∞", + "1000": "pre 1000 suf ", + }, + }, { + // Take width of positive pattern. + pattern: "**###0;**-#####0x", + test: pairs{ + "0": "***0", + "-1": "*-1x", + }, + }, { + pattern: "0.00%", + test: pairs{ + "0.1": "10.00%", + }, + }, { + pattern: "0.##%", + test: pairs{ + "0.1": "10%", + "0.11": "11%", + "0.111": "11.1%", + "0.1111": "11.11%", + "0.11111": "11.11%", + }, + }, { + pattern: "‰ 0.0#", + test: pairs{ + "0.1": "‰ 100.0", + "0.11": "‰ 110.0", + "0.111": "‰ 111.0", + "0.1111": "‰ 111.1", + "0.11111": "‰ 111.11", + "0.111111": "‰ 111.11", }, }} // TODO: - // "@@E0", - // "@###E00", - // "0.0%", - // "0.0‰", // "#,##0.00¤", // "#,##0.00 ¤;(#,##0.00 ¤)", - // // padding - // "*x#", - // "#*x", - // "*xpre#suf", - // "pre*x#suf", - // "pre#*xsuf", - // "pre#suf*x", + for _, tc := range testCases { pat := tc.pat if pat == nil { @@ -311,22 +439,15 @@ func TestAppendDecimal(t *testing.T) { log.Fatal(err) } } - f := &Formatter{ - pat, - InfoFromTag(language.English), - RoundingContext{}, - appendDecimal, - } - if strings.IndexByte(tc.pattern, 'E') != -1 { - f.f = appendScientific - } + var f Formatter + f.InitPattern(language.English, pat) for dec, want := range tc.test { buf := make([]byte, 100) t.Run(tc.pattern+"/"+dec, func(t *testing.T) { dec := mkdec(dec) buf = f.Format(buf[:0], &dec) if got := string(buf); got != want { - t.Errorf("\n got %q\nwant %q", got, want) + t.Errorf("\n got %[1]q (%[1]s)\nwant %[2]q (%[2]s)", got, want) } }) } @@ -341,22 +462,46 @@ func TestLocales(t *testing.T) { }{ {language.Make("en"), "123456.78", "123,456.78"}, {language.Make("de"), "123456.78", "123.456,78"}, - {language.Make("de-CH"), "123456.78", "123'456.78"}, + {language.Make("de-CH"), "123456.78", "123’456.78"}, {language.Make("fr"), "123456.78", "123 456,78"}, {language.Make("bn"), "123456.78", "১,২৩,৪৫৬.৭৮"}, } for _, tc := range testCases { t.Run(fmt.Sprint(tc.tag, "/", tc.num), func(t *testing.T) { - f := &Formatter{ - lookupFormat(tc.tag, tagToDecimal), - InfoFromTag(tc.tag), - RoundingContext{}, - appendDecimal, + var f Formatter + f.InitDecimal(tc.tag) + d := mkdec(tc.num) + b := f.Format(nil, &d) + if got := string(b); got != tc.want { + t.Errorf("got %[1]q (%[1]s); want %[2]q (%[2]s)", got, tc.want) } + }) + } +} + +func TestFormatters(t *testing.T) { + var f Formatter + testCases := []struct { + init func(t language.Tag) + num string + want string + }{ + {f.InitDecimal, "123456.78", "123,456.78"}, + {f.InitScientific, "123456.78", "1.23\u202f×\u202f10⁵"}, + {f.InitEngineering, "123456.78", "123\u202f×\u202f10³"}, + + {f.InitPercent, "0.1234", "12.34%"}, + {f.InitPerMille, "0.1234", "123.40‰"}, + } + for i, tc := range testCases { + t.Run(fmt.Sprint(i, "/", tc.num), func(t *testing.T) { + tc.init(language.English) + f.Pattern.MinFractionDigits = 2 + f.Pattern.MaxFractionDigits = 2 d := mkdec(tc.num) b := f.Format(nil, &d) if got := string(b); got != tc.want { - t.Errorf("got %q; want %q", got, tc.want) + t.Errorf("got %[1]q (%[1]s); want %[2]q (%[2]s)", got, tc.want) } }) } |