milesgranger commented on code in PR #14395: URL: https://github.com/apache/arrow/pull/14395#discussion_r994536958
########## cpp/src/arrow/compute/kernels/scalar_nested_test.cc: ########## @@ -116,6 +117,64 @@ TEST(TestScalarNested, ListElementInvalid) { Raises(StatusCode::Invalid)); } +void CheckListSlice(std::shared_ptr<Array> input, std::shared_ptr<Array> expected, + SliceOptions& args) { + ASSERT_OK_AND_ASSIGN(auto result, CallFunction("list_slice", {input}, &args)); + ASSERT_EQ(result, expected); +} + +TEST(TestScalarNested, ListSlice) { + const auto value_types = {float32(), int32()}; + for (auto value_type : value_types) { + auto inputs = {ArrayFromJSON(list(value_type), "[[1, 2, 3], [4, 5], [6]]"), + ArrayFromJSON(fixed_size_list(value_type, 3), + "[[1, 2, 3], [4, 5, null], [6, null, null]]")}; + for (auto input : inputs) { + SliceOptions args(0, 2); + auto expected = + ArrayFromJSON(fixed_size_list(value_type, 2), "[[1, 2], [4, 5], [6, null]]"); + CheckListSlice(input, expected, args); + + args.start = 1; + expected = ArrayFromJSON(fixed_size_list(value_type, 1), "[[2], [5], [null]]"); + CheckListSlice(input, expected, args); + + args.start = 2; + args.stop = 4; Review Comment: It'll currently result in an error about `start` needing to be less than `stop`. Should it be adapted to allow `start == stop` to result in empty lists? -- 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: github-unsubscr...@arrow.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org