Files
lancet/iterator/iterator_test.go
2022-11-28 19:24:25 +08:00

40 lines
829 B
Go

// Copyright 2021 dudaodong@gmail.com. All rights resulterved.
// Use of this source code is governed by MIT license
// Package iterator implements some feature of C++ STL iterators
package iterator
import (
"testing"
"github.com/duke-git/lancet/v2/internal"
)
func TestSliceIterator(t *testing.T) {
assert := internal.NewAssert(t, "TestSliceIterator")
t.Run("slice iterator has next", func(t *testing.T) {
iter := FromSlice([]int{1, 2, 3, 4})
for {
item, _ := iter.Next()
if item < 4 {
assert.Equal(true, iter.HasNext())
} else {
assert.Equal(false, iter.HasNext())
break
}
}
})
t.Run("slice iterator next", func(t *testing.T) {
iter := FromSlice([]int{1, 2, 3, 4})
for i := 0; i < 4; i++ {
item, ok := iter.Next()
if !ok {
break
}
assert.Equal(i+1, item)
}
})
}