new iter-iter iterator and kern.func-info module

This commit is contained in:
2026-05-05 20:38:30 +02:00
parent 7f34ccf955
commit acd4f8487d
30 changed files with 527 additions and 485 deletions
+63
View File
@@ -0,0 +1,63 @@
// Copyright (c) 2024 Celestino Amoroso (celestino.amoroso@gmail.com).
// All rights reserved.
// t_iter-iter_test.go
package expr
import (
"testing"
"git.portale-stac.it/go-pkg/expr/kern"
)
func TestIterIterator(t *testing.T) {
section := "Iterator"
inputs := []inputType{
/* 1 */ {`it=$(4); $(it) filter ${_}==100`, kern.NewListA(), nil},
/* 2 */ {`it=$(4); $(it, func(){$_}) filter ${_}==100`, kern.NewListA(), nil},
/* 3 */ {`it=$(4); $(it, func(arg1){arg1+$_}, 10) filter ${_}==100`, kern.NewListA(), nil},
}
runTestSuiteSpec(t, section, inputs, 3)
// runTestSuite(t, section, inputs)
}
// func TestNewIterIterator(t *testing.T) {
// var it kern.Iterator
// var err error
// list := kern.NewListA("a", "b", "c", "d")
// itList := NewListIterator(list, []any{1, 3, 1})
// it, err = NewIterator(nil, itList, map[string]any{"op": kern.NewFunctor("test")})
// if err != nil {
// t.Errorf("error: %v", err)
// } else {
// if item, err := it.Next(); err != nil {
// t.Errorf("error: %v", err)
// } else if item != "b" {
// t.Errorf("expected %q, got %q", "b", item)
// } else {
// t.Logf("Next: %v", item)
// }
// }
// }
// func TestNewIterIteratorNoOp(t *testing.T) {
// var it kern.Iterator
// var err error
// list := kern.NewListA("a", "b", "c", "d")
// itList := NewListIterator(list, []any{1, 3, 1})
// it, err = NewIterator(nil, itList, nil)
// if err != nil {
// t.Errorf("error: %v", err)
// } else {
// if item, err := it.Next(); err != nil {
// t.Errorf("error: %v", err)
// } else if item != "b" {
// t.Errorf("expected %q, got %q", "b", item)
// } else {
// t.Logf("Next: %v", item)
// }
// }
// }