30 lines
665 B
Go
30 lines
665 B
Go
package scopes_test
|
|
|
|
import (
|
|
tbase "testing"
|
|
|
|
"git.sr.ht/~cco/go-scopes/lib/funky"
|
|
"git.sr.ht/~cco/go-scopes/testing"
|
|
)
|
|
|
|
func TestFunky(tb *tbase.T) {
|
|
t := testing.SetUp(tb)
|
|
t.Run("maybe", MaybeTest)
|
|
t.Run("iterator", IteratorTest)
|
|
}
|
|
|
|
func MaybeTest(t *testing.T) {
|
|
var i0 funky.Maybe[int] = funky.Nothing[int]()
|
|
t.AssertEqual(i0.IsNothing(), true)
|
|
var i1 funky.Maybe[int] = funky.Just(3)
|
|
t.AssertEqual(i1.IsNothing(), false)
|
|
t.AssertEqual(i1.Value(), 3)
|
|
}
|
|
|
|
func IteratorTest(t *testing.T) {
|
|
sl := []int{3, 4, 5}
|
|
var it funky.Iterator[int] = funky.SliceIterator[int](sl)
|
|
s12 := funky.Slice(it)
|
|
t.AssertEqual(len(s12), 3)
|
|
t.AssertEqual(s12[1], 4)
|
|
}
|