Files
expr/t_iter-iter_test.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 := "Iter-Iter"
inputs := []inputType{
/* 1 */ {`it=$(4); $$($(it) filter ${_}==100)`, kern.NewLinkedListA(), nil},
/* 2 */ {`it=$(4); $$($(it, $_) filter ${_}==100)`, kern.NewLinkedListA(), 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)
// }
// }
// }