123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059 |
- package ja
- import (
- "testing"
- "time"
- "github.com/go-playground/locales"
- "github.com/go-playground/locales/currency"
- )
- func TestLocale(t *testing.T) {
- trans := New()
- expected := "ja"
- if trans.Locale() != expected {
- t.Errorf("Expected '%s' Got '%s'", expected, trans.Locale())
- }
- }
- func TestPluralsRange(t *testing.T) {
- trans := New()
- tests := []struct {
- expected locales.PluralRule
- }{
- {
- expected: locales.PluralRuleOther,
- },
- }
- rules := trans.PluralsRange()
- expected := 1
- if len(rules) != expected {
- t.Errorf("Expected '%d' Got '%d'", expected, len(rules))
- }
- for _, tt := range tests {
- r := locales.PluralRuleUnknown
- for i := 0; i < len(rules); i++ {
- if rules[i] == tt.expected {
- r = rules[i]
- break
- }
- }
- if r == locales.PluralRuleUnknown {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, r)
- }
- }
- }
- func TestPluralsOrdinal(t *testing.T) {
- trans := New()
- tests := []struct {
- expected locales.PluralRule
- }{
- {
- expected: locales.PluralRuleOther,
- },
- }
- rules := trans.PluralsOrdinal()
- expected := 1
- if len(rules) != expected {
- t.Errorf("Expected '%d' Got '%d'", expected, len(rules))
- }
- for _, tt := range tests {
- r := locales.PluralRuleUnknown
- for i := 0; i < len(rules); i++ {
- if rules[i] == tt.expected {
- r = rules[i]
- break
- }
- }
- if r == locales.PluralRuleUnknown {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, r)
- }
- }
- }
- func TestPluralsCardinal(t *testing.T) {
- trans := New()
- tests := []struct {
- expected locales.PluralRule
- }{
- {
- expected: locales.PluralRuleOther,
- },
- }
- rules := trans.PluralsCardinal()
- expected := 1
- if len(rules) != expected {
- t.Errorf("Expected '%d' Got '%d'", expected, len(rules))
- }
- for _, tt := range tests {
- r := locales.PluralRuleUnknown
- for i := 0; i < len(rules); i++ {
- if rules[i] == tt.expected {
- r = rules[i]
- break
- }
- }
- if r == locales.PluralRuleUnknown {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, r)
- }
- }
- }
- func TestRangePlurals(t *testing.T) {
- trans := New()
- tests := []struct {
- num1 float64
- v1 uint64
- num2 float64
- v2 uint64
- expected locales.PluralRule
- }{
- {
- num1: 1,
- v1: 1,
- num2: 2,
- v2: 2,
- expected: locales.PluralRuleOther,
- },
- }
- for _, tt := range tests {
- rule := trans.RangePluralRule(tt.num1, tt.v1, tt.num2, tt.v2)
- if rule != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, rule)
- }
- }
- }
- func TestOrdinalPlurals(t *testing.T) {
- trans := New()
- tests := []struct {
- num float64
- v uint64
- expected locales.PluralRule
- }{
- {
- num: 1,
- v: 0,
- expected: locales.PluralRuleOther,
- },
- }
- for _, tt := range tests {
- rule := trans.OrdinalPluralRule(tt.num, tt.v)
- if rule != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, rule)
- }
- }
- }
- func TestCardinalPlurals(t *testing.T) {
- trans := New()
- tests := []struct {
- num float64
- v uint64
- expected locales.PluralRule
- }{
- {
- num: 1,
- v: 0,
- expected: locales.PluralRuleOther,
- },
- }
- for _, tt := range tests {
- rule := trans.CardinalPluralRule(tt.num, tt.v)
- if rule != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, rule)
- }
- }
- }
- func TestDaysAbbreviated(t *testing.T) {
- trans := New()
- days := trans.WeekdaysAbbreviated()
- for i, day := range days {
- s := trans.WeekdayAbbreviated(time.Weekday(i))
- if s != day {
- t.Errorf("Expected '%s' Got '%s'", day, s)
- }
- }
- tests := []struct {
- idx int
- expected string
- }{
- {
- idx: 0,
- expected: "日",
- },
- {
- idx: 1,
- expected: "月",
- },
- {
- idx: 2,
- expected: "火",
- },
- {
- idx: 3,
- expected: "水",
- },
- {
- idx: 4,
- expected: "木",
- },
- {
- idx: 5,
- expected: "金",
- },
- {
- idx: 6,
- expected: "土",
- },
- }
- for _, tt := range tests {
- s := trans.WeekdayAbbreviated(time.Weekday(tt.idx))
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestDaysNarrow(t *testing.T) {
- trans := New()
- days := trans.WeekdaysNarrow()
- for i, day := range days {
- s := trans.WeekdayNarrow(time.Weekday(i))
- if s != day {
- t.Errorf("Expected '%s' Got '%s'", string(day), s)
- }
- }
- tests := []struct {
- idx int
- expected string
- }{
- {
- idx: 0,
- expected: "日",
- },
- {
- idx: 1,
- expected: "月",
- },
- {
- idx: 2,
- expected: "火",
- },
- {
- idx: 3,
- expected: "水",
- },
- {
- idx: 4,
- expected: "木",
- },
- {
- idx: 5,
- expected: "金",
- },
- {
- idx: 6,
- expected: "土",
- },
- }
- for _, tt := range tests {
- s := trans.WeekdayNarrow(time.Weekday(tt.idx))
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestDaysShort(t *testing.T) {
- trans := New()
- days := trans.WeekdaysShort()
- for i, day := range days {
- s := trans.WeekdayShort(time.Weekday(i))
- if s != day {
- t.Errorf("Expected '%s' Got '%s'", day, s)
- }
- }
- tests := []struct {
- idx int
- expected string
- }{
- {
- idx: 0,
- expected: "日",
- },
- {
- idx: 1,
- expected: "月",
- },
- {
- idx: 2,
- expected: "火",
- },
- {
- idx: 3,
- expected: "水",
- },
- {
- idx: 4,
- expected: "木",
- },
- {
- idx: 5,
- expected: "金",
- },
- {
- idx: 6,
- expected: "土",
- },
- }
- for _, tt := range tests {
- s := trans.WeekdayShort(time.Weekday(tt.idx))
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestDaysWide(t *testing.T) {
- trans := New()
- days := trans.WeekdaysWide()
- for i, day := range days {
- s := trans.WeekdayWide(time.Weekday(i))
- if s != day {
- t.Errorf("Expected '%s' Got '%s'", day, s)
- }
- }
- tests := []struct {
- idx int
- expected string
- }{
- {
- idx: 0,
- expected: "日曜日",
- },
- {
- idx: 1,
- expected: "月曜日",
- },
- {
- idx: 2,
- expected: "火曜日",
- },
- {
- idx: 3,
- expected: "水曜日",
- },
- {
- idx: 4,
- expected: "木曜日",
- },
- {
- idx: 5,
- expected: "金曜日",
- },
- {
- idx: 6,
- expected: "土曜日",
- },
- }
- for _, tt := range tests {
- s := trans.WeekdayWide(time.Weekday(tt.idx))
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestMonthsAbbreviated(t *testing.T) {
- trans := New()
- months := trans.MonthsAbbreviated()
- for i, month := range months {
- s := trans.MonthAbbreviated(time.Month(i + 1))
- if s != month {
- t.Errorf("Expected '%s' Got '%s'", month, s)
- }
- }
- tests := []struct {
- idx int
- expected string
- }{
- {
- idx: 1,
- expected: "1月",
- },
- {
- idx: 2,
- expected: "2月",
- },
- {
- idx: 3,
- expected: "3月",
- },
- {
- idx: 4,
- expected: "4月",
- },
- {
- idx: 5,
- expected: "5月",
- },
- {
- idx: 6,
- expected: "6月",
- },
- {
- idx: 7,
- expected: "7月",
- },
- {
- idx: 8,
- expected: "8月",
- },
- {
- idx: 9,
- expected: "9月",
- },
- {
- idx: 10,
- expected: "10月",
- },
- {
- idx: 11,
- expected: "11月",
- },
- {
- idx: 12,
- expected: "12月",
- },
- }
- for _, tt := range tests {
- s := trans.MonthAbbreviated(time.Month(tt.idx))
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestMonthsNarrow(t *testing.T) {
- trans := New()
- months := trans.MonthsNarrow()
- for i, month := range months {
- s := trans.MonthNarrow(time.Month(i + 1))
- if s != month {
- t.Errorf("Expected '%s' Got '%s'", month, s)
- }
- }
- tests := []struct {
- idx int
- expected string
- }{
- {
- idx: 1,
- expected: "1",
- },
- {
- idx: 2,
- expected: "2",
- },
- {
- idx: 3,
- expected: "3",
- },
- {
- idx: 4,
- expected: "4",
- },
- {
- idx: 5,
- expected: "5",
- },
- {
- idx: 6,
- expected: "6",
- },
- {
- idx: 7,
- expected: "7",
- },
- {
- idx: 8,
- expected: "8",
- },
- {
- idx: 9,
- expected: "9",
- },
- {
- idx: 10,
- expected: "10",
- },
- {
- idx: 11,
- expected: "11",
- },
- {
- idx: 12,
- expected: "12",
- },
- }
- for _, tt := range tests {
- s := trans.MonthNarrow(time.Month(tt.idx))
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestMonthsWide(t *testing.T) {
- trans := New()
- months := trans.MonthsWide()
- for i, month := range months {
- s := trans.MonthWide(time.Month(i + 1))
- if s != month {
- t.Errorf("Expected '%s' Got '%s'", month, s)
- }
- }
- tests := []struct {
- idx int
- expected string
- }{
- {
- idx: 1,
- expected: "1月",
- },
- {
- idx: 2,
- expected: "2月",
- },
- {
- idx: 3,
- expected: "3月",
- },
- {
- idx: 4,
- expected: "4月",
- },
- {
- idx: 5,
- expected: "5月",
- },
- {
- idx: 6,
- expected: "6月",
- },
- {
- idx: 7,
- expected: "7月",
- },
- {
- idx: 8,
- expected: "8月",
- },
- {
- idx: 9,
- expected: "9月",
- },
- {
- idx: 10,
- expected: "10月",
- },
- {
- idx: 11,
- expected: "11月",
- },
- {
- idx: 12,
- expected: "12月",
- },
- }
- for _, tt := range tests {
- s := string(trans.MonthWide(time.Month(tt.idx)))
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestFmtTimeFull(t *testing.T) {
- loc, err := time.LoadLocation("Asia/Tokyo")
- if err != nil {
- t.Errorf("Expected '<nil>' Got '%s'", err)
- }
- fixed := time.FixedZone("OTHER", -4)
- tests := []struct {
- t time.Time
- expected string
- }{
- {
- t: time.Date(2016, 02, 03, 9, 5, 1, 0, loc),
- expected: "9時05分01秒 日本標準時",
- },
- {
- t: time.Date(2016, 02, 03, 20, 5, 1, 0, fixed),
- expected: "20時05分01秒 OTHER",
- },
- }
- trans := New()
- for _, tt := range tests {
- s := trans.FmtTimeFull(tt.t)
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestFmtTimeLong(t *testing.T) {
- loc, err := time.LoadLocation("Asia/Tokyo")
- if err != nil {
- t.Errorf("Expected '<nil>' Got '%s'", err)
- }
- tests := []struct {
- t time.Time
- expected string
- }{
- {
- t: time.Date(2016, 02, 03, 9, 5, 1, 0, loc),
- expected: "9:05:01 JST",
- },
- {
- t: time.Date(2016, 02, 03, 20, 5, 1, 0, loc),
- expected: "20:05:01 JST",
- },
- }
- trans := New()
- for _, tt := range tests {
- s := trans.FmtTimeLong(tt.t)
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestFmtTimeMedium(t *testing.T) {
- tests := []struct {
- t time.Time
- expected string
- }{
- {
- t: time.Date(2016, 02, 03, 9, 5, 1, 0, time.UTC),
- expected: "9:05:01",
- },
- {
- t: time.Date(2016, 02, 03, 20, 5, 1, 0, time.UTC),
- expected: "20:05:01",
- },
- }
- trans := New()
- for _, tt := range tests {
- s := trans.FmtTimeMedium(tt.t)
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestFmtTimeShort(t *testing.T) {
- tests := []struct {
- t time.Time
- expected string
- }{
- {
- t: time.Date(2016, 02, 03, 9, 5, 1, 0, time.UTC),
- expected: "9:05",
- },
- {
- t: time.Date(2016, 02, 03, 20, 5, 1, 0, time.UTC),
- expected: "20:05",
- },
- }
- trans := New()
- for _, tt := range tests {
- s := trans.FmtTimeShort(tt.t)
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestFmtDateFull(t *testing.T) {
- tests := []struct {
- t time.Time
- expected string
- }{
- {
- t: time.Date(2016, 02, 03, 9, 0, 1, 0, time.UTC),
- expected: "2016年2月3日水曜日",
- },
- }
- trans := New()
- for _, tt := range tests {
- s := trans.FmtDateFull(tt.t)
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestFmtDateLong(t *testing.T) {
- tests := []struct {
- t time.Time
- expected string
- }{
- {
- t: time.Date(2016, 02, 03, 9, 0, 1, 0, time.UTC),
- expected: "2016年2月3日",
- },
- }
- trans := New()
- for _, tt := range tests {
- s := trans.FmtDateLong(tt.t)
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestFmtDateMedium(t *testing.T) {
- tests := []struct {
- t time.Time
- expected string
- }{
- {
- t: time.Date(2016, 02, 03, 9, 0, 1, 0, time.UTC),
- expected: "2016/02/03",
- },
- }
- trans := New()
- for _, tt := range tests {
- s := trans.FmtDateMedium(tt.t)
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestFmtDateShort(t *testing.T) {
- tests := []struct {
- t time.Time
- expected string
- }{
- {
- t: time.Date(2016, 02, 03, 9, 0, 1, 0, time.UTC),
- expected: "2016/02/03",
- },
- {
- t: time.Date(-500, 02, 03, 9, 0, 1, 0, time.UTC),
- expected: "500/02/03",
- },
- }
- trans := New()
- for _, tt := range tests {
- s := trans.FmtDateShort(tt.t)
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestFmtNumber(t *testing.T) {
- tests := []struct {
- num float64
- v uint64
- expected string
- }{
- {
- num: 1123456.5643,
- v: 2,
- expected: "1,123,456.56",
- },
- {
- num: 1123456.5643,
- v: 1,
- expected: "1,123,456.6",
- },
- {
- num: 221123456.5643,
- v: 3,
- expected: "221,123,456.564",
- },
- {
- num: -221123456.5643,
- v: 3,
- expected: "-221,123,456.564",
- },
- {
- num: -221123456.5643,
- v: 3,
- expected: "-221,123,456.564",
- },
- {
- num: 0,
- v: 2,
- expected: "0.00",
- },
- {
- num: -0,
- v: 2,
- expected: "0.00",
- },
- }
- trans := New()
- for _, tt := range tests {
- s := trans.FmtNumber(tt.num, tt.v)
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestFmtCurrency(t *testing.T) {
- tests := []struct {
- num float64
- v uint64
- currency currency.Type
- expected string
- }{
- {
- num: 1123456.5643,
- v: 2,
- currency: currency.JPY,
- expected: "¥1,123,456.56",
- },
- {
- num: 1123456.5643,
- v: 1,
- currency: currency.JPY,
- expected: "¥1,123,456.60",
- },
- {
- num: 221123456.5643,
- v: 3,
- currency: currency.JPY,
- expected: "¥221,123,456.564",
- },
- {
- num: -221123456.5643,
- v: 3,
- currency: currency.JPY,
- expected: "-¥221,123,456.564",
- },
- {
- num: 0,
- v: 2,
- currency: currency.JPY,
- expected: "¥0.00",
- },
- {
- num: -0,
- v: 2,
- currency: currency.JPY,
- expected: "¥0.00",
- },
- {
- num: 1.23,
- v: 0,
- currency: currency.JPY,
- expected: "¥1.00",
- },
- }
- trans := New()
- for _, tt := range tests {
- s := trans.FmtCurrency(tt.num, tt.v, tt.currency)
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestFmtAccounting(t *testing.T) {
- tests := []struct {
- num float64
- v uint64
- currency currency.Type
- expected string
- }{
- {
- num: 1123456.5643,
- v: 2,
- currency: currency.JPY,
- expected: "¥1,123,456.56",
- },
- {
- num: 1123456.5643,
- v: 1,
- currency: currency.JPY,
- expected: "¥1,123,456.60",
- },
- {
- num: 221123456.5643,
- v: 3,
- currency: currency.JPY,
- expected: "¥221,123,456.564",
- },
- {
- num: -221123456.5643,
- v: 3,
- currency: currency.JPY,
- expected: "(¥221,123,456.564)",
- },
- {
- num: -0,
- v: 2,
- currency: currency.JPY,
- expected: "¥0.00",
- },
- {
- num: 1.23,
- v: 0,
- currency: currency.JPY,
- expected: "¥1.00",
- },
- }
- trans := New()
- for _, tt := range tests {
- s := trans.FmtAccounting(tt.num, tt.v, tt.currency)
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
- func TestFmtPercent(t *testing.T) {
- tests := []struct {
- num float64
- v uint64
- expected string
- }{
- {
- num: 15,
- v: 0,
- expected: "15%",
- },
- {
- num: 15,
- v: 2,
- expected: "15.00%",
- },
- {
- num: 434.45,
- v: 0,
- expected: "434%",
- },
- {
- num: 34.4,
- v: 2,
- expected: "34.40%",
- },
- {
- num: -34,
- v: 0,
- expected: "-34%",
- },
- }
- trans := New()
- for _, tt := range tests {
- s := trans.FmtPercent(tt.num, tt.v)
- if s != tt.expected {
- t.Errorf("Expected '%s' Got '%s'", tt.expected, s)
- }
- }
- }
|