hanyuzheng7 commented on code in PR #22951: URL: https://github.com/apache/flink/pull/22951#discussion_r1486481830
########## flink-table/flink-table-common/src/test/java/org/apache/flink/table/types/inference/InputTypeStrategiesTest.java: ########## @@ -640,6 +640,28 @@ ANY, explicit(DataTypes.INT()) .expectArgumentTypes( DataTypes.ARRAY(DataTypes.INT().notNull()).notNull(), DataTypes.INT()), + TestSpec.forStrategy(sequence(SpecificInputTypeStrategies.ARRAY_COMPARABLE)) + .expectSignature("f(<ARRAY<COMPARABLE>>)") + .calledWithArgumentTypes(DataTypes.ARRAY(DataTypes.ROW())) + .expectErrorMessage( + "Invalid input arguments. Expected signatures are:\n" + + "f(<ARRAY<COMPARABLE>>)"), + TestSpec.forStrategy( + "Strategy fails if input argument type is not ARRAY", + sequence(SpecificInputTypeStrategies.ARRAY_COMPARABLE)) + .calledWithArgumentTypes(DataTypes.INT()) + .expectErrorMessage( + "Invalid input arguments. Expected signatures are:\n" + + "f(<ARRAY<COMPARABLE>>)"), + TestSpec.forStrategy( + "Strategy fails if the number of input arguments are not one", + sequence(SpecificInputTypeStrategies.ARRAY_COMPARABLE)) + .calledWithArgumentTypes( + DataTypes.ARRAY(DataTypes.INT()), + DataTypes.ARRAY(DataTypes.STRING())) + .expectErrorMessage( + "Invalid input arguments. Expected signatures are:\n" + + "f(<ARRAY<COMPARABLE>>)"), Review Comment: Yes, although I use `sequence`, actually I test `ARRAY_COMPARABLE` strategy here. If I don't use `sequence`, I cannot test ArgumentTypeStrategy here. I saw other contributor using `sequence` testing their `ArgumentTypeStrategy` in this class. Because https://github.com/apache/flink/pull/22951#discussion_r1484467843, I delete old test file([flink-table/flink-table-common/src/test/java/org/apache/flink/table/types/inference/strategies/ArrayComparableElementTypeStrategyTest.java](url)) and add these test in the `InputTypeStrategiesTest`. ########## flink-table/flink-table-common/src/test/java/org/apache/flink/table/types/inference/InputTypeStrategiesTest.java: ########## @@ -640,6 +640,28 @@ ANY, explicit(DataTypes.INT()) .expectArgumentTypes( DataTypes.ARRAY(DataTypes.INT().notNull()).notNull(), DataTypes.INT()), + TestSpec.forStrategy(sequence(SpecificInputTypeStrategies.ARRAY_COMPARABLE)) + .expectSignature("f(<ARRAY<COMPARABLE>>)") + .calledWithArgumentTypes(DataTypes.ARRAY(DataTypes.ROW())) + .expectErrorMessage( + "Invalid input arguments. Expected signatures are:\n" + + "f(<ARRAY<COMPARABLE>>)"), + TestSpec.forStrategy( + "Strategy fails if input argument type is not ARRAY", + sequence(SpecificInputTypeStrategies.ARRAY_COMPARABLE)) + .calledWithArgumentTypes(DataTypes.INT()) + .expectErrorMessage( + "Invalid input arguments. Expected signatures are:\n" + + "f(<ARRAY<COMPARABLE>>)"), + TestSpec.forStrategy( + "Strategy fails if the number of input arguments are not one", + sequence(SpecificInputTypeStrategies.ARRAY_COMPARABLE)) + .calledWithArgumentTypes( + DataTypes.ARRAY(DataTypes.INT()), + DataTypes.ARRAY(DataTypes.STRING())) + .expectErrorMessage( + "Invalid input arguments. Expected signatures are:\n" + + "f(<ARRAY<COMPARABLE>>)"), Review Comment: Yes, although I use `sequence`, actually I test `ARRAY_COMPARABLE` strategy here. If I don't use `sequence`, I cannot test ArgumentTypeStrategy here. I saw other contributor using `sequence` testing their `ArgumentTypeStrategy` in this class. Because https://github.com/apache/flink/pull/22951#discussion_r1484467843, I deleted old test file([flink-table/flink-table-common/src/test/java/org/apache/flink/table/types/inference/strategies/ArrayComparableElementTypeStrategyTest.java](url)) and add these test in the `InputTypeStrategiesTest`. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: issues-unsubscr...@flink.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org