Skip to content

Commit d92bb79

Browse files
authored
Provide #to_arrow for direct Arrow::Table access (#7)
## Related Issue - fix #5 ## What I did - added Red Datasets Arrow to runtime_dependencies - added #to_arrow for direct Arrow::Table access - added examples about #to_arrow ## What I checked - Passed `bundle exec rake` ```console % bundle exec rake test Loaded suite test Started green_tripdata_2022-01.parquet - 100.0% [ 1.25MB/ 1.25MB] 00:00:00 229KB/s green_tripdata_2022-01.parquet - 100.0% [ 1.25MB/ 1.25MB] 00:00:00 227KB/s yellow_tripdata_2022-01.parquet - 100.0% [ 38.14MB/ 38.14MB] 00:00:00 569KB/s yellow_tripdata_2022-01.parquet - 100.0% [ 38.14MB/ 38.14MB] 00:00:00 481KB/s . Finished in 59.969676 seconds. ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 4 tests, 4 assertions, 0 failures, 0 errors, 0 pendings, 0 omissions, 0 notifications 100% passed ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 0.07 tests/s, 0.07 assertions/s ``` ## Notes for reviewers - Would you give me some advice about #to_arrow's test cases? - I implemented the test using [Red Datasets Arrow](https://github.com/red-data-tools/red-datasets-arrow/blob/master/test/test-iris.rb) as a reference. <details> <summary> working notes </summary> ## What I will do - [x] add Red Datasets Arrow to runtime_dependencies - [x] add `#to_arrow` for direct Arrow::Table access - [x] add examples about `#to_arrow` - [x] Write description </details>
1 parent 7b4ebe8 commit d92bb79

File tree

8 files changed

+114
-28
lines changed

8 files changed

+114
-28
lines changed

example/tlc-green-taxi-trip.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@
33
require "datasets-parquet"
44

55
trips = DatasetsParquet::TLC::GreenTaxiTrip.new(year: 2022, month: 1)
6+
7+
p trips.to_arrow
8+
# #<Arrow::Table:0x1474998d0 ptr=0x136e79d60>
9+
# VendorID lpep_pickup_datetime lpep_dropoff_datetime store_and_fwd_flag RatecodeID PULocationID DOLocationID passenger_count trip_distance fare_amount extra mta_tax tip_amount tolls_amount ehail_fee improvement_surcharge total_amount payment_type trip_typecongestion_surcharge
10+
# 0 2 2022-01-01T09:14:21+09:00 2022-01-01T09:15:33+09:00 N 1.000000 42 42 1.000000 0.440000 3.500000 0.500000 0.500000 0.000000 0.000000 (null) 0.300000 4.800000 2.000000 1.000000 0.000000
11+
# 1 1 2022-01-01T09:20:55+09:00 2022-01-01T09:29:38+09:00 N 1.000000 116 41 1.000000 2.100000 9.500000 0.500000 0.500000 0.000000 0.000000 (null) 0.300000 10.800000 2.000000 1.000000 0.000000
12+
# ...
13+
614
trips.each do |trip|
715
p [
816
trip.vendor,

example/tlc-yellow-taxi-trip.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,14 @@
33
require "datasets-parquet"
44

55
trips = DatasetsParquet::TLC::YellowTaxiTrip.new(year: 2022, month: 1)
6+
7+
p trips.to_arrow
8+
# #<Arrow::Table:0x128949110 ptr=0x102c10b60>
9+
# VendorID tpep_pickup_datetime tpep_dropoff_datetime passenger_count trip_distance RatecodeID store_and_fwd_flag PULocationID DOLocationID payment_type fare_amount extra mta_tax tip_amount tolls_amount improvement_surcharge total_amount congestion_surcharge airport_fee
10+
# 0 1 2022-01-01T09:35:40+09:00 2022-01-01T09:53:29+09:00 2.000000 3.800000 1.000000 N 142 236 1 14.500000 3.000000 0.500000 3.650000 0.000000 0.300000 21.950000 2.500000 0.000000
11+
# 1 1 2022-01-01T09:33:43+09:00 2022-01-01T09:42:07+09:00 1.000000 2.100000 1.000000 N 236 42 1 8.000000 0.500000 0.500000 4.000000 0.000000 0.300000 13.300000 0.000000 0.000000
12+
# ...
13+
614
trips.each do |trip|
715
p [
816
trip.vendor,

lib/datasets-parquet.rb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
require "datasets"
1+
require "datasets-arrow"
22
require "parquet"
33

44
require_relative "datasets-parquet/version"

lib/datasets-parquet/tlc/green-taxi-trip.rb

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -97,23 +97,22 @@ def initialize(year: Date.today.year, month: Date.today.month)
9797
@month = month
9898
end
9999

100+
def to_arrow
101+
base_name = "green_tripdata_%04d-%02d.parquet" % [@year, @month]
102+
data_path = cache_dir_path + base_name
103+
data_url = "https://d37ci6vzurychx.cloudfront.net/trip-data/#{base_name}"
104+
download(data_path, data_url)
105+
Arrow::Table.load(data_path)
106+
end
107+
100108
def each
101109
return to_enum(__method__) unless block_given?
102110

103-
open_data.raw_records.each do |raw_record|
111+
to_arrow.raw_records.each do |raw_record|
104112
record = Record.new(*raw_record)
105113
yield(record)
106114
end
107115
end
108-
109-
private
110-
def open_data
111-
base_name = "green_tripdata_%04d-%02d.parquet" % [@year, @month]
112-
data_path = cache_dir_path + base_name
113-
data_url = "https://d37ci6vzurychx.cloudfront.net/trip-data/#{base_name}"
114-
download(data_path, data_url)
115-
Arrow::Table.load(data_path)
116-
end
117116
end
118117
end
119118
end

lib/datasets-parquet/tlc/yellow-taxi-trip.rb

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -87,23 +87,22 @@ def initialize(year: Date.today.year, month: Date.today.month)
8787
@month = month
8888
end
8989

90+
def to_arrow
91+
base_name = "yellow_tripdata_%04d-%02d.parquet" % [@year, @month]
92+
data_path = cache_dir_path + base_name
93+
data_url = "https://d37ci6vzurychx.cloudfront.net/trip-data/#{base_name}"
94+
download(data_path, data_url)
95+
Arrow::Table.load(data_path)
96+
end
97+
9098
def each
9199
return to_enum(__method__) unless block_given?
92100

93-
open_data.raw_records.each do |raw_record|
101+
to_arrow.raw_records.each do |raw_record|
94102
record = Record.new(*raw_record)
95103
yield(record)
96104
end
97105
end
98-
99-
private
100-
def open_data
101-
base_name = "yellow_tripdata_%04d-%02d.parquet" % [@year, @month]
102-
data_path = cache_dir_path + base_name
103-
data_url = "https://d37ci6vzurychx.cloudfront.net/trip-data/#{base_name}"
104-
download(data_path, data_url)
105-
Arrow::Table.load(data_path)
106-
end
107106
end
108107
end
109108
end

red-datasets-parquet.gemspec

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ Gem::Specification.new do |spec|
3333
spec.files += Dir.glob("image/*.*")
3434
spec.files += Dir.glob("doc/text/*")
3535

36-
spec.add_runtime_dependency("red-datasets")
36+
spec.add_runtime_dependency("red-datasets-arrow")
3737
spec.add_runtime_dependency("red-parquet")
3838

3939
spec.add_development_dependency("bundler")

test/test-tlc-green-taxi-trip.rb

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,43 @@
11
class TLCGreenTaxiTripTest < Test::Unit::TestCase
2-
test("each") do
3-
dataset = DatasetsParquet::TLC::GreenTaxiTrip.new(year: 2022, month: 1)
4-
records = dataset.each.to_a
2+
def setup
3+
@default_timezone_env = ENV['TZ']
4+
ENV['TZ'] = 'UTC'
5+
@dataset = DatasetsParquet::TLC::GreenTaxiTrip.new(year: 2022, month: 1)
6+
end
7+
8+
def teardown
9+
ENV['TZ'] = @default_timezone_env
10+
end
11+
12+
test("#to_arrow") do
13+
assert_equal(<<~TABLE, @dataset.to_arrow.to_s)
14+
\tVendorID\t lpep_pickup_datetime\t lpep_dropoff_datetime\tstore_and_fwd_flag\tRatecodeID\tPULocationID\tDOLocationID\tpassenger_count\ttrip_distance\tfare_amount\t extra\t mta_tax\ttip_amount\ttolls_amount\tehail_fee\timprovement_surcharge\ttotal_amount\tpayment_type\t trip_type\tcongestion_surcharge
15+
0\t 2\t2022-01-01T00:14:21+00:00\t2022-01-01T00:15:33+00:00\tN \t 1.000000\t 42\t 42\t 1.000000\t 0.440000\t 3.500000\t 0.500000\t 0.500000\t 0.000000\t 0.000000\t (null)\t 0.300000\t 4.800000\t 2.000000\t 1.000000\t 0.000000
16+
1\t 1\t2022-01-01T00:20:55+00:00\t2022-01-01T00:29:38+00:00\tN \t 1.000000\t 116\t 41\t 1.000000\t 2.100000\t 9.500000\t 0.500000\t 0.500000\t 0.000000\t 0.000000\t (null)\t 0.300000\t 10.800000\t 2.000000\t 1.000000\t 0.000000
17+
2\t 1\t2022-01-01T00:57:02+00:00\t2022-01-01T01:13:14+00:00\tN \t 1.000000\t 41\t 140\t 1.000000\t 3.700000\t 14.500000\t 3.250000\t 0.500000\t 4.600000\t 0.000000\t (null)\t 0.300000\t 23.150000\t 1.000000\t 1.000000\t 2.750000
18+
3\t 2\t2022-01-01T00:07:42+00:00\t2022-01-01T00:15:57+00:00\tN \t 1.000000\t 181\t 181\t 1.000000\t 1.690000\t 8.000000\t 0.500000\t 0.500000\t 0.000000\t 0.000000\t (null)\t 0.300000\t 9.300000\t 2.000000\t 1.000000\t 0.000000
19+
4\t 2\t2022-01-01T00:07:50+00:00\t2022-01-01T00:28:52+00:00\tN \t 1.000000\t 33\t 170\t 1.000000\t 6.260000\t 22.000000\t 0.500000\t 0.500000\t 5.210000\t 0.000000\t (null)\t 0.300000\t 31.260000\t 1.000000\t 1.000000\t 2.750000
20+
5\t 1\t2022-01-01T00:47:57+00:00\t2022-01-01T00:54:09+00:00\tN \t 1.000000\t 150\t 210\t 1.000000\t 1.300000\t 7.000000\t 0.500000\t 0.500000\t 0.000000\t 0.000000\t (null)\t 0.300000\t 8.300000\t 2.000000\t 1.000000\t 0.000000
21+
6\t 2\t2022-01-01T00:13:38+00:00\t2022-01-01T00:33:50+00:00\tN \t 1.000000\t 66\t 67\t 1.000000\t 6.470000\t 22.500000\t 0.500000\t 0.500000\t 0.000000\t 0.000000\t (null)\t 0.300000\t 23.800000\t 2.000000\t 1.000000\t 0.000000
22+
7\t 2\t2022-01-01T00:43:00+00:00\t2022-01-01T00:49:20+00:00\tN \t 1.000000\t 40\t 195\t 1.000000\t 1.150000\t 6.000000\t 0.500000\t 0.500000\t 0.000000\t 0.000000\t (null)\t 0.300000\t 7.300000\t 2.000000\t 1.000000\t 0.000000
23+
8\t 2\t2022-01-01T00:41:04+00:00\t2022-01-01T00:47:04+00:00\tN \t 1.000000\t 112\t 80\t 1.000000\t 1.300000\t 6.000000\t 0.500000\t 0.500000\t 0.000000\t 0.000000\t (null)\t 0.300000\t 7.300000\t 2.000000\t 1.000000\t 0.000000
24+
9\t 2\t2022-01-01T00:51:07+00:00\t2022-01-01T01:09:31+00:00\tN \t 1.000000\t 256\t 186\t 1.000000\t 4.750000\t 17.000000\t 0.500000\t 0.500000\t 4.210000\t 0.000000\t (null)\t 0.300000\t 25.260000\t 1.000000\t 1.000000\t 2.750000
25+
...
26+
62485\t 2\t2022-01-31T22:01:00+00:00\t2022-01-31T22:13:00+00:00\t (null)\t (null)\t 244\t 151\t (null)\t 4.690000\t 19.010000\t 0.000000\t 0.000000\t 4.120000\t 0.000000\t (null)\t 0.300000\t 26.180000\t (null)\t (null)\t (null)
27+
62486\t 2\t2022-01-31T22:54:00+00:00\t2022-01-31T23:10:00+00:00\t (null)\t (null)\t 25\t 188\t (null)\t 3.120000\t 13.900000\t 0.000000\t 0.000000\t 3.160000\t 0.000000\t (null)\t 0.300000\t 17.360000\t (null)\t (null)\t (null)
28+
62487\t 2\t2022-01-31T23:23:00+00:00\t2022-01-31T23:39:00+00:00\t (null)\t (null)\t 179\t 112\t (null)\t 3.800000\t 16.480000\t 0.000000\t 0.000000\t 3.730000\t 0.000000\t (null)\t 0.300000\t 20.510000\t (null)\t (null)\t (null)
29+
62488\t 2\t2022-01-31T23:50:00+00:00\t2022-02-01T00:11:00+00:00\t (null)\t (null)\t 112\t 239\t (null)\t 6.040000\t 23.450000\t 0.000000\t 0.000000\t 5.830000\t 0.000000\t (null)\t 0.300000\t 32.330000\t (null)\t (null)\t (null)
30+
62489\t 2\t2022-01-31T23:19:00+00:00\t2022-01-31T23:37:00+00:00\t (null)\t (null)\t 152\t 233\t (null)\t 6.710000\t 25.400000\t 0.000000\t 0.000000\t 6.270000\t 0.000000\t (null)\t 0.300000\t 34.720000\t (null)\t (null)\t (null)
31+
62490\t 2\t2022-01-31T23:25:00+00:00\t2022-01-31T23:33:00+00:00\t (null)\t (null)\t 40\t 65\t (null)\t 1.400000\t 8.380000\t 0.000000\t 0.000000\t 1.930000\t 0.000000\t (null)\t 0.300000\t 10.610000\t (null)\t (null)\t (null)
32+
62491\t 2\t2022-01-31T23:52:00+00:00\t2022-02-01T00:10:00+00:00\t (null)\t (null)\t 36\t 61\t (null)\t 2.970000\t 14.920000\t 0.000000\t 0.000000\t 0.000000\t 0.000000\t (null)\t 0.300000\t 15.220000\t (null)\t (null)\t (null)
33+
62492\t 2\t2022-01-31T23:17:00+00:00\t2022-01-31T23:36:00+00:00\t (null)\t (null)\t 75\t 167\t (null)\t 3.700000\t 16.260000\t 0.000000\t 0.000000\t 0.000000\t 0.000000\t (null)\t 0.300000\t 16.560000\t (null)\t (null)\t (null)
34+
62493\t 2\t2022-01-31T23:45:00+00:00\t2022-01-31T23:55:00+00:00\t (null)\t (null)\t 116\t 166\t (null)\t 1.880000\t 9.480000\t 0.000000\t 0.000000\t 2.170000\t 0.000000\t (null)\t 0.300000\t 11.950000\t (null)\t (null)\t (null)
35+
62494\t 2\t2022-01-31T23:52:00+00:00\t2022-02-01T00:26:00+00:00\t (null)\t (null)\t 225\t 179\t (null)\t 9.600000\t 32.180000\t 0.000000\t 0.000000\t 7.230000\t 10.000000\t (null)\t 0.300000\t 49.710000\t (null)\t (null)\t (null)
36+
TABLE
37+
end
38+
39+
test("#each") do
40+
records = @dataset.each.to_a
541

642
assert_equal([
743
62495,

test/test-tlc-yellow-taxi-trip.rb

Lines changed: 39 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,43 @@
11
class TLCYellowTaxiTripTest < Test::Unit::TestCase
2-
test("each") do
3-
dataset = DatasetsParquet::TLC::YellowTaxiTrip.new(year: 2022, month: 1)
4-
records = dataset.each.to_a
2+
def setup
3+
@default_timezone_env = ENV['TZ']
4+
ENV['TZ'] = 'UTC'
5+
@dataset = DatasetsParquet::TLC::YellowTaxiTrip.new(year: 2022, month: 1)
6+
end
7+
8+
def teardown
9+
ENV['TZ'] = @default_timezone_env
10+
end
11+
12+
test("#to_arrow") do
13+
assert_equal(<<~TABLE, @dataset.to_arrow.to_s)
14+
\tVendorID\t tpep_pickup_datetime\t tpep_dropoff_datetime\tpassenger_count\ttrip_distance\tRatecodeID\tstore_and_fwd_flag\tPULocationID\tDOLocationID\tpayment_type\tfare_amount\t extra\t mta_tax\ttip_amount\ttolls_amount\timprovement_surcharge\ttotal_amount\tcongestion_surcharge\tairport_fee
15+
0\t 1\t2022-01-01T00:35:40+00:00\t2022-01-01T00:53:29+00:00\t 2.000000\t 3.800000\t 1.000000\tN \t 142\t 236\t 1\t 14.500000\t 3.000000\t 0.500000\t 3.650000\t 0.000000\t 0.300000\t 21.950000\t 2.500000\t 0.000000
16+
1\t 1\t2022-01-01T00:33:43+00:00\t2022-01-01T00:42:07+00:00\t 1.000000\t 2.100000\t 1.000000\tN \t 236\t 42\t 1\t 8.000000\t 0.500000\t 0.500000\t 4.000000\t 0.000000\t 0.300000\t 13.300000\t 0.000000\t 0.000000
17+
2\t 2\t2022-01-01T00:53:21+00:00\t2022-01-01T01:02:19+00:00\t 1.000000\t 0.970000\t 1.000000\tN \t 166\t 166\t 1\t 7.500000\t 0.500000\t 0.500000\t 1.760000\t 0.000000\t 0.300000\t 10.560000\t 0.000000\t 0.000000
18+
3\t 2\t2022-01-01T00:25:21+00:00\t2022-01-01T00:35:23+00:00\t 1.000000\t 1.090000\t 1.000000\tN \t 114\t 68\t 2\t 8.000000\t 0.500000\t 0.500000\t 0.000000\t 0.000000\t 0.300000\t 11.800000\t 2.500000\t 0.000000
19+
4\t 2\t2022-01-01T00:36:48+00:00\t2022-01-01T01:14:20+00:00\t 1.000000\t 4.300000\t 1.000000\tN \t 68\t 163\t 1\t 23.500000\t 0.500000\t 0.500000\t 3.000000\t 0.000000\t 0.300000\t 30.300000\t 2.500000\t 0.000000
20+
5\t 1\t2022-01-01T00:40:15+00:00\t2022-01-01T01:09:48+00:00\t 1.000000\t 10.300000\t 1.000000\tN \t 138\t 161\t 1\t 33.000000\t 3.000000\t 0.500000\t 13.000000\t 6.550000\t 0.300000\t 56.350000\t 2.500000\t 0.000000
21+
6\t 2\t2022-01-01T00:20:50+00:00\t2022-01-01T00:34:58+00:00\t 1.000000\t 5.070000\t 1.000000\tN \t 233\t 87\t 1\t 17.000000\t 0.500000\t 0.500000\t 5.200000\t 0.000000\t 0.300000\t 26.000000\t 2.500000\t 0.000000
22+
7\t 2\t2022-01-01T00:13:04+00:00\t2022-01-01T00:22:45+00:00\t 1.000000\t 2.020000\t 1.000000\tN \t 238\t 152\t 2\t 9.000000\t 0.500000\t 0.500000\t 0.000000\t 0.000000\t 0.300000\t 12.800000\t 2.500000\t 0.000000
23+
8\t 2\t2022-01-01T00:30:02+00:00\t2022-01-01T00:44:49+00:00\t 1.000000\t 2.710000\t 1.000000\tN \t 166\t 236\t 1\t 12.000000\t 0.500000\t 0.500000\t 2.250000\t 0.000000\t 0.300000\t 18.050000\t 2.500000\t 0.000000
24+
9\t 2\t2022-01-01T00:48:52+00:00\t2022-01-01T00:53:28+00:00\t 1.000000\t 0.780000\t 1.000000\tN \t 236\t 141\t 2\t 5.000000\t 0.500000\t 0.500000\t 0.000000\t 0.000000\t 0.300000\t 8.800000\t 2.500000\t 0.000000
25+
...
26+
2463921\t 2\t2022-01-31T23:36:07+00:00\t2022-01-31T23:48:05+00:00\t (null)\t 3.040000\t (null)\t (null)\t 158\t 261\t 0\t 13.090000\t 0.000000\t 0.500000\t 3.530000\t 0.000000\t 0.300000\t 19.920000\t (null)\t (null)
27+
2463922\t 2\t2022-01-31T23:09:46+00:00\t2022-01-31T23:20:50+00:00\t (null)\t 2.420000\t (null)\t (null)\t 233\t 79\t 0\t 10.970000\t 0.000000\t 0.500000\t 2.290000\t 0.000000\t 0.300000\t 16.560000\t (null)\t (null)
28+
2463923\t 2\t2022-01-31T23:51:47+00:00\t2022-02-01T00:10:07+00:00\t (null)\t 7.510000\t (null)\t (null)\t 246\t 116\t 0\t 26.730000\t 0.000000\t 0.500000\t 6.560000\t 0.000000\t 0.300000\t 36.590000\t (null)\t (null)
29+
2463924\t 2\t2022-01-31T23:49:00+00:00\t2022-02-01T00:08:00+00:00\t (null)\t 8.500000\t (null)\t (null)\t 18\t 75\t 0\t 25.410000\t 0.000000\t 0.500000\t 0.000000\t 0.000000\t 0.300000\t 26.210000\t (null)\t (null)
30+
2463925\t 2\t2022-01-31T23:02:51+00:00\t2022-01-31T23:13:54+00:00\t (null)\t 1.630000\t (null)\t (null)\t 224\t 90\t 0\t 9.710000\t 0.000000\t 0.500000\t 2.770000\t 0.000000\t 0.300000\t 15.780000\t (null)\t (null)
31+
2463926\t 2\t2022-01-31T23:36:53+00:00\t2022-01-31T23:42:51+00:00\t (null)\t 1.320000\t (null)\t (null)\t 90\t 170\t 0\t 8.000000\t 0.000000\t 0.500000\t 2.390000\t 0.000000\t 0.300000\t 13.690000\t (null)\t (null)
32+
2463927\t 2\t2022-01-31T23:44:22+00:00\t2022-01-31T23:55:01+00:00\t (null)\t 4.190000\t (null)\t (null)\t 107\t 75\t 0\t 16.800000\t 0.000000\t 0.500000\t 4.350000\t 0.000000\t 0.300000\t 24.450000\t (null)\t (null)
33+
2463928\t 2\t2022-01-31T23:39:00+00:00\t2022-01-31T23:50:00+00:00\t (null)\t 2.100000\t (null)\t (null)\t 113\t 246\t 0\t 11.220000\t 0.000000\t 0.500000\t 2.000000\t 0.000000\t 0.300000\t 16.520000\t (null)\t (null)
34+
2463929\t 2\t2022-01-31T23:36:42+00:00\t2022-01-31T23:48:45+00:00\t (null)\t 2.920000\t (null)\t (null)\t 148\t 164\t 0\t 12.400000\t 0.000000\t 0.500000\t 0.000000\t 0.000000\t 0.300000\t 15.700000\t (null)\t (null)
35+
2463930\t 2\t2022-01-31T23:46:00+00:00\t2022-02-01T00:13:00+00:00\t (null)\t 8.940000\t (null)\t (null)\t 186\t 181\t 0\t 25.480000\t 0.000000\t 0.500000\t 6.280000\t 0.000000\t 0.300000\t 35.060000\t (null)\t (null)
36+
TABLE
37+
end
38+
39+
test("#each") do
40+
records = @dataset.each.to_a
541

642
assert_equal([
743
2463931,

0 commit comments

Comments
 (0)