You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@arrow.apache.org by "Kazuaki Ishizaki (Jira)" <ji...@apache.org> on 2020/04/15 09:00:06 UTC

[jira] [Updated] (ARROW-8467) [C++] Test cases using ArrayFromJSON assume only a little-endian platform

     [ https://issues.apache.org/jira/browse/ARROW-8467?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kazuaki Ishizaki updated ARROW-8467:
------------------------------------
    Description: 
Test cases using ArrayFromJSON assumes little endian platform

The following test cases seem to assume little-endian platform.
TEST_F(TestChunkedArray, View) at https://github.com/apache/arrow/blob/master/cpp/src/arrow/table_test.cc#L175
TEST(TestArrayView, PrimitiveAsFixedSizeBinary) at https://github.com/apache/arrow/blob/master/cpp/src/arrow/array_view_test.cc#L105
TEST(TestArrayView, StructAsStructSimple) at https://github.com/apache/arrow/blob/master/cpp/src/arrow/array_view_test.cc#L126
TEST(TestArrayView, ExtensionType) at https://github.com/apache/arrow/blob/master/cpp/src/arrow/array_view_test.cc

One of examples is {{PrimitiveAsFixedSizeBinary}}.

{code}
TEST(TestArrayView, PrimitiveAsFixedSizeBinary) {
  auto arr = ArrayFromJSON(int32(), "[2020568934, 2054316386, null]");
  auto expected = ArrayFromJSON(fixed_size_binary(4), R"(["foox", "barz", null])");
  CheckView(arr, expected);
  CheckView(expected, arr);
}
{code}


The expected strings are represented in binary as follows:
{code}
"foox" = [0x66 0x6f 0x6f 0x78]
"barz" = [0x62 0x61 0x72 0x7a]
{code}

This test gives a value as raw int32. The current values assume only a little-endian platform as follows to generate the expected binary sequence.
{code}
2020568934 = 0x786f6f66
2054316386 = 0x7a726162
{code}

  was:
Test cases using ArrayFromJSON assumes little endian platform

The following test cases seem to assume little-endian platform.
TEST_F(TestChunkedArray, View) at https://github.com/apache/arrow/blob/master/cpp/src/arrow/table_test.cc#L175
TEST(TestArrayView, PrimitiveAsFixedSizeBinary) at https://github.com/apache/arrow/blob/master/cpp/src/arrow/array_view_test.cc#L105
TEST(TestArrayView, StructAsStructSimple) at https://github.com/apache/arrow/blob/master/cpp/src/arrow/array_view_test.cc#L126

One of examples is {{PrimitiveAsFixedSizeBinary}}.

{code}
TEST(TestArrayView, PrimitiveAsFixedSizeBinary) {
  auto arr = ArrayFromJSON(int32(), "[2020568934, 2054316386, null]");
  auto expected = ArrayFromJSON(fixed_size_binary(4), R"(["foox", "barz", null])");
  CheckView(arr, expected);
  CheckView(expected, arr);
}
{code}


The expected strings are represented in binary as follows:
{code}
"foox" = [0x66 0x6f 0x6f 0x78]
"barz" = [0x62 0x61 0x72 0x7a]
{code}

This test gives a value as raw int32. The current values assume only a little-endian platform as follows to generate the expected binary sequence.
{code}
2020568934 = 0x786f6f66
2054316386 = 0x7a726162
{code}


> [C++] Test cases using ArrayFromJSON assume only a little-endian platform
> -------------------------------------------------------------------------
>
>                 Key: ARROW-8467
>                 URL: https://issues.apache.org/jira/browse/ARROW-8467
>             Project: Apache Arrow
>          Issue Type: Improvement
>          Components: C++
>            Reporter: Kazuaki Ishizaki
>            Priority: Minor
>
> Test cases using ArrayFromJSON assumes little endian platform
> The following test cases seem to assume little-endian platform.
> TEST_F(TestChunkedArray, View) at https://github.com/apache/arrow/blob/master/cpp/src/arrow/table_test.cc#L175
> TEST(TestArrayView, PrimitiveAsFixedSizeBinary) at https://github.com/apache/arrow/blob/master/cpp/src/arrow/array_view_test.cc#L105
> TEST(TestArrayView, StructAsStructSimple) at https://github.com/apache/arrow/blob/master/cpp/src/arrow/array_view_test.cc#L126
> TEST(TestArrayView, ExtensionType) at https://github.com/apache/arrow/blob/master/cpp/src/arrow/array_view_test.cc
> One of examples is {{PrimitiveAsFixedSizeBinary}}.
> {code}
> TEST(TestArrayView, PrimitiveAsFixedSizeBinary) {
>   auto arr = ArrayFromJSON(int32(), "[2020568934, 2054316386, null]");
>   auto expected = ArrayFromJSON(fixed_size_binary(4), R"(["foox", "barz", null])");
>   CheckView(arr, expected);
>   CheckView(expected, arr);
> }
> {code}
> The expected strings are represented in binary as follows:
> {code}
> "foox" = [0x66 0x6f 0x6f 0x78]
> "barz" = [0x62 0x61 0x72 0x7a]
> {code}
> This test gives a value as raw int32. The current values assume only a little-endian platform as follows to generate the expected binary sequence.
> {code}
> 2020568934 = 0x786f6f66
> 2054316386 = 0x7a726162
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)