65 lines
1.7 KiB
Go
65 lines
1.7 KiB
Go
// Copyright (c) 2024-2026 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, $_) filter ${_}==100`, kern.NewListA(), nil},
|
|
/* 3 */ {`it=$(4); $(it, 10+$_, last-1) digest ${_}`, int64(12), nil},
|
|
/* 4 */ {`f=func(n){last-n}; it=$(4); $(it, 10+$_, f(-1)) digest ${_}`, int64(14), nil},
|
|
}
|
|
|
|
runTestSuiteSpec(t, section, inputs, 4)
|
|
// 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)
|
|
// }
|
|
// }
|
|
// }
|