From 54d3d47daf9190275bbdaf8703b84969a4593451 Mon Sep 17 00:00:00 2001 From: Corey Hulen Date: Fri, 24 Mar 2017 23:31:34 -0700 Subject: PLT-6076 Adding viper libs for config file changes (#5871) * Adding viper libs for config file changes * Removing the old fsnotify lib * updating some missing libs --- vendor/golang.org/x/text/currency/currency_test.go | 171 +++++++++++++++++++++ 1 file changed, 171 insertions(+) create mode 100644 vendor/golang.org/x/text/currency/currency_test.go (limited to 'vendor/golang.org/x/text/currency/currency_test.go') diff --git a/vendor/golang.org/x/text/currency/currency_test.go b/vendor/golang.org/x/text/currency/currency_test.go new file mode 100644 index 000000000..566a1678a --- /dev/null +++ b/vendor/golang.org/x/text/currency/currency_test.go @@ -0,0 +1,171 @@ +// Copyright 2015 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package currency + +import ( + "fmt" + "testing" + + "golang.org/x/text/internal/testtext" + "golang.org/x/text/language" +) + +var ( + cup = MustParseISO("CUP") + czk = MustParseISO("CZK") + xcd = MustParseISO("XCD") + zwr = MustParseISO("ZWR") +) + +func TestParseISO(t *testing.T) { + testCases := []struct { + in string + out Unit + ok bool + }{ + {"USD", USD, true}, + {"xxx", XXX, true}, + {"xts", XTS, true}, + {"XX", XXX, false}, + {"XXXX", XXX, false}, + {"", XXX, false}, // not well-formed + {"UUU", XXX, false}, // unknown + {"\u22A9", XXX, false}, // non-ASCII, printable + + {"aaa", XXX, false}, + {"zzz", XXX, false}, + {"000", XXX, false}, + {"999", XXX, false}, + {"---", XXX, false}, + {"\x00\x00\x00", XXX, false}, + {"\xff\xff\xff", XXX, false}, + } + for i, tc := range testCases { + if x, err := ParseISO(tc.in); x != tc.out || err == nil != tc.ok { + t.Errorf("%d:%s: was %s, %v; want %s, %v", i, tc.in, x, err == nil, tc.out, tc.ok) + } + } +} + +func TestFromRegion(t *testing.T) { + testCases := []struct { + region string + currency Unit + ok bool + }{ + {"NL", EUR, true}, + {"BE", EUR, true}, + {"AG", xcd, true}, + {"CH", CHF, true}, + {"CU", cup, true}, // first of multiple + {"DG", USD, true}, // does not have M49 code + {"150", XXX, false}, // implicit false + {"CP", XXX, false}, // explicit false in CLDR + {"CS", XXX, false}, // all expired + {"ZZ", XXX, false}, // none match + } + for _, tc := range testCases { + cur, ok := FromRegion(language.MustParseRegion(tc.region)) + if cur != tc.currency || ok != tc.ok { + t.Errorf("%s: got %v, %v; want %v, %v", tc.region, cur, ok, tc.currency, tc.ok) + } + } +} + +func TestFromTag(t *testing.T) { + testCases := []struct { + tag string + currency Unit + conf language.Confidence + }{ + {"nl", EUR, language.Low}, // nl also spoken outside Euro land. + {"nl-BE", EUR, language.Exact}, // region is known + {"pt", BRL, language.Low}, + {"en", USD, language.Low}, + {"en-u-cu-eur", EUR, language.Exact}, + {"tlh", XXX, language.No}, // Klingon has no country. + {"es-419", XXX, language.No}, + {"und", USD, language.Low}, + } + for _, tc := range testCases { + cur, conf := FromTag(language.MustParse(tc.tag)) + if cur != tc.currency || conf != tc.conf { + t.Errorf("%s: got %v, %v; want %v, %v", tc.tag, cur, conf, tc.currency, tc.conf) + } + } +} + +func TestTable(t *testing.T) { + for i := 4; i < len(currency); i += 4 { + if a, b := currency[i-4:i-1], currency[i:i+3]; a >= b { + t.Errorf("currency unordered at element %d: %s >= %s", i, a, b) + } + } + // First currency has index 1, last is numCurrencies. + if c := currency.Elem(1)[:3]; c != "ADP" { + t.Errorf("first was %c; want ADP", c) + } + if c := currency.Elem(numCurrencies)[:3]; c != "ZWR" { + t.Errorf("last was %c; want ZWR", c) + } +} + +func TestKindRounding(t *testing.T) { + testCases := []struct { + kind Kind + cur Unit + scale int + inc int + }{ + {Standard, USD, 2, 1}, + {Standard, CHF, 2, 1}, + {Cash, CHF, 2, 5}, + {Standard, TWD, 2, 1}, + {Cash, TWD, 0, 1}, + {Standard, czk, 2, 1}, + {Cash, czk, 0, 1}, + {Standard, zwr, 2, 1}, + {Cash, zwr, 0, 1}, + {Standard, KRW, 0, 1}, + {Cash, KRW, 0, 1}, // Cash defaults to standard. + } + for i, tc := range testCases { + if scale, inc := tc.kind.Rounding(tc.cur); scale != tc.scale && inc != tc.inc { + t.Errorf("%d: got %d, %d; want %d, %d", i, scale, inc, tc.scale, tc.inc) + } + } +} + +const body = `package main +import ( + "fmt" + "golang.org/x/text/currency" +) +func main() { + %s +} +` + +func TestLinking(t *testing.T) { + base := getSize(t, `fmt.Print(currency.CLDRVersion)`) + symbols := getSize(t, `fmt.Print(currency.Symbol(currency.USD))`) + if d := symbols - base; d < 2*1024 { + t.Errorf("size(symbols)-size(base) was %d; want > 2K", d) + } +} + +func getSize(t *testing.T, main string) int { + size, err := testtext.CodeSize(fmt.Sprintf(body, main)) + if err != nil { + t.Skipf("skipping link size test; binary size could not be determined: %v", err) + } + return size +} + +func BenchmarkString(b *testing.B) { + for i := 0; i < b.N; i++ { + USD.String() + } +} -- cgit v1.2.3-1-g7c22