Wes McKinney created ARROW-5059: ----------------------------------- Summary: [C++][Gandiva] cbrt_* floating point tests can fail due to exact comparisons Key: ARROW-5059 URL: https://issues.apache.org/jira/browse/ARROW-5059 Project: Apache Arrow Issue Type: Bug Components: C++ - Gandiva Reporter: Wes McKinney Fix For: 0.14.0
I observed this when running the release verification on Ubuntu 14.04 {code} [ RUN ] TestExtendedMathOps.TestCbrt /tmp/arrow-0.13.0.WeWDY/apache-arrow-0.13.0/cpp/src/gandiva/precompiled/extended_math_ops_test.cc:27: Failure Expected: cbrt_float32(27) Which is: 3 To be equal to: 3 /tmp/arrow-0.13.0.WeWDY/apache-arrow-0.13.0/cpp/src/gandiva/precompiled/extended_math_ops_test.cc:28: Failure Expected: cbrt_float64(27) Which is: 3 To be equal to: 3 /tmp/arrow-0.13.0.WeWDY/apache-arrow-0.13.0/cpp/src/gandiva/precompiled/extended_math_ops_test.cc:29: Failure Expected: cbrt_float64(-27) Which is: -3 To be equal to: -3 {code} The tests in question: {code} TEST(TestExtendedMathOps, TestCbrt) { EXPECT_EQ(cbrt_int32(27), 3); EXPECT_EQ(cbrt_int64(27), 3); EXPECT_EQ(cbrt_float32(27), 3); EXPECT_EQ(cbrt_float64(27), 3); EXPECT_EQ(cbrt_float64(-27), -3); EXPECT_EQ(cbrt_float32(15.625), 2.5); EXPECT_EQ(cbrt_float64(15.625), 2.5); } {code} I believe that assertions involving floating point equality need to be approximate (up to a typical epsilon like 1E-14/1E-15) -- This message was sent by Atlassian JIRA (v7.6.3#76005)