github.com/markusbkk/elvish@v0.0.0-20231204143114-91dc52438621/pkg/eval/var_parse_test.go (about) 1 package eval_test 2 3 import ( 4 "testing" 5 6 . "github.com/markusbkk/elvish/pkg/eval" 7 8 "github.com/markusbkk/elvish/pkg/tt" 9 ) 10 11 var Args = tt.Args 12 13 func TestSplitSigil(t *testing.T) { 14 tt.Test(t, tt.Fn("SplitSigil", SplitSigil), tt.Table{ 15 Args("").Rets("", ""), 16 Args("x").Rets("", "x"), 17 Args("@x").Rets("@", "x"), 18 Args("a:b").Rets("", "a:b"), 19 Args("@a:b").Rets("@", "a:b"), 20 }) 21 } 22 23 func TestSplitQName(t *testing.T) { 24 tt.Test(t, tt.Fn("SplitQName", SplitQName), tt.Table{ 25 Args("").Rets("", ""), 26 Args("a").Rets("a", ""), 27 Args("a:").Rets("a:", ""), 28 Args("a:b").Rets("a:", "b"), 29 Args("a:b:").Rets("a:", "b:"), 30 Args("a:b:c").Rets("a:", "b:c"), 31 Args("a:b:c:").Rets("a:", "b:c:"), 32 }) 33 } 34 35 func TestSplitQNameSegs(t *testing.T) { 36 tt.Test(t, tt.Fn("SplitQNameSegs", SplitQNameSegs), tt.Table{ 37 Args("").Rets([]string{}), 38 Args("a").Rets([]string{"a"}), 39 Args("a:").Rets([]string{"a:"}), 40 Args("a:b").Rets([]string{"a:", "b"}), 41 Args("a:b:").Rets([]string{"a:", "b:"}), 42 Args("a:b:c").Rets([]string{"a:", "b:", "c"}), 43 Args("a:b:c:").Rets([]string{"a:", "b:", "c:"}), 44 }) 45 } 46 47 func TestSplitIncompleteQNameNs(t *testing.T) { 48 tt.Test(t, tt.Fn("SplitIncompleteQNameNs", SplitIncompleteQNameNs), tt.Table{ 49 Args("").Rets("", ""), 50 Args("a").Rets("", "a"), 51 Args("a:").Rets("a:", ""), 52 Args("a:b").Rets("a:", "b"), 53 Args("a:b:").Rets("a:b:", ""), 54 Args("a:b:c").Rets("a:b:", "c"), 55 Args("a:b:c:").Rets("a:b:c:", ""), 56 }) 57 }