underscore/maps/map_test.go
Ruidy f73905ddb0
feat: maps map (#9)
Co-authored-by: Ruidy <rnemausat@newstore.com>
2022-01-27 16:15:33 +01:00

40 lines
821 B
Go

package maps_test
import (
"testing"
"github.com/stretchr/testify/assert"
u "github.com/rjNemo/underscore"
m "github.com/rjNemo/underscore/maps"
)
func TestMap(t *testing.T) {
scores := m.M[string, int]{
"alice": 0,
"bob": 10,
"clara": 7,
"david": 23,
}
hasWon := func(key string, value int) m.M[string, bool] { return m.M[string, bool]{key: value > 21} }
want := m.M[string, bool]{
"alice": false,
"bob": false,
"clara": false,
"david": true}
assert.Equal(t, want, m.Map(scores, hasWon))
}
func TestMapSlices(t *testing.T) {
scores := []m.M[string, int]{
{"score": 0},
{"score": 10},
{"score": 7},
{"score": 23},
}
hasWon := func(s m.M[string, int]) bool { return s["score"] > 21 }
want := []bool{false, false, false, true}
assert.Equal(t, want, u.Map(scores, hasWon))
}