test: add examples for function package

This commit is contained in:
dudaodong
2023-01-06 16:12:44 +08:00
parent e21dd07d46
commit be444f521d
4 changed files with 212 additions and 66 deletions

View File

@@ -62,24 +62,26 @@ func TestCurry(t *testing.T) {
add := func(a, b int) int {
return a + b
}
var addCurry Fn = func(values ...any) any {
return add(values[0].(int), values[1].(int))
var addCurry CurryFn[int] = func(values ...int) int {
return add(values[0], values[1])
}
add1 := addCurry.Curry(1)
add1 := addCurry.New(1)
assert.Equal(3, add1(2))
}
func TestCompose(t *testing.T) {
assert := internal.NewAssert(t, "TestCompose")
toUpper := func(a ...any) any {
return strings.ToUpper(a[0].(string))
toUpper := func(strs ...string) string {
return strings.ToUpper(strs[0])
}
toLower := func(a ...any) any {
return strings.ToLower(a[0].(string))
toLower := func(strs ...string) string {
return strings.ToLower(strs[0])
}
expected := toUpper(toLower("aBCde"))
cf := Compose(toUpper, toLower)
res := cf("aBCde")