summaryrefslogtreecommitdiffstats
path: root/src/arrow/ruby/red-parquet/test
diff options
context:
space:
mode:
authorDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
committerDaniel Baumann <daniel.baumann@progress-linux.org>2024-04-21 11:54:28 +0000
commite6918187568dbd01842d8d1d2c808ce16a894239 (patch)
tree64f88b554b444a49f656b6c656111a145cbbaa28 /src/arrow/ruby/red-parquet/test
parentInitial commit. (diff)
downloadceph-e6918187568dbd01842d8d1d2c808ce16a894239.tar.xz
ceph-e6918187568dbd01842d8d1d2c808ce16a894239.zip
Adding upstream version 18.2.2.upstream/18.2.2
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'src/arrow/ruby/red-parquet/test')
-rw-r--r--src/arrow/ruby/red-parquet/test/helper.rb22
-rwxr-xr-xsrc/arrow/ruby/red-parquet/test/run-test.rb50
-rw-r--r--src/arrow/ruby/red-parquet/test/test-arrow-table.rb99
3 files changed, 171 insertions, 0 deletions
diff --git a/src/arrow/ruby/red-parquet/test/helper.rb b/src/arrow/ruby/red-parquet/test/helper.rb
new file mode 100644
index 000000000..169d1df42
--- /dev/null
+++ b/src/arrow/ruby/red-parquet/test/helper.rb
@@ -0,0 +1,22 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+require "parquet"
+
+require "tempfile"
+
+require "test-unit"
diff --git a/src/arrow/ruby/red-parquet/test/run-test.rb b/src/arrow/ruby/red-parquet/test/run-test.rb
new file mode 100755
index 000000000..48d2c49e1
--- /dev/null
+++ b/src/arrow/ruby/red-parquet/test/run-test.rb
@@ -0,0 +1,50 @@
+#!/usr/bin/env ruby
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+$VERBOSE = true
+
+require "pathname"
+
+(ENV["ARROW_DLL_PATH"] || "").split(File::PATH_SEPARATOR).each do |path|
+ RubyInstaller::Runtime.add_dll_directory(path)
+end
+
+base_dir = Pathname.new(__dir__).parent.expand_path
+arrow_base_dir = base_dir.parent + "red-arrow"
+
+lib_dir = base_dir + "lib"
+test_dir = base_dir + "test"
+
+arrow_lib_dir = arrow_base_dir + "lib"
+arrow_ext_dir = arrow_base_dir + "ext" + "arrow"
+
+build_dir = ENV["BUILD_DIR"]
+if build_dir
+ arrow_build_dir = Pathname.new(build_dir) + "red-arrow"
+else
+ arrow_build_dir = arrow_ext_dir
+end
+
+$LOAD_PATH.unshift(arrow_build_dir.to_s)
+$LOAD_PATH.unshift(arrow_lib_dir.to_s)
+$LOAD_PATH.unshift(lib_dir.to_s)
+
+require_relative "helper"
+
+exit(Test::Unit::AutoRunner.run(true, test_dir.to_s))
diff --git a/src/arrow/ruby/red-parquet/test/test-arrow-table.rb b/src/arrow/ruby/red-parquet/test/test-arrow-table.rb
new file mode 100644
index 000000000..1ea2669e3
--- /dev/null
+++ b/src/arrow/ruby/red-parquet/test/test-arrow-table.rb
@@ -0,0 +1,99 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+class TestArrowTable < Test::Unit::TestCase
+ def setup
+ @count_field = Arrow::Field.new("count", :uint8)
+ @visible_field = Arrow::Field.new("visible", :boolean)
+ @label_field = Arrow::Field.new("label", :string)
+ schema = Arrow::Schema.new([@count_field, @visible_field, @label_field])
+ count_arrays = [
+ Arrow::UInt8Array.new([1, 2]),
+ Arrow::UInt8Array.new([4, 8, 16]),
+ Arrow::UInt8Array.new([32, 64]),
+ Arrow::UInt8Array.new([128]),
+ ]
+ visible_arrays = [
+ Arrow::BooleanArray.new([true, false, nil]),
+ Arrow::BooleanArray.new([true]),
+ Arrow::BooleanArray.new([true, false]),
+ Arrow::BooleanArray.new([nil]),
+ Arrow::BooleanArray.new([nil]),
+ ]
+ label_arrays = [
+ Arrow::StringArray.new(["a"]),
+ Arrow::StringArray.new(["b", "c"]),
+ Arrow::StringArray.new(["d", nil, nil]),
+ Arrow::StringArray.new(["e", "f"]),
+ ]
+ @count_array = Arrow::ChunkedArray.new(count_arrays)
+ @visible_array = Arrow::ChunkedArray.new(visible_arrays)
+ @label_array = Arrow::ChunkedArray.new(label_arrays)
+ @table = Arrow::Table.new(schema,
+ [@count_array, @visible_array, @label_array])
+
+ @output = Tempfile.open(["red-parquet", ".parquet"])
+ begin
+ yield(@output)
+ ensure
+ @output.close!
+ end
+ end
+
+ def test_save_load_path
+ @table.save(@output.path)
+ assert do
+ @table.equal_metadata(Arrow::Table.load(@output.path), false)
+ end
+ end
+
+ def test_save_load_buffer
+ buffer = Arrow::ResizableBuffer.new(1024)
+ @table.save(buffer, format: :parquet)
+ assert do
+ @table.equal_metadata(Arrow::Table.load(buffer, format: :parquet), false)
+ end
+ end
+
+ def test_save_load_compression
+ @table.save(@output.path, compression: :zstd)
+ assert do
+ @table.equal_metadata(Arrow::Table.load(@output.path), false)
+ end
+ end
+
+ def test_save_load_compression_path
+ @table.save(@output.path, compression: {"count" => :zstd})
+ assert do
+ @table.equal_metadata(Arrow::Table.load(@output.path), false)
+ end
+ end
+
+ def test_save_load_dictionary
+ @table.save(@output.path, dictionary: false)
+ assert do
+ @table.equal_metadata(Arrow::Table.load(@output.path), false)
+ end
+ end
+
+ def test_save_load_dictionary_path
+ @table.save(@output.path, dictionary: [["label", false]])
+ assert do
+ @table.equal_metadata(Arrow::Table.load(@output.path), false)
+ end
+ end
+end