package main import ( "testing" "github.com/stretchr/testify/assert" ) func TestCombinations(t *testing.T) { input := map[string][]interface{}{ "bool": {false, true}, "int": {1, 2, 3}, "string": {"foo", "bar"}, } c := combinations(input) assert.Equal(t, []map[string]interface{}{ {"bool": false, "int": 1, "string": "foo"}, {"bool": false, "int": 1, "string": "bar"}, {"bool": false, "int": 2, "string": "foo"}, {"bool": false, "int": 2, "string": "bar"}, {"bool": false, "int": 3, "string": "foo"}, {"bool": false, "int": 3, "string": "bar"}, {"bool": true, "int": 1, "string": "foo"}, {"bool": true, "int": 1, "string": "bar"}, {"bool": true, "int": 2, "string": "foo"}, {"bool": true, "int": 2, "string": "bar"}, {"bool": true, "int": 3, "string": "foo"}, {"bool": true, "int": 3, "string": "bar"}, }, c) }