| 87 | } |
| 88 | |
| 89 | void Assert(ReplaceFunction func, const Datum& array, const Datum& mask, |
| 90 | const Datum& replacements, const Datum& expected) { |
| 91 | ARROW_SCOPED_TRACE("Replacements: ", PrintDatum(replacements)); |
| 92 | ARROW_SCOPED_TRACE("Mask: ", PrintDatum(mask)); |
| 93 | ARROW_SCOPED_TRACE("Array: ", PrintDatum(array)); |
| 94 | |
| 95 | ASSERT_OK_AND_ASSIGN(auto actual, func(array, mask, replacements, nullptr)); |
| 96 | if (actual.is_array()) { |
| 97 | ASSERT_OK(actual.make_array()->ValidateFull()); |
| 98 | } else if (actual.is_scalar()) { |
| 99 | ASSERT_OK(actual.scalar()->ValidateFull()); |
| 100 | } else if (actual.is_arraylike()) { |
| 101 | ASSERT_OK(actual.chunked_array()->ValidateFull()); |
| 102 | } |
| 103 | |
| 104 | AssertDatumsApproxEqual(expected, actual, /*verbose=*/true); |
| 105 | } |
| 106 | |
| 107 | void AssertFillNullArray(FillNullFunction func, const std::shared_ptr<Array>& array, |
| 108 | const std::shared_ptr<Array>& expected) { |
no test coverage detected