You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by ap...@apache.org on 2022/08/09 07:11:54 UTC

[arrow] branch master updated: ARROW-17304: [C++][Compute] Print actual values when compare fails in aggregate test (#13814)

This is an automated email from the ASF dual-hosted git repository.

apitrou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/arrow.git


The following commit(s) were added to refs/heads/master by this push:
     new 709f8f336a ARROW-17304: [C++][Compute] Print actual values when compare fails in aggregate test (#13814)
709f8f336a is described below

commit 709f8f336a704f5ac907d7cbf285600fdaf70014
Author: Yibo Cai <yi...@arm.com>
AuthorDate: Tue Aug 9 15:11:44 2022 +0800

    ARROW-17304: [C++][Compute] Print actual values when compare fails in aggregate test (#13814)
    
    Authored-by: Yibo Cai <yi...@arm.com>
    Signed-off-by: Antoine Pitrou <pi...@free.fr>
---
 cpp/src/arrow/compute/kernels/aggregate_test.cc | 13 ++++++++++---
 1 file changed, 10 insertions(+), 3 deletions(-)

diff --git a/cpp/src/arrow/compute/kernels/aggregate_test.cc b/cpp/src/arrow/compute/kernels/aggregate_test.cc
index c7909487fb..8f400b2d24 100644
--- a/cpp/src/arrow/compute/kernels/aggregate_test.cc
+++ b/cpp/src/arrow/compute/kernels/aggregate_test.cc
@@ -2532,6 +2532,7 @@ template <typename CType>
 void CheckModes(const Datum& array, const ModeOptions options,
                 const std::vector<CType>& expected_modes,
                 const std::vector<int64_t>& expected_counts) {
+  ARROW_SCOPED_TRACE("Mode Options: ", options.ToString());
   ASSERT_OK_AND_ASSIGN(Datum out, Mode(array, options));
   ValidateOutput(out);
   const StructArray out_array(out.array());
@@ -2543,7 +2544,9 @@ void CheckModes(const Datum& array, const ModeOptions options,
   for (int i = 0; i < out_array.length(); ++i) {
     // equal or nan equal
     ASSERT_TRUE((expected_modes[i] == out_modes[i]) ||
-                (expected_modes[i] != expected_modes[i] && out_modes[i] != out_modes[i]));
+                (expected_modes[i] != expected_modes[i] && out_modes[i] != out_modes[i]))
+        << "  Actual Value: " << out_modes[i] << "\n"
+        << "Expected Value: " << expected_modes[i];
     ASSERT_EQ(expected_counts[i], out_counts[i]);
   }
 }
@@ -2552,6 +2555,7 @@ template <>
 void CheckModes<bool>(const Datum& array, const ModeOptions options,
                       const std::vector<bool>& expected_modes,
                       const std::vector<int64_t>& expected_counts) {
+  ARROW_SCOPED_TRACE("Mode Options: ", options.ToString());
   ASSERT_OK_AND_ASSIGN(Datum out, Mode(array, options));
   ValidateOutput(out);
   const StructArray out_array(out.array());
@@ -2561,7 +2565,7 @@ void CheckModes<bool>(const Datum& array, const ModeOptions options,
   const uint8_t* out_modes = out_array.field(0)->data()->GetValues<uint8_t>(1);
   const int64_t* out_counts = out_array.field(1)->data()->GetValues<int64_t>(1);
   for (int i = 0; i < out_array.length(); ++i) {
-    ASSERT_TRUE(expected_modes[i] == bit_util::GetBit(out_modes, i));
+    ASSERT_EQ(expected_modes[i], bit_util::GetBit(out_modes, i));
     ASSERT_EQ(expected_counts[i], out_counts[i]);
   }
 }
@@ -3337,6 +3341,7 @@ class TestPrimitiveQuantileKernel : public ::testing::Test {
 
     for (size_t i = 0; i < this->interpolations_.size(); ++i) {
       options.interpolation = this->interpolations_[i];
+      ARROW_SCOPED_TRACE("Quantile Options: ", options.ToString());
 
       ASSERT_OK_AND_ASSIGN(Datum out, Quantile(array, options));
       const auto& out_array = out.make_array();
@@ -3351,7 +3356,9 @@ class TestPrimitiveQuantileKernel : public ::testing::Test {
           const auto& numeric_scalar =
               checked_pointer_cast<DoubleScalar>(expected[j][i].scalar());
           ASSERT_TRUE((quantiles[j] == numeric_scalar->value) ||
-                      (std::isnan(quantiles[j]) && std::isnan(numeric_scalar->value)));
+                      (std::isnan(quantiles[j]) && std::isnan(numeric_scalar->value)))
+              << "  Actual Value: " << quantiles[j] << "\n"
+              << "Expected Value: " << numeric_scalar->value;
         }
       } else {
         AssertTypeEqual(out_array->type(), type_singleton());