linked-list-iterator and context operator $$ enhancement
This commit is contained in:
+9
-9
@@ -44,8 +44,8 @@ func TestIteratorParser(t *testing.T) {
|
||||
func TestFilterIterator(t *testing.T) {
|
||||
section := "Iterator-Filter"
|
||||
inputs := []inputType{
|
||||
/* 1 */ {`$$([1,2,3] filter $_%2==0)`, kern.NewList([]any{int64(2)}), nil},
|
||||
/* 2 */ {`it = [1,2,3] filter $_%2!=1; $$(it)`, kern.NewList([]any{int64(2)}), nil},
|
||||
/* 1 */ {`$$([1,2,3] filter $_%2==0)`, kern.NewLinkedListA(2), nil},
|
||||
/* 2 */ {`it = [1,2,3] filter $_%2!=1; $$(it)`, kern.NewLinkedListA(2), nil},
|
||||
/* 3 */ {`builtin "os.file"; #$$(fileLineIterator("test-file.txt") filter (#${_} == 2))`, int64(0), nil},
|
||||
/* 4 */ {`builtin "os.file"; #$$(fileLineIterator("test-file.txt") filter (#${_} == 3))`, int64(2), nil},
|
||||
}
|
||||
@@ -69,11 +69,11 @@ func TestDigestIterator(t *testing.T) {
|
||||
func TestCatIterator(t *testing.T) {
|
||||
section := "Iterator-Cat"
|
||||
inputs := []inputType{
|
||||
/* 1 */ {`$$([1] cat [])`, kern.NewList([]any{int64(1)}), nil},
|
||||
/* 2 */ {`$$([1] cat [2])`, kern.NewList([]any{int64(1), int64(2)}), nil},
|
||||
/* 3 */ {`$$([1] cat nil)`, kern.NewList([]any{int64(1)}), nil},
|
||||
/* 4 */ {`$$(nil cat [2])`, kern.NewList([]any{int64(2)}), nil},
|
||||
/* 5 */ {`$$(nil cat nil)`, kern.NewList([]any{}), nil},
|
||||
/* 1 */ {`$$([1] cat [])`, kern.NewLinkedListA(1), nil},
|
||||
/* 2 */ {`$$([1] cat [2])`, kern.NewLinkedListA(1, 2), nil},
|
||||
/* 3 */ {`$$([1] cat nil)`, kern.NewLinkedListA(1), nil},
|
||||
/* 4 */ {`$$(nil cat [2])`, kern.NewLinkedListA(2), nil},
|
||||
/* 5 */ {`$$(nil cat nil)`, kern.NewLinkedListA(), nil},
|
||||
/* 6 */ {`$$(["a","b"] cat ["x"-true])`, nil, `[1:23] left operand 'x' [string] and right operand 'true' [bool] are not compatible with operator "-"`},
|
||||
}
|
||||
|
||||
@@ -84,10 +84,10 @@ func TestCatIterator(t *testing.T) {
|
||||
func TestMapIterator(t *testing.T) {
|
||||
section := "Iterator-Map"
|
||||
inputs := []inputType{
|
||||
/* 1 */ {`$$([3,4,5] map ${_#})`, kern.NewList([]any{int64(1), int64(2), int64(3)}), nil},
|
||||
/* 1 */ {`$$([3,4,5] map ${_#})`, kern.NewLinkedListA(1, 2, 3), nil},
|
||||
/* 2 */ {`#$$($(10) map ${_})`, int64(10), nil},
|
||||
/* 3 */ {`#$$($(10,0) map ${_})`, int64(10), nil},
|
||||
/* 4 */ {`builtin "os.file"; $$(fileLineIterator("test-file.txt") map ${__})`, kern.NewList([]any{int64(0), int64(1)}), nil},
|
||||
/* 4 */ {`builtin "os.file"; $$(fileLineIterator("test-file.txt") map ${__})`, kern.NewLinkedListA(0, 1), nil},
|
||||
/* 5 */ {`$$(["1", "2", "3"] map int())`, nil, `int(): too few params -- expected 1, got 0`},
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user