1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
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)
}
})
}
}
|