route/vendor/github.com/zclconf/go-cty/cty/tuple_type_test.go

65 lines
1016 B
Go

package cty
import (
"fmt"
"testing"
)
func TestTupleTypeEquals(t *testing.T) {
tests := []struct {
LHS Type // Must be typeTuple
RHS Type
Expected bool
}{
{
Tuple([]Type{}),
Tuple([]Type{}),
true,
},
{
EmptyTuple,
Tuple([]Type{}),
true,
},
{
Tuple([]Type{String}),
Tuple([]Type{String}),
true,
},
{
Tuple([]Type{Tuple([]Type{String})}),
Tuple([]Type{Tuple([]Type{String})}),
true,
},
{
Tuple([]Type{String}),
EmptyTuple,
false,
},
{
Tuple([]Type{String}),
Tuple([]Type{Number}),
false,
},
{
Tuple([]Type{String}),
Tuple([]Type{String, Number}),
false,
},
{
Tuple([]Type{String}),
Tuple([]Type{Tuple([]Type{String})}),
false,
},
}
for _, test := range tests {
t.Run(fmt.Sprintf("%#v.Equals(%#v)", test.LHS, test.RHS), func(t *testing.T) {
got := test.LHS.Equals(test.RHS)
if got != test.Expected {
t.Errorf("Equals returned %#v; want %#v", got, test.Expected)
}
})
}
}