@ -6,6 +6,10 @@ type Ring struct {
}
func NewRing(n int) *Ring {
if n < 1 {
panic("n should be greater than 0")
return &Ring{
elements: make([]interface{}, n),
@ -6,6 +6,12 @@ import (
"github.com/stretchr/testify/assert"
)
func TestNewRing(t *testing.T) {
assert.Panics(t, func() {
NewRing(0)
})
func TestRingLess(t *testing.T) {
ring := NewRing(5)
for i := 0; i < 3; i++ {
@ -162,6 +162,7 @@ func (p Stream) Head(n int64) Stream {
panic("n must be greater than 0")
source := make(chan interface{})
go func() {
@ -247,6 +248,10 @@ func (p Stream) Sort(less LessFunc) Stream {
func (p Stream) Tail(n int64) Stream {
@ -294,6 +294,14 @@ func TestTail(t *testing.T) {
assert.Equal(t, 7, result)
func TestTailZero(t *testing.T) {
Just(1, 2, 3, 4).Tail(0).Reduce(func(pipe <-chan interface{}) (interface{}, error) {
return nil, nil
func TestWalk(t *testing.T) {
var result int
Just(1, 2, 3, 4, 5).Walk(func(item interface{}, pipe chan<- interface{}) {