lidavidm commented on a change in pull request #11853:
URL: https://github.com/apache/arrow/pull/11853#discussion_r778387239



##########
File path: cpp/src/arrow/compute/kernels/vector_replace_test.cc
##########
@@ -792,5 +850,763 @@ TYPED_TEST(TestReplaceBinary, ReplaceWithMaskRandom) {
   }
 }
 
+template <typename T>
+class TestFillNullNumeric : public TestReplaceKernel<T> {
+ protected:
+  std::shared_ptr<DataType> type() override { return 
default_type_instance<T>(); }
+};
+template <typename T>
+class TestFillNullDecimal : public TestReplaceKernel<T> {
+ protected:
+  std::shared_ptr<DataType> type() override { return 
default_type_instance<T>(); }
+};
+template <typename T>
+class TestFillNullBinary : public TestReplaceKernel<T> {
+ protected:
+  std::shared_ptr<DataType> type() override { return 
default_type_instance<T>(); }
+};
+
+class TestFillNullType : public TestReplaceKernel<NullType> {
+  std::shared_ptr<DataType> type() override { return 
default_type_instance<NullType>(); }
+};
+
+TYPED_TEST_SUITE(TestFillNullNumeric, NumericBasedTypes);
+TYPED_TEST_SUITE(TestFillNullDecimal, DecimalArrowTypes);
+TYPED_TEST_SUITE(TestFillNullBinary, BaseBinaryArrowTypes);
+
+TYPED_TEST(TestFillNullNumeric, FillNullValuesForward) {
+  this->AssertFillNullArray(FillNullForward, this->array("[]"), 
this->array("[]"));
+
+  this->AssertFillNullArray(FillNullForward, this->array("[null, null, null, 
null]"),
+                            this->array("[null, null, null, null]"));
+  this->AssertFillNullArray(FillNullForward, this->array("[null, null, null, 
4]"),
+                            this->array("[null, null, null, 4]"));
+  this->AssertFillNullArray(FillNullForward, this->array("[null, 4, null]"),
+                            this->array("[null, 4, 4]"));
+  this->AssertFillNullArray(FillNullForward, this->array("[null, null, 4, 
null]"),
+                            this->array("[null, null, 4, 4]"));
+  this->AssertFillNullArray(FillNullForward, this->array("[null, null, null, 
4, null]"),
+                            this->array("[null, null, null, 4, 4]"));
+  this->AssertFillNullArray(FillNullForward, this->array("[null, null, 4,null, 
5, null]"),
+                            this->array("[null, null, 4, 4, 5, 5]"));
+
+  this->AssertFillNullArray(FillNullForward, this->array("[1,4,null]"),
+                            this->array("[1,4,4]"));
+  this->AssertFillNullArray(FillNullForward,
+                            this->array("[1, 4, null, null, null, null]"),
+                            this->array("[1, 4 ,4, 4, 4, 4]"));
+  this->AssertFillNullArray(FillNullForward, this->array("[1, 4, null, 5, 
null, null]"),
+                            this->array("[1, 4 ,4, 5, 5, 5]"));
+  this->AssertFillNullArray(FillNullForward,
+                            this->array("[1, 4, null, 5, null, null, 6]"),
+                            this->array("[1, 4 ,4, 5, 5, 5, 6]"));
+  this->AssertFillNullArray(FillNullForward,
+                            this->array("[1, 4, null, 5, null, null, 5]"),
+                            this->array("[1, 4 ,4, 5, 5, 5, 5]"));
+  this->AssertFillNullArray(FillNullForward,
+                            this->array("[1, 4, null, 5, null, 6, null]"),
+                            this->array("[1, 4 ,4, 5, 5, 6, 6]"));
+  this->AssertFillNullArray(FillNullForward, this->array("[1, 4, null, 5, 
null, 6, 7]"),
+                            this->array("[1, 4 ,4, 5, 5, 6, 7]"));
+  this->AssertFillNullArray(FillNullForward, this->array("[1, 4 ,4, 5, 5, 6, 
7]"),
+                            this->array("[1, 4 ,4, 5, 5, 6, 7]"));
+}
+
+TYPED_TEST(TestFillNullDecimal, FillNullValuesForward) {
+  this->AssertFillNullArray(FillNullForward, this->array(R"([])"), 
this->array(R"([])"));
+
+  this->AssertFillNullArray(FillNullForward, this->array(R"([null, null, null, 
null])"),
+                            this->array(R"([null, null, null, null])"));
+  this->AssertFillNullArray(FillNullForward,
+                            this->array(R"([null, null, null, "30.00"])"),
+                            this->array(R"([null, null, null, "30.00"])"));
+  this->AssertFillNullArray(FillNullForward, this->array(R"([null, "30.00", 
null])"),
+                            this->array(R"([null, "30.00", "30.00"])"));
+  this->AssertFillNullArray(FillNullForward,
+                            this->array(R"([null, null, "30.00", null])"),
+                            this->array(R"([null, null, "30.00", "30.00"])"));
+  this->AssertFillNullArray(FillNullForward,
+                            this->array(R"([null, null, null, "30.00", 
null])"),
+                            this->array(R"([null, null, null, "30.00", 
"30.00"])"));
+  this->AssertFillNullArray(
+      FillNullForward, this->array(R"([null, null, "30.00",null, "5.00", 
null])"),
+      this->array(R"([null, null, "30.00", "30.00", "5.00", "5.00"])"));
+
+  this->AssertFillNullArray(FillNullForward, 
this->array(R"(["10.00","30.00",null])"),
+                            this->array(R"(["10.00","30.00","30.00"])"));
+  this->AssertFillNullArray(
+      FillNullForward, this->array(R"(["10.00", "30.00", null, null, null, 
null])"),
+      this->array(R"(["10.00", "30.00" ,"30.00", "30.00", "30.00", 
"30.00"])"));
+  this->AssertFillNullArray(
+      FillNullForward, this->array(R"(["10.00", "30.00", null, "5.00", null, 
null])"),
+      this->array(R"(["10.00", "30.00" ,"30.00", "5.00", "5.00", "5.00"])"));
+  this->AssertFillNullArray(
+      FillNullForward,
+      this->array(R"(["10.00", "30.00", null, "5.00", null, null, "6.00"])"),
+      this->array(R"(["10.00", "30.00" ,"30.00", "5.00", "5.00", "5.00", 
"6.00"])"));
+  this->AssertFillNullArray(
+      FillNullForward,
+      this->array(R"(["10.00", "30.00", null, "5.00", null, null, "5.00"])"),
+      this->array(R"(["10.00", "30.00" ,"30.00", "5.00", "5.00", "5.00", 
"5.00"])"));
+  this->AssertFillNullArray(
+      FillNullForward,
+      this->array(R"(["10.00", "30.00", null, "5.00", null, "6.00", null])"),
+      this->array(R"(["10.00", "30.00" ,"30.00", "5.00", "5.00", "6.00", 
"6.00"])"));
+  this->AssertFillNullArray(
+      FillNullForward,
+      this->array(R"(["10.00", "30.00", null, "5.00", null, "6.00", "7.00"])"),
+      this->array(R"(["10.00", "30.00" ,"30.00", "5.00", "5.00", "6.00", 
"7.00"])"));
+  this->AssertFillNullArray(
+      FillNullForward,
+      this->array(R"(["10.00", "30.00" ,"30.00", "5.00", "5.00", "6.00", 
"7.00"])"),
+      this->array(R"(["10.00", "30.00" ,"30.00", "5.00", "5.00", "6.00", 
"7.00"])"));
+}
+
+TYPED_TEST(TestFillNullBinary, FillNullValuesForward) {
+  this->AssertFillNullArray(FillNullForward, this->array(R"([])"), 
this->array(R"([])"));
+
+  this->AssertFillNullArray(FillNullForward, this->array(R"([null, null, null, 
null])"),
+                            this->array(R"([null, null, null, null])"));
+  this->AssertFillNullArray(FillNullForward, this->array(R"([null, null, null, 
"ccc"])"),
+                            this->array(R"([null, null, null, "ccc"])"));
+  this->AssertFillNullArray(FillNullForward, this->array(R"([null, "ccc", 
null])"),
+                            this->array(R"([null, "ccc", "ccc"])"));
+  this->AssertFillNullArray(FillNullForward, this->array(R"([null, null, 
"ccc", null])"),
+                            this->array(R"([null, null, "ccc", "ccc"])"));
+  this->AssertFillNullArray(FillNullForward,
+                            this->array(R"([null, null, null, "ccc", null])"),
+                            this->array(R"([null, null, null, "ccc", 
"ccc"])"));
+  this->AssertFillNullArray(FillNullForward,
+                            this->array(R"([null, null, "ccc",null, "xyz", 
null])"),
+                            this->array(R"([null, null, "ccc", "ccc", "xyz", 
"xyz"])"));
+
+  this->AssertFillNullArray(FillNullForward, 
this->array(R"(["aaa","ccc",null])"),
+                            this->array(R"(["aaa","ccc","ccc"])"));
+  this->AssertFillNullArray(FillNullForward,
+                            this->array(R"(["aaa", "ccc", null, null, null, 
null])"),
+                            this->array(R"(["aaa", "ccc" ,"ccc", "ccc", "ccc", 
"ccc"])"));
+  this->AssertFillNullArray(FillNullForward,
+                            this->array(R"(["aaa", "ccc", null, "xyz", null, 
null])"),
+                            this->array(R"(["aaa", "ccc" ,"ccc", "xyz", "xyz", 
"xyz"])"));
+  this->AssertFillNullArray(
+      FillNullForward, this->array(R"(["aaa", "ccc", null, "xyz", null, null, 
"qwert"])"),
+      this->array(R"(["aaa", "ccc" ,"ccc", "xyz", "xyz", "xyz", "qwert"])"));
+  this->AssertFillNullArray(
+      FillNullForward, this->array(R"(["aaa", "ccc", null, "xyz", null, null, 
"xyz"])"),
+      this->array(R"(["aaa", "ccc" ,"ccc", "xyz", "xyz", "xyz", "xyz"])"));
+  this->AssertFillNullArray(
+      FillNullForward, this->array(R"(["aaa", "ccc", null, "xyz", null, 
"qwert", null])"),
+      this->array(R"(["aaa", "ccc" ,"ccc", "xyz", "xyz", "qwert", "qwert"])"));
+  this->AssertFillNullArray(
+      FillNullForward, this->array(R"(["aaa", "ccc", null, "xyz", null, 
"qwert", "uy"])"),
+      this->array(R"(["aaa", "ccc" ,"ccc", "xyz", "xyz", "qwert", "uy"])"));
+  this->AssertFillNullArray(
+      FillNullForward,
+      this->array(R"(["aaa", "ccc" ,"ccc", "xyz", "xyz", "qwert", "uy"])"),
+      this->array(R"(["aaa", "ccc" ,"ccc", "xyz", "xyz", "qwert", "uy"])"));
+}
+
+TYPED_TEST(TestFillNullNumeric, FillNullValuesBackward) {
+  this->AssertFillNullArray(FillNullBackward, this->array("[]"), 
this->array("[]"));
+  this->AssertFillNullArray(FillNullBackward, this->array("[null, null, null, 
null]"),
+                            this->array("[null, null, null, null]"));
+  this->AssertFillNullArray(FillNullBackward, this->array("[null, 4, null, 
null, null]"),
+                            this->array("[4, 4,null, null, null]"));
+  this->AssertFillNullArray(FillNullBackward, this->array("[null, null, null, 
4]"),
+                            this->array("[4, 4, 4, 4]"));
+  this->AssertFillNullArray(FillNullBackward, this->array("[null, 4, null]"),
+                            this->array("[4, 4, null]"));
+  this->AssertFillNullArray(FillNullBackward, this->array("[null, null, 4, 
null]"),
+                            this->array("[4, 4, 4, null]"));
+  this->AssertFillNullArray(FillNullBackward, this->array("[null, null, null, 
4, null]"),
+                            this->array("[4, 4, 4, 4, null]"));
+  this->AssertFillNullArray(FillNullBackward,
+                            this->array("[null, null, 4,null, 5, null]"),
+                            this->array("[4, 4, 4, 5, 5, null]"));
+
+  this->AssertFillNullArray(FillNullBackward, this->array("[1, 4, null]"),
+                            this->array("[1, 4, null]"));
+  this->AssertFillNullArray(FillNullBackward,
+                            this->array("[1, 4, null, null, null, null]"),
+                            this->array("[1, 4 ,null, null, null, null]"));
+  this->AssertFillNullArray(FillNullBackward, this->array("[1, 4, null, 5, 
null, null]"),
+                            this->array("[1, 4 , 5, 5, null, null]"));
+  this->AssertFillNullArray(FillNullBackward,
+                            this->array("[1, 4, null, 5, null, null, 6]"),
+                            this->array("[1, 4 ,5, 5, 6, 6, 6]"));
+  this->AssertFillNullArray(FillNullBackward,
+                            this->array("[1, 4, null, 5, null, null, 5]"),
+                            this->array("[1, 4 ,5 , 5, 5, 5, 5]"));
+  this->AssertFillNullArray(FillNullBackward,
+                            this->array("[1, 4, null, 5, null, 6, null]"),
+                            this->array("[1, 4 ,5 , 5, 6, 6, null]"));
+  this->AssertFillNullArray(FillNullBackward, this->array("[1, 4, null, 5, 
null, 6, 7]"),
+                            this->array("[1, 4 ,5, 5, 6, 6, 7]"));
+  this->AssertFillNullArray(FillNullBackward, this->array("[1, 4 ,5, 5, 6, 6, 
7]"),
+                            this->array("[1, 4 ,5, 5, 6, 6, 7]"));
+}
+
+TYPED_TEST(TestFillNullDecimal, FillNullValuesBackward) {
+  this->AssertFillNullArray(FillNullBackward, this->array(R"([])"), 
this->array(R"([])"));
+
+  this->AssertFillNullArray(FillNullBackward, this->array(R"([null, null, 
null, null])"),
+                            this->array(R"([null, null, null, null])"));
+  this->AssertFillNullArray(FillNullBackward,
+                            this->array(R"([null, "40.00", null, null, 
null])"),
+                            this->array(R"(["40.00", "40.00",null, null, 
null])"));
+  this->AssertFillNullArray(FillNullBackward,
+                            this->array(R"([null, null, null, "40.00"])"),
+                            this->array(R"(["40.00", "40.00", "40.00", 
"40.00"])"));
+  this->AssertFillNullArray(FillNullBackward, this->array(R"([null, "40.00", 
null])"),
+                            this->array(R"(["40.00", "40.00", null])"));
+  this->AssertFillNullArray(FillNullBackward,
+                            this->array(R"([null, null, "40.00", null])"),
+                            this->array(R"(["40.00", "40.00", "40.00", 
null])"));
+  this->AssertFillNullArray(FillNullBackward,
+                            this->array(R"([null, null, null, "40.00", 
null])"),
+                            this->array(R"(["40.00", "40.00", "40.00", 
"40.00", null])"));
+  this->AssertFillNullArray(
+      FillNullBackward, this->array(R"([null, null, "40.00",null, "50.00", 
null])"),
+      this->array(R"(["40.00", "40.00", "40.00", "50.00", "50.00", null])"));
+
+  this->AssertFillNullArray(FillNullBackward, this->array(R"(["10.00", 
"40.00", null])"),
+                            this->array(R"(["10.00", "40.00", null])"));
+  this->AssertFillNullArray(FillNullBackward,
+                            this->array(R"(["10.00", "40.00", null, null, 
null, null])"),
+                            this->array(R"(["10.00", "40.00" ,null, null, 
null, null])"));
+  this->AssertFillNullArray(
+      FillNullBackward, this->array(R"(["10.00", "40.00", null, "50.00", null, 
null])"),
+      this->array(R"(["10.00", "40.00" , "50.00", "50.00", null, null])"));
+  this->AssertFillNullArray(
+      FillNullBackward,
+      this->array(R"(["10.00", "40.00", null, "50.00", null, null, "6.00"])"),
+      this->array(R"(["10.00", "40.00" ,"50.00", "50.00", "6.00", "6.00", 
"6.00"])"));
+  this->AssertFillNullArray(
+      FillNullBackward,
+      this->array(R"(["10.00", "40.00", null, "50.00", null, null, "50.00"])"),
+      this->array(R"(["10.00", "40.00" ,"50.00" , "50.00", "50.00", "50.00", 
"50.00"])"));
+  this->AssertFillNullArray(
+      FillNullBackward,
+      this->array(R"(["10.00", "40.00", null, "50.00", null, "6.00", null])"),
+      this->array(R"(["10.00", "40.00" ,"50.00" , "50.00", "6.00", "6.00", 
null])"));
+  this->AssertFillNullArray(
+      FillNullBackward,
+      this->array(R"(["10.00", "40.00", null, "50.00", null, "6.00", 
"7.00"])"),
+      this->array(R"(["10.00", "40.00" ,"50.00", "50.00", "6.00", "6.00", 
"7.00"])"));
+  this->AssertFillNullArray(
+      FillNullBackward,
+      this->array(R"(["10.00", "40.00" ,"50.00", "50.00", "6.00", "6.00", 
"7.00"])"),
+      this->array(R"(["10.00", "40.00" ,"50.00", "50.00", "6.00", "6.00", 
"7.00"])"));
+}
+
+TYPED_TEST(TestFillNullBinary, FillNullValuesBackward) {
+  this->AssertFillNullArray(FillNullBackward, this->array(R"([])"), 
this->array(R"([])"));
+
+  this->AssertFillNullArray(FillNullBackward, this->array(R"([null, null, 
null, null])"),
+                            this->array(R"([null, null, null, null])"));
+  this->AssertFillNullArray(FillNullBackward,
+                            this->array(R"([null, "afd", null, null, null])"),
+                            this->array(R"(["afd", "afd",null, null, null])"));
+  this->AssertFillNullArray(FillNullBackward, this->array(R"([null, null, 
null, "afd"])"),
+                            this->array(R"(["afd", "afd", "afd", "afd"])"));
+  this->AssertFillNullArray(FillNullBackward, this->array(R"([null, "afd", 
null])"),
+                            this->array(R"(["afd", "afd", null])"));
+  this->AssertFillNullArray(FillNullBackward, this->array(R"([null, null, 
"afd", null])"),
+                            this->array(R"(["afd", "afd", "afd", null])"));
+  this->AssertFillNullArray(FillNullBackward,
+                            this->array(R"([null, null, null, "afd", null])"),
+                            this->array(R"(["afd", "afd", "afd", "afd", 
null])"));
+  this->AssertFillNullArray(FillNullBackward,
+                            this->array(R"([null, null, "afd",null, "qwe", 
null])"),
+                            this->array(R"(["afd", "afd", "afd", "qwe", "qwe", 
null])"));
+
+  this->AssertFillNullArray(FillNullBackward, this->array(R"(["tyu", "afd", 
null])"),
+                            this->array(R"(["tyu", "afd", null])"));
+  this->AssertFillNullArray(FillNullBackward,
+                            this->array(R"(["tyu", "afd", null, null, null, 
null])"),
+                            this->array(R"(["tyu", "afd" ,null, null, null, 
null])"));
+  this->AssertFillNullArray(FillNullBackward,
+                            this->array(R"(["tyu", "afd", null, "qwe", null, 
null])"),
+                            this->array(R"(["tyu", "afd" , "qwe", "qwe", null, 
null])"));
+  this->AssertFillNullArray(
+      FillNullBackward,
+      this->array(R"(["tyu", "afd", null, "qwe", null, null, "oiutyu"])"),
+      this->array(R"(["tyu", "afd" ,"qwe", "qwe", "oiutyu", "oiutyu", 
"oiutyu"])"));
+  this->AssertFillNullArray(
+      FillNullBackward, this->array(R"(["tyu", "afd", null, "qwe", null, null, 
"qwe"])"),
+      this->array(R"(["tyu", "afd" ,"qwe" , "qwe", "qwe", "qwe", "qwe"])"));
+  this->AssertFillNullArray(
+      FillNullBackward,
+      this->array(R"(["tyu", "afd", null, "qwe", null, "oiutyu", null])"),
+      this->array(R"(["tyu", "afd" ,"qwe" , "qwe", "oiutyu", "oiutyu", 
null])"));
+  this->AssertFillNullArray(
+      FillNullBackward,
+      this->array(R"(["tyu", "afd", null, "qwe", null, "oiutyu", 
"aaaagggbbb"])"),
+      this->array(R"(["tyu", "afd" ,"qwe", "qwe", "oiutyu", "oiutyu", 
"aaaagggbbb"])"));
+  this->AssertFillNullArray(
+      FillNullBackward,
+      this->array(R"(["tyu", "afd" ,"qwe", "qwe", "oiutyu", "oiutyu", 
"aaaagggbbb"])"),
+      this->array(R"(["tyu", "afd" ,"qwe", "qwe", "oiutyu", "oiutyu", 
"aaaagggbbb"])"));
+}
+
+// For Test Blocks
+TYPED_TEST(TestFillNullNumeric, FillNullForwardLargeInput) {
+  using CType = typename TypeTraits<TypeParam>::CType;
+  random::RandomArrayGenerator rand(/*seed=*/1000);
+  int64_t len_null = 500;
+  int64_t len_random = 1000;
+  std::shared_ptr<Array> array_random =
+      rand.ArrayOf(this->type(), len_random, /*nulls=*/0);
+  auto x_ptr = array_random->data()->template GetValues<CType>(1);
+  ASSERT_OK_AND_ASSIGN(auto array_null, MakeArrayOfNull(array_random->type(), 
len_null));
+  auto array_null_filled =
+      ConstantArrayGenerator::Numeric<TypeParam>(len_null, x_ptr[len_random - 
1]);
+  {
+    ASSERT_OK_AND_ASSIGN(auto value_array,
+                         Concatenate({array_random, array_null, 
array_random}));
+    ASSERT_OK_AND_ASSIGN(auto result_array,
+                         Concatenate({array_random, array_null_filled, 
array_random}));
+    this->AssertFillNullArray(FillNullForward, value_array, result_array);
+  }
+}
+
+TYPED_TEST(TestFillNullNumeric, FillNullBackwardLargeInput) {
+  using CType = typename TypeTraits<TypeParam>::CType;
+  random::RandomArrayGenerator rand(/*seed=*/1000);
+  int64_t len_null = 500;
+  int64_t len_random = 1000;
+  std::shared_ptr<Array> array_random =
+      rand.ArrayOf(this->type(), len_random, /*nulls=*/0);
+  auto x_ptr = array_random->data()->template GetValues<CType>(1);
+  ASSERT_OK_AND_ASSIGN(auto array_null, MakeArrayOfNull(array_random->type(), 
len_null));
+  auto array_null_filled = 
ConstantArrayGenerator::Numeric<TypeParam>(len_null, x_ptr[0]);
+  {
+    ASSERT_OK_AND_ASSIGN(auto value_array,
+                         Concatenate({array_random, array_null, 
array_random}));
+    ASSERT_OK_AND_ASSIGN(auto result_array,
+                         Concatenate({array_random, array_null_filled, 
array_random}));
+    this->AssertFillNullArray(FillNullBackward, value_array, result_array);
+  }
+}
+
+TYPED_TEST(TestFillNullNumeric, FillNullForwardSliced) {
+  auto first_input_array =
+      this->array("[1, 4, null, null, 7, null, null, 8, 9, 5, null]");
+  auto expected_slice_length_2 =
+      this->array("[1, 4, null, null, 7, 7, null, 8, 9, 5, null]");
+  auto expected_slice_length_3 = this->array("[1, 4, 4, null, 7, 7, null, 8, 
9, 5, 5]");
+  auto expected_slice_length_4 = this->array("[1, 4, 4, 4, 7, 7, 7, 8, 9, 5, 
5]");
+  this->AssertFillNullArraySlices(FillNullForward, first_input_array,
+                                  expected_slice_length_2, 
expected_slice_length_3,
+                                  expected_slice_length_4);
+}
+
+TYPED_TEST(TestFillNullBinary, FillNullForwardSliced) {
+  auto first_input_array = this->array(
+      R"(["avb", "iyy", null, null, "mnh", null, null, "ttr", "gfd", "lkj", 
null])");
+  auto expected_slice_length_2 = this->array(
+      R"(["avb", "iyy", null, null, "mnh", "mnh", null, "ttr", "gfd", "lkj", 
null])");
+  auto expected_slice_length_3 = this->array(
+      R"(["avb", "iyy", "iyy", null, "mnh", "mnh", null, "ttr", "gfd", "lkj", 
"lkj"])");
+  auto expected_slice_length_4 = this->array(
+      R"(["avb", "iyy", "iyy", "iyy", "mnh", "mnh", "mnh", "ttr", "gfd", 
"lkj", "lkj"])");
+
+  this->AssertFillNullArraySlices(FillNullForward, first_input_array,
+                                  expected_slice_length_2, 
expected_slice_length_3,
+                                  expected_slice_length_4);
+}
+
+TYPED_TEST(TestFillNullNumeric, FillNullForwardRandomSliced) {
+  using CType = typename TypeTraits<TypeParam>::CType;
+  random::RandomArrayGenerator rand(/*seed=*/666);
+  int64_t len_random = 64;
+  int64_t len_null = 64;
+  int64_t slices = 15;
+  std::vector<std::shared_ptr<Array>> vector_values;
+  std::vector<std::shared_ptr<Array>> vector_filled;
+  for (int i = 0; i < slices; i++) {
+    std::shared_ptr<Array> array_random =
+        rand.Numeric<TypeParam>(len_random, /*min=*/5, /*max=*/200, 
/*null_count=*/0);
+    if (array_random) {

Review comment:
       Can these checks be eliminated?
   
   That said, I'm not sure we need random tests for slicing. I think the 
hardcoded ones should be sufficient.




-- 
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]


Reply via email to