@@ -118,6 +118,60 @@ func makeRecordBatch() throws -> RecordBatch {
118118 }
119119}
120120
121+ final class IPCStreamReaderTests : XCTestCase {
122+ func testRBInMemoryToFromStream( ) throws {
123+ let schema = makeSchema ( )
124+ let recordBatch = try makeRecordBatch ( )
125+ let arrowWriter = ArrowWriter ( )
126+ let writerInfo = ArrowWriter . Info ( . recordbatch, schema: schema, batches: [ recordBatch] )
127+ switch arrowWriter. writeSteaming ( writerInfo) {
128+ case . success( let writeData) :
129+ let arrowReader = ArrowReader ( )
130+ switch arrowReader. readStreaming ( writeData) {
131+ case . success( let result) :
132+ let recordBatches = result. batches
133+ XCTAssertEqual ( recordBatches. count, 1 )
134+ for recordBatch in recordBatches {
135+ XCTAssertEqual ( recordBatch. length, 4 )
136+ XCTAssertEqual ( recordBatch. columns. count, 5 )
137+ XCTAssertEqual ( recordBatch. schema. fields. count, 5 )
138+ XCTAssertEqual ( recordBatch. schema. fields [ 0 ] . name, " col1 " )
139+ XCTAssertEqual ( recordBatch. schema. fields [ 0 ] . type. info, ArrowType . ArrowUInt8)
140+ XCTAssertEqual ( recordBatch. schema. fields [ 1 ] . name, " col2 " )
141+ XCTAssertEqual ( recordBatch. schema. fields [ 1 ] . type. info, ArrowType . ArrowString)
142+ XCTAssertEqual ( recordBatch. schema. fields [ 2 ] . name, " col3 " )
143+ XCTAssertEqual ( recordBatch. schema. fields [ 2 ] . type. info, ArrowType . ArrowDate32)
144+ XCTAssertEqual ( recordBatch. schema. fields [ 3 ] . name, " col4 " )
145+ XCTAssertEqual ( recordBatch. schema. fields [ 3 ] . type. info, ArrowType . ArrowInt32)
146+ XCTAssertEqual ( recordBatch. schema. fields [ 4 ] . name, " col5 " )
147+ XCTAssertEqual ( recordBatch. schema. fields [ 4 ] . type. info, ArrowType . ArrowFloat)
148+ let columns = recordBatch. columns
149+ XCTAssertEqual ( columns [ 0 ] . nullCount, 2 )
150+ let dateVal =
151+ " \( ( columns [ 2 ] . array as! AsString ) . asString ( 0 ) ) " // swiftlint:disable:this force_cast
152+ XCTAssertEqual ( dateVal, " 2014-09-10 00:00:00 +0000 " )
153+ let stringVal =
154+ " \( ( columns [ 1 ] . array as! AsString ) . asString ( 1 ) ) " // swiftlint:disable:this force_cast
155+ XCTAssertEqual ( stringVal, " test22 " )
156+ let uintVal =
157+ " \( ( columns [ 0 ] . array as! AsString ) . asString ( 0 ) ) " // swiftlint:disable:this force_cast
158+ XCTAssertEqual ( uintVal, " 10 " )
159+ let stringVal2 =
160+ " \( ( columns [ 1 ] . array as! AsString ) . asString ( 3 ) ) " // swiftlint:disable:this force_cast
161+ XCTAssertEqual ( stringVal2, " test44 " )
162+ let uintVal2 =
163+ " \( ( columns [ 0 ] . array as! AsString ) . asString ( 3 ) ) " // swiftlint:disable:this force_cast
164+ XCTAssertEqual ( uintVal2, " 44 " )
165+ }
166+ case . failure( let error) :
167+ throw error
168+ }
169+ case . failure( let error) :
170+ throw error
171+ }
172+ }
173+ }
174+
121175final class IPCFileReaderTests : XCTestCase { // swiftlint:disable:this type_body_length
122176 func testFileReader_struct( ) throws {
123177 let fileURL = currentDirectory ( ) . appendingPathComponent ( " ../../testdata_struct.arrow " )
@@ -204,10 +258,10 @@ final class IPCFileReaderTests: XCTestCase { // swiftlint:disable:this type_body
204258 let arrowWriter = ArrowWriter ( )
205259 // write data from file to a stream
206260 let writerInfo = ArrowWriter . Info ( . recordbatch, schema: fileRBs [ 0 ] . schema, batches: fileRBs)
207- switch arrowWriter. toStream ( writerInfo) {
261+ switch arrowWriter. writeFile ( writerInfo) {
208262 case . success( let writeData) :
209263 // read stream back into recordbatches
210- try checkBoolRecordBatch ( arrowReader. fromStream ( writeData) )
264+ try checkBoolRecordBatch ( arrowReader. readFile ( writeData) )
211265 case . failure( let error) :
212266 throw error
213267 }
@@ -227,10 +281,10 @@ final class IPCFileReaderTests: XCTestCase { // swiftlint:disable:this type_body
227281 let recordBatch = try makeRecordBatch ( )
228282 let arrowWriter = ArrowWriter ( )
229283 let writerInfo = ArrowWriter . Info ( . recordbatch, schema: schema, batches: [ recordBatch] )
230- switch arrowWriter. toStream ( writerInfo) {
284+ switch arrowWriter. writeFile ( writerInfo) {
231285 case . success( let writeData) :
232286 let arrowReader = ArrowReader ( )
233- switch arrowReader. fromStream ( writeData) {
287+ switch arrowReader. readFile ( writeData) {
234288 case . success( let result) :
235289 let recordBatches = result. batches
236290 XCTAssertEqual ( recordBatches. count, 1 )
@@ -279,10 +333,10 @@ final class IPCFileReaderTests: XCTestCase { // swiftlint:disable:this type_body
279333 let schema = makeSchema ( )
280334 let arrowWriter = ArrowWriter ( )
281335 let writerInfo = ArrowWriter . Info ( . schema, schema: schema)
282- switch arrowWriter. toStream ( writerInfo) {
336+ switch arrowWriter. writeFile ( writerInfo) {
283337 case . success( let writeData) :
284338 let arrowReader = ArrowReader ( )
285- switch arrowReader. fromStream ( writeData) {
339+ switch arrowReader. readFile ( writeData) {
286340 case . success( let result) :
287341 XCTAssertNotNil ( result. schema)
288342 let schema = result. schema!
@@ -362,10 +416,10 @@ final class IPCFileReaderTests: XCTestCase { // swiftlint:disable:this type_body
362416 let dataset = try makeBinaryDataset ( )
363417 let writerInfo = ArrowWriter . Info ( . recordbatch, schema: dataset. 0 , batches: [ dataset. 1 ] )
364418 let arrowWriter = ArrowWriter ( )
365- switch arrowWriter. toStream ( writerInfo) {
419+ switch arrowWriter. writeFile ( writerInfo) {
366420 case . success( let writeData) :
367421 let arrowReader = ArrowReader ( )
368- switch arrowReader. fromStream ( writeData) {
422+ switch arrowReader. readFile ( writeData) {
369423 case . success( let result) :
370424 XCTAssertNotNil ( result. schema)
371425 let schema = result. schema!
@@ -391,10 +445,10 @@ final class IPCFileReaderTests: XCTestCase { // swiftlint:disable:this type_body
391445 let dataset = try makeTimeDataset ( )
392446 let writerInfo = ArrowWriter . Info ( . recordbatch, schema: dataset. 0 , batches: [ dataset. 1 ] )
393447 let arrowWriter = ArrowWriter ( )
394- switch arrowWriter. toStream ( writerInfo) {
448+ switch arrowWriter. writeFile ( writerInfo) {
395449 case . success( let writeData) :
396450 let arrowReader = ArrowReader ( )
397- switch arrowReader. fromStream ( writeData) {
451+ switch arrowReader. readFile ( writeData) {
398452 case . success( let result) :
399453 XCTAssertNotNil ( result. schema)
400454 let schema = result. schema!
0 commit comments