summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/nicksnyder/go-i18n/i18n/language/operands_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/nicksnyder/go-i18n/i18n/language/operands_test.go')
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/i18n/language/operands_test.go45
1 files changed, 45 insertions, 0 deletions
diff --git a/vendor/github.com/nicksnyder/go-i18n/i18n/language/operands_test.go b/vendor/github.com/nicksnyder/go-i18n/i18n/language/operands_test.go
new file mode 100644
index 000000000..29030876a
--- /dev/null
+++ b/vendor/github.com/nicksnyder/go-i18n/i18n/language/operands_test.go
@@ -0,0 +1,45 @@
+package language
+
+import (
+ "reflect"
+ "testing"
+)
+
+func TestNewOperands(t *testing.T) {
+ tests := []struct {
+ input interface{}
+ ops *operands
+ err bool
+ }{
+ {int64(0), &operands{0.0, 0, 0, 0, 0, 0}, false},
+ {int64(1), &operands{1.0, 1, 0, 0, 0, 0}, false},
+ {"0", &operands{0.0, 0, 0, 0, 0, 0}, false},
+ {"1", &operands{1.0, 1, 0, 0, 0, 0}, false},
+ {"1.0", &operands{1.0, 1, 1, 0, 0, 0}, false},
+ {"1.00", &operands{1.0, 1, 2, 0, 0, 0}, false},
+ {"1.3", &operands{1.3, 1, 1, 1, 3, 3}, false},
+ {"1.30", &operands{1.3, 1, 2, 1, 30, 3}, false},
+ {"1.03", &operands{1.03, 1, 2, 2, 3, 3}, false},
+ {"1.230", &operands{1.23, 1, 3, 2, 230, 23}, false},
+ {"20.0230", &operands{20.023, 20, 4, 3, 230, 23}, false},
+ {20.0230, nil, true},
+ }
+ for _, test := range tests {
+ ops, err := newOperands(test.input)
+ if err != nil && !test.err {
+ t.Errorf("newOperands(%#v) unexpected error: %s", test.input, err)
+ } else if err == nil && test.err {
+ t.Errorf("newOperands(%#v) returned %#v; expected error", test.input, ops)
+ } else if !reflect.DeepEqual(ops, test.ops) {
+ t.Errorf("newOperands(%#v) returned %#v; expected %#v", test.input, ops, test.ops)
+ }
+ }
+}
+
+func BenchmarkNewOperand(b *testing.B) {
+ for i := 0; i < b.N; i++ {
+ if _, err := newOperands("1234.56780000"); err != nil {
+ b.Fatal(err)
+ }
+ }
+}