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