summaryrefslogtreecommitdiffstats
path: root/vendor/golang.org/x/text/internal/number/format_test.go
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2017-07-20 15:22:49 -0700
committerGitHub <noreply@github.com>2017-07-20 15:22:49 -0700
commit58839cefb50e56ae5b157b37e9814ae83ceee70b (patch)
tree5de966481678096fc9567f74f96673b34a65127c /vendor/golang.org/x/text/internal/number/format_test.go
parente2f4492eadb5d3c58606b1fdd5774b63a07c236a (diff)
downloadchat-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-xvendor/golang.org/x/text/internal/number/format_test.go247
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)
}
})
}