Copilot commented on code in PR #49964:
URL: https://github.com/apache/arrow/pull/49964#discussion_r3339508790
##########
cpp/src/arrow/compute/kernels/scalar_compare_test.cc:
##########
@@ -1196,6 +1196,73 @@ TEST_F(TestStringCompareKernel, RandomCompareArrayArray)
{
}
}
+TEST(TestBinaryViewCompareKernel, ArrayArray) {
+ const auto cases = std::vector<std::shared_ptr<DataType>>{binary_view(),
utf8_view()};
+ const auto expected = std::vector<std::pair<std::string, std::string>>{
+ {"equal", "[true, false, false, false, false, false, null]"},
+ {"not_equal", "[false, true, true, true, true, true, null]"},
+ {"greater", "[false, false, false, false, false, true, null]"},
+ {"greater_equal", "[true, false, false, false, false, true, null]"},
+ {"less", "[false, true, true, true, true, false, null]"},
+ {"less_equal", "[true, true, true, true, true, false, null]"}};
+
+ for (const auto& ty : cases) {
+ auto lhs =
+ ArrayFromJSON(ty, R"(["", "abc", "abcdefghijkl", "abcdefghijklm",
"prefix_same_A",
+ "samepref_size", null])");
+ auto rhs = ArrayFromJSON(
+ ty, R"(["", "abd", "abcdefghijklm", "abcdefghijklz", "prefix_same_B",
+ "samepref", null])");
+
+ CheckScalarBinary("equal", ArrayFromJSON(ty, R"([])"), ArrayFromJSON(ty,
R"([])"),
+ ArrayFromJSON(boolean(), R"([])"));
+ CheckScalarBinary("equal", ArrayFromJSON(ty, R"([null])"),
+ ArrayFromJSON(ty, R"([null])"),
+ ArrayFromJSON(boolean(), R"([null])"));
+ for (const auto& function_and_expected : expected) {
+ CheckScalarBinary(function_and_expected.first, lhs, rhs,
+ ArrayFromJSON(boolean(),
function_and_expected.second));
+ }
+ }
+}
+
+TEST(TestBinaryViewCompareKernel, SlicedArrays) {
+ for (const auto& ty : {binary_view(), utf8_view()}) {
+ auto lhs = ArrayFromJSON(ty, R"(["skip", "abc", "abcdefghijklm", null,
+ "samepref_size", "tail"])")
+ ->Slice(1, 4);
+ auto rhs = ArrayFromJSON(ty, R"(["skip", "abc", "abcdefghijklz", "ignored",
+ "samepref", "tail"])")
+ ->Slice(1, 4);
+
+ CheckScalarBinary("equal", lhs, rhs,
+ ArrayFromJSON(boolean(), R"([true, false, null,
false])"));
+ CheckScalarBinary("less", lhs, rhs,
+ ArrayFromJSON(boolean(), R"([false, true, null,
false])"));
+ CheckScalarBinary("greater", lhs, rhs,
+ ArrayFromJSON(boolean(), R"([false, false, null,
true])"));
+ }
+}
+
+TEST(TestBinaryViewCompareKernel, ArrayScalar) {
+ for (const auto& ty : {binary_view(), utf8_view()}) {
+ auto arr = ArrayFromJSON(ty, R"(["", "abc", "abcdefghijklmnop", null])");
+ auto scalar = ScalarFromJSON(ty, R"("abc")");
+ auto null_scalar = ScalarFromJSON(ty, "null");
+
+ CheckScalarBinary("equal", arr, scalar,
+ ArrayFromJSON(boolean(), R"([false, true, false,
null])"));
+ CheckScalarBinary("equal", scalar, arr,
+ ArrayFromJSON(boolean(), R"([false, true, false,
null])"));
+ CheckScalarBinary("greater", arr, scalar,
+ ArrayFromJSON(boolean(), R"([false, false, true,
null])"));
+ CheckScalarBinary("less", scalar, arr,
+ ArrayFromJSON(boolean(), R"([false, false, true,
null])"));
+ CheckScalarBinary("equal", arr, null_scalar,
+ ArrayFromJSON(boolean(), R"([null, null, null, null])"));
+ }
Review Comment:
The new BinaryView/StringView tests in this file don’t currently exercise
all six comparison functions for the array-scalar / scalar-array cases (only
equal/greater/less are covered), which contradicts the PR description’s claim
of covering “all six comparison functions” for those shapes. Either expand the
test to cover not_equal/less_equal/greater_equal for array-scalar and
scalar-array, or adjust the PR description accordingly.
--
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: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]