+++ /dev/null
-// Copyright 2020 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 completion
-
-import (
- "fmt"
- "testing"
-)
-
-func TestFormatOperandKind(t *testing.T) {
- cases := []struct {
- f string
- idx int
- kind objKind
- }{
- {"", 1, kindAny},
- {"%", 1, kindAny},
- {"%%%", 1, kindAny},
- {"%[1", 1, kindAny},
- {"%[?%s", 2, kindAny},
- {"%[abc]v", 1, kindAny},
-
- {"%v", 1, kindAny},
- {"%T", 1, kindAny},
- {"%t", 1, kindBool},
- {"%d", 1, kindInt},
- {"%c", 1, kindInt},
- {"%o", 1, kindInt},
- {"%O", 1, kindInt},
- {"%U", 1, kindInt},
- {"%e", 1, kindFloat | kindComplex},
- {"%E", 1, kindFloat | kindComplex},
- {"%f", 1, kindFloat | kindComplex},
- {"%F", 1, kindFloat | kindComplex},
- {"%g", 1, kindFloat | kindComplex},
- {"%G", 1, kindFloat | kindComplex},
- {"%b", 1, kindInt | kindFloat | kindComplex | kindBytes},
- {"%q", 1, kindString | kindBytes | kindStringer | kindError},
- {"%s", 1, kindString | kindBytes | kindStringer | kindError},
- {"%x", 1, kindString | kindBytes | kindInt | kindFloat | kindComplex},
- {"%X", 1, kindString | kindBytes | kindInt | kindFloat | kindComplex},
- {"%p", 1, kindPtr | kindSlice},
- {"%w", 1, kindError},
-
- {"%1.2f", 1, kindFloat | kindComplex},
- {"%*f", 1, kindInt},
- {"%*f", 2, kindFloat | kindComplex},
- {"%*.*f", 1, kindInt},
- {"%*.*f", 2, kindInt},
- {"%*.*f", 3, kindFloat | kindComplex},
- {"%[3]*.[2]*[1]f", 1, kindFloat | kindComplex},
- {"%[3]*.[2]*[1]f", 2, kindInt},
- {"%[3]*.[2]*[1]f", 3, kindInt},
-
- {"foo %% %d", 1, kindInt},
- {"%#-12.34f", 1, kindFloat | kindComplex},
- {"% d", 1, kindInt},
-
- {"%s %[1]X %d", 1, kindString | kindBytes},
- {"%s %[1]X %d", 2, kindInt},
- }
-
- for _, c := range cases {
- t.Run(fmt.Sprintf("%q#%d", c.f, c.idx), func(t *testing.T) {
- if got := formatOperandKind(c.f, c.idx); got != c.kind {
- t.Errorf("expected %d (%[1]b), got %d (%[2]b)", c.kind, got)
- }
- })
- }
-}