53 lines
1.8 KiB
Go
53 lines
1.8 KiB
Go
// Copyright (c) 2024-2026 Celestino Amoroso (celestino.amoroso@gmail.com).
|
|
// All rights reserved.
|
|
|
|
// t_list_test.go
|
|
package expr
|
|
|
|
import (
|
|
"testing"
|
|
|
|
"git.portale-stac.it/go-pkg/expr/types/array"
|
|
"git.portale-stac.it/go-pkg/expr/types/list"
|
|
)
|
|
|
|
func TestLinkedListParser(t *testing.T) {
|
|
section := "Linked-List"
|
|
|
|
inputs := []inputType{
|
|
/* 1 */ {`[<1,2>]`, list.NewLinkedListA(1, 2), nil},
|
|
/* 2 */ {`it=$([<1,2,3>]); it++`, int64(1), nil},
|
|
/* 3 */ {`it=$([<1,2,3>]); #($$(it))`, int64(3), nil},
|
|
/* 4 */ {`[<1,2,3>][0]`, int64(1), nil},
|
|
/* 5 */ {`[<1,2,3>][0:2]`, list.NewLinkedListA(1, 2), nil},
|
|
/* 6 */ {`[<1>] + [<2,3>]`, list.NewLinkedListA(1, 2, 3), nil},
|
|
/* 7 */ {`L=[<1>] + [<2,3>]; L[0]=100; L`, list.NewLinkedListA(100, 2, 3), nil},
|
|
/* 8 */ {`builtin "base"; L=[<1>]; isList(L)`, true, nil},
|
|
/* 9 */ {`2 IN [<1,2,3>]`, true, nil},
|
|
/* 10 */ {`2 AT [<1,2,3>]`, int64(1), nil},
|
|
/* 11 */ {`4 AT [<1,2,3>]`, int64(-1), nil},
|
|
}
|
|
|
|
// t.Setenv("EXPR_PATH", ".")
|
|
|
|
// runTestSuiteSpec(t, section, inputs, 4)
|
|
RunTestSuite(t, section, inputs)
|
|
}
|
|
|
|
func TestLinkedInsert(t *testing.T) {
|
|
section := "LinkedList-Insert"
|
|
inputs := []inputType{
|
|
/* 1 */ {`[<>] << 1`, list.NewLinkedListA(1), nil},
|
|
/* 2 */ {`[<>] << [1,2]`, list.NewLinkedListA(array.NewArrayA(int64(1), int64(2))), nil},
|
|
/* 3 */ {`[<>] << [<1,2>]`, list.NewLinkedListA(list.NewLinkedListA(1, 2)), nil},
|
|
/* 4 */ {`1 >> [<>]`, list.NewLinkedListA(1), nil},
|
|
/* 5 */ {`[1,2] >> [<>]`, list.NewLinkedListA(array.NewArrayA(int64(1), int64(2))), nil},
|
|
/* 6 */ {`[<1,2>] >> [<>]`, list.NewLinkedListA(list.NewLinkedListA(1, 2)), nil},
|
|
/* 7 */ {`$([1,2]) >> [<>]`, list.NewLinkedListA(1, 2), nil},
|
|
/* 8 */ {`$([<1,2>]) >> [<>]`, list.NewLinkedListA(1, 2), nil},
|
|
}
|
|
|
|
// runTestSuiteSpec(t, section, inputs, 9)
|
|
RunTestSuite(t, section, inputs)
|
|
}
|