@@ -1298,6 +1298,53 @@ func TestContainsAnyNode(t *testing.T) {
12981298 })
12991299}
13001300
1301+ func TestIsEmptyNode (t * testing.T ) {
1302+ t .Parallel ()
1303+ {
1304+ tests := []struct {
1305+ name string
1306+ lhs Evaler
1307+ err error
1308+ }{
1309+ {"LhsError" , newErrorEval (errTest ), errTest },
1310+ {"LhsTypeError" , newLiteralEval (types .True ), ErrType },
1311+ }
1312+ for _ , tt := range tests {
1313+ tt := tt
1314+ t .Run (tt .name , func (t * testing.T ) {
1315+ t .Parallel ()
1316+ n := newIsEmptyEval (tt .lhs )
1317+ v , err := n .Eval (Env {})
1318+ testutil .ErrorIs (t , err , tt .err )
1319+ AssertZeroValue (t , v )
1320+ })
1321+ }
1322+ }
1323+ {
1324+ empty := types.Set {}
1325+ trueOnly := types .NewSet (types .True )
1326+
1327+ tests := []struct {
1328+ name string
1329+ lhs Evaler
1330+ result bool
1331+ }{
1332+ {"emptyEmpty" , newLiteralEval (empty ), true },
1333+ {"trueAndOneEmpty" , newLiteralEval (trueOnly ), false },
1334+ }
1335+ for _ , tt := range tests {
1336+ tt := tt
1337+ t .Run (tt .name , func (t * testing.T ) {
1338+ t .Parallel ()
1339+ n := newIsEmptyEval (tt .lhs )
1340+ v , err := n .Eval (Env {})
1341+ testutil .OK (t , err )
1342+ AssertBoolValue (t , v , tt .result )
1343+ })
1344+ }
1345+ }
1346+ }
1347+
13011348func TestRecordLiteralNode (t * testing.T ) {
13021349 t .Parallel ()
13031350 tests := []struct {
0 commit comments