// 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.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) // } // } // }