Something went wrong. Try again.
🌱 A minimal programming language and compiler. git.urbach.dev/cli/q
high-performance programming-language compiler
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384package token_test
import ( "testing"
"git.urbach.dev/cli/q/src/token" "git.urbach.dev/go/assert")
func TestIndexKind(t *testing.T) { tokens := token.Tokenize([]byte("a{{}}")) assert.Equal(t, tokens.IndexKind(token.NewLine), -1) assert.Equal(t, tokens.LastIndexKind(token.NewLine), -1) assert.Equal(t, tokens.IndexKind(token.BlockStart), 1) assert.Equal(t, tokens.LastIndexKind(token.BlockStart), 2) assert.Equal(t, tokens.IndexKind(token.BlockEnd), 3) assert.Equal(t, tokens.LastIndexKind(token.BlockEnd), 4)}
func TestSplit(t *testing.T) { src := []byte("1+2,3*4,5*6,7+8") tokens := token.Tokenize(src) parameters := []string{}
for _, param := range tokens.Split { parameters = append(parameters, param.StringFrom(src)) }
assert.DeepEqual(t, parameters, []string{"1+2", "3*4", "5*6", "7+8"})}
func TestSplitBreak(t *testing.T) { src := []byte("1,2") tokens := token.Tokenize(src)
for range tokens.Split { break }}
func TestSplitEmpty(t *testing.T) { tokens := token.List{}
for range tokens.Split { t.Fail() }}
func TestSplitGroups(t *testing.T) { src := []byte("f(1,2),g(3,4)") tokens := token.Tokenize(src) parameters := []string{}
for _, param := range tokens.Split { parameters = append(parameters, param.StringFrom(src)) }
assert.DeepEqual(t, parameters, []string{"f(1,2)", "g(3,4)"})}
func TestSplitGroupsTrail(t *testing.T) { src := []byte("f(1,2),") tokens := token.Tokenize(src) tokens = tokens[:len(tokens)-1] parameters := []string{}
for _, param := range tokens.Split { parameters = append(parameters, param.StringFrom(src)) }
assert.DeepEqual(t, parameters, []string{"f(1,2)", ""})}
func TestSplitSingle(t *testing.T) { src := []byte("123") tokens := token.Tokenize(src) parameters := []string{}
for _, param := range tokens.Split { parameters = append(parameters, param.StringFrom(src)) }
assert.DeepEqual(t, parameters, []string{"123"})}