Giant blob of minor changes
[dotfiles/.git] / .config / coc / extensions / coc-go-data / tools / pkg / mod / honnef.co / go / tools@v0.0.1-2020.1.5 / printf / printf_test.go
diff --git a/.config/coc/extensions/coc-go-data/tools/pkg/mod/honnef.co/go/tools@v0.0.1-2020.1.5/printf/printf_test.go b/.config/coc/extensions/coc-go-data/tools/pkg/mod/honnef.co/go/tools@v0.0.1-2020.1.5/printf/printf_test.go
new file mode 100644 (file)
index 0000000..dd481ae
--- /dev/null
@@ -0,0 +1,124 @@
+package printf
+
+import "testing"
+
+func BenchmarkParseVerb(b *testing.B) {
+       for i := 0; i < b.N; i++ {
+               ParseVerb("%[3]*.[2]*[1]f")
+       }
+}
+
+func TestParseVerb(t *testing.T) {
+       var tests = []struct {
+               in  string
+               out Verb
+       }{
+               {
+                       `%d`,
+                       Verb{
+                               Letter:    'd',
+                               Width:     Default{},
+                               Precision: Default{},
+                               Value:     -1,
+                       },
+               },
+               {
+                       `%#d`,
+                       Verb{
+                               Letter:    'd',
+                               Flags:     "#",
+                               Width:     Default{},
+                               Precision: Default{},
+                               Value:     -1,
+                       },
+               },
+               {
+                       `%+#d`,
+                       Verb{
+                               Letter:    'd',
+                               Flags:     "+#",
+                               Width:     Default{},
+                               Precision: Default{},
+                               Value:     -1,
+                       },
+               },
+               {
+                       `%[2]d`,
+                       Verb{
+                               Letter:    'd',
+                               Width:     Default{},
+                               Precision: Default{},
+                               Value:     2,
+                       },
+               },
+               {
+                       `%[3]*.[2]*[1]f`,
+                       Verb{
+                               Letter:    'f',
+                               Width:     Star{3},
+                               Precision: Star{2},
+                               Value:     1,
+                       },
+               },
+               {
+                       `%6.2f`,
+                       Verb{
+                               Letter:    'f',
+                               Width:     Literal(6),
+                               Precision: Literal(2),
+                               Value:     -1,
+                       },
+               },
+               {
+                       `%#[1]x`,
+                       Verb{
+                               Letter:    'x',
+                               Flags:     "#",
+                               Width:     Default{},
+                               Precision: Default{},
+                               Value:     1,
+                       },
+               },
+               {
+                       "%%",
+                       Verb{
+                               Letter:    '%',
+                               Width:     Default{},
+                               Precision: Default{},
+                               Value:     0,
+                       },
+               },
+               {
+                       "%*%",
+                       Verb{
+                               Letter:    '%',
+                               Width:     Star{Index: -1},
+                               Precision: Default{},
+                               Value:     0,
+                       },
+               },
+               {
+                       "%[1]%",
+                       Verb{
+                               Letter:    '%',
+                               Width:     Default{},
+                               Precision: Default{},
+                               Value:     0,
+                       },
+               },
+       }
+
+       for _, tt := range tests {
+               tt.out.Raw = tt.in
+               v, n, err := ParseVerb(tt.in)
+               if err != nil {
+                       t.Errorf("unexpected error %s while parsing %s", err, tt.in)
+               }
+               if n != len(tt.in) {
+                       t.Errorf("ParseVerb only consumed %d of %d bytes", n, len(tt.in))
+               }
+               if v != tt.out {
+                       t.Errorf("%s parsed to %#v, want %#v", tt.in, v, tt.out)
+               }
+       }
+}