summaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/text/currency/tables_test.go
diff options
context:
space:
mode:
authorDimitri Sokolyuk <demon@dim13.org>2018-07-24 14:35:44 +0200
committerDimitri Sokolyuk <demon@dim13.org>2018-07-24 14:35:44 +0200
commit621e49bb465f500cc46d47e39e828cf76d6381d7 (patch)
treee9d6ed54cfae73209f2b0d9a016ef0b64adf45a6 /vendor/golang.org/x/text/currency/tables_test.go
parent5b9a4a158b81aa6e94a5a56d0851bea938b87bef (diff)
update vendor
Diffstat (limited to 'vendor/golang.org/x/text/currency/tables_test.go')
-rw-r--r--vendor/golang.org/x/text/currency/tables_test.go93
1 files changed, 93 insertions, 0 deletions
diff --git a/vendor/golang.org/x/text/currency/tables_test.go b/vendor/golang.org/x/text/currency/tables_test.go
new file mode 100644
index 0000000..779f500
--- /dev/null
+++ b/vendor/golang.org/x/text/currency/tables_test.go
@@ -0,0 +1,93 @@
+package currency
+
+import (
+ "flag"
+ "strings"
+ "testing"
+ "time"
+
+ "golang.org/x/text/internal/gen"
+ "golang.org/x/text/internal/testtext"
+ "golang.org/x/text/language"
+ "golang.org/x/text/message"
+ "golang.org/x/text/unicode/cldr"
+)
+
+var draft = flag.String("draft",
+ "contributed",
+ `Minimal draft requirements (approved, contributed, provisional, unconfirmed).`)
+
+func TestTables(t *testing.T) {
+ testtext.SkipIfNotLong(t)
+
+ // Read the CLDR zip file.
+ r := gen.OpenCLDRCoreZip()
+ defer r.Close()
+
+ d := &cldr.Decoder{}
+ d.SetDirFilter("supplemental", "main")
+ d.SetSectionFilter("numbers")
+ data, err := d.DecodeZip(r)
+ if err != nil {
+ t.Fatalf("DecodeZip: %v", err)
+ }
+
+ dr, err := cldr.ParseDraft(*draft)
+ if err != nil {
+ t.Fatalf("filter: %v", err)
+ }
+
+ for _, lang := range data.Locales() {
+ p := message.NewPrinter(language.MustParse(lang))
+
+ ldml := data.RawLDML(lang)
+ if ldml.Numbers == nil || ldml.Numbers.Currencies == nil {
+ continue
+ }
+ for _, c := range ldml.Numbers.Currencies.Currency {
+ syms := cldr.MakeSlice(&c.Symbol)
+ syms.SelectDraft(dr)
+
+ for _, sym := range c.Symbol {
+ cur, err := ParseISO(c.Type)
+ if err != nil {
+ continue
+ }
+ formatter := Symbol
+ switch sym.Alt {
+ case "":
+ case "narrow":
+ formatter = NarrowSymbol
+ default:
+ continue
+ }
+ want := sym.Data()
+ if got := p.Sprint(formatter(cur)); got != want {
+ t.Errorf("%s:%sSymbol(%s) = %s; want %s", lang, strings.Title(sym.Alt), c.Type, got, want)
+ }
+ }
+ }
+ }
+
+ for _, reg := range data.Supplemental().CurrencyData.Region {
+ i := 0
+ for ; regionData[i].Region().String() != reg.Iso3166; i++ {
+ }
+ it := Query(Historical, NonTender, Region(language.MustParseRegion(reg.Iso3166)))
+ for _, cur := range reg.Currency {
+ from, _ := time.Parse("2006-01-02", cur.From)
+ to, _ := time.Parse("2006-01-02", cur.To)
+
+ it.Next()
+ for j, r := range []QueryIter{&iter{regionInfo: &regionData[i]}, it} {
+ if got, _ := r.From(); from != got {
+ t.Errorf("%d:%s:%s:from: got %v; want %v", j, reg.Iso3166, cur.Iso4217, got, from)
+ }
+ if got, _ := r.To(); to != got {
+ t.Errorf("%d:%s:%s:to: got %v; want %v", j, reg.Iso3166, cur.Iso4217, got, to)
+ }
+ }
+ i++
+ }
+ }
+}