mal-go/list/list_test.go
ajet d3997bfb53
All checks were successful
Go / test (push) Successful in 2s
support non-nil empty list
2025-11-04 11:50:38 -10:00

26 lines
793 B
Go

package list
import (
"github.com/stretchr/testify/assert"
"testing"
)
func TestReadConj(t *testing.T) {
l := Empty().Conj(5).Conj(6).Conj(7)
assert.Equal(t, "(7 6 5)", l.String(), "should insert at head")
}
func TestReadFirst(t *testing.T) {
l := Empty().Conj(5).Conj(6).Conj(7)
assert.Equal(t, 7, l.First(), "should return first element")
assert.Equal(t, nil, Empty().First(), "should return nil")
assert.Equal(t, 5, New(5).First(), "should get first from New")
}
func TestReadRest(t *testing.T) {
l := Empty().Conj(5).Conj(6).Conj(7)
assert.Equal(t, "(6 5)", l.Rest().String(), "should return rest sublist")
assert.Equal(t, "(5)", l.Rest().Rest().String(), "should return rest sublist")
assert.Equal(t, "()", l.Rest().Rest().Rest().String(), "should return rest sublist")
}