abandy commented on code in PR #35985:
URL: https://github.com/apache/arrow/pull/35985#discussion_r1225505730


##########
swift/Arrow/Tests/ArrowTests/IPCTests.swift:
##########
@@ -209,4 +212,163 @@ final class IPCFileReaderTests: XCTestCase {
             throw error
         }
     }
+    
+    func testSchemaInMemoryToFromStream() throws {
+        //read existing file
+        let schema = makeSchema()
+        let arrowWriter = ArrowWriter()
+        let writerInfo = ArrowWriter.Info(.schema, schema: schema)
+        switch arrowWriter.toStream(writerInfo) {
+        case .success(let writeData):
+            let arrowReader = ArrowReader()
+            switch arrowReader.fromStream(writeData) {
+            case .success(let result):
+                XCTAssertNotNil(result.schema)
+                let schema  = result.schema!
+                XCTAssertEqual(schema.fields.count, 3)
+                XCTAssertEqual(schema.fields[0].name, "col1")
+                XCTAssertEqual(schema.fields[0].type.info, 
ArrowType.ArrowUInt8)
+                XCTAssertEqual(schema.fields[1].name, "col2")
+                XCTAssertEqual(schema.fields[1].type.info, 
ArrowType.ArrowString)
+                XCTAssertEqual(schema.fields[2].name, "col3")
+                XCTAssertEqual(schema.fields[2].type.info, 
ArrowType.ArrowDate32)
+            case.failure(let error):
+                throw error
+            }
+        case .failure(let error):
+            throw error
+        }
+    }
+    
+    func makeBinaryDataset() throws -> (ArrowSchema, RecordBatch) {
+        let schemaBuilder = ArrowSchema.Builder();
+        let schema = schemaBuilder.addField("col1", type: 
ArrowType(ArrowType.ArrowUInt8), isNullable: true)
+            .addField("col2", type: ArrowType(ArrowType.ArrowBinary), 
isNullable: false)
+            .finish()
+        
+        let uint8Builder: NumberArrayBuilder<UInt8> = try 
ArrowArrayBuilders.loadNumberArrayBuilder();
+        uint8Builder.append(10)
+        uint8Builder.append(22)
+        uint8Builder.append(33)
+        uint8Builder.append(44)
+        let binaryBuilder = try ArrowArrayBuilders.loadBinaryArrayBuilder();
+        binaryBuilder.append("test10".data(using: .utf8))
+        binaryBuilder.append("test22".data(using: .utf8))
+        binaryBuilder.append("test33".data(using: .utf8))
+        binaryBuilder.append("test44".data(using: .utf8))
+        
+        let intHolder = ArrowArrayHolder(try uint8Builder.finish())

Review Comment:
   We don't I have been making all the test tables at least two columns.  But I 
will remove the unnecessary columns.



##########
swift/Arrow/Tests/ArrowTests/IPCTests.swift:
##########
@@ -209,4 +212,163 @@ final class IPCFileReaderTests: XCTestCase {
             throw error
         }
     }
+    
+    func testSchemaInMemoryToFromStream() throws {
+        //read existing file
+        let schema = makeSchema()
+        let arrowWriter = ArrowWriter()
+        let writerInfo = ArrowWriter.Info(.schema, schema: schema)
+        switch arrowWriter.toStream(writerInfo) {
+        case .success(let writeData):
+            let arrowReader = ArrowReader()
+            switch arrowReader.fromStream(writeData) {
+            case .success(let result):
+                XCTAssertNotNil(result.schema)
+                let schema  = result.schema!
+                XCTAssertEqual(schema.fields.count, 3)
+                XCTAssertEqual(schema.fields[0].name, "col1")
+                XCTAssertEqual(schema.fields[0].type.info, 
ArrowType.ArrowUInt8)
+                XCTAssertEqual(schema.fields[1].name, "col2")
+                XCTAssertEqual(schema.fields[1].type.info, 
ArrowType.ArrowString)
+                XCTAssertEqual(schema.fields[2].name, "col3")
+                XCTAssertEqual(schema.fields[2].type.info, 
ArrowType.ArrowDate32)
+            case.failure(let error):
+                throw error
+            }
+        case .failure(let error):
+            throw error
+        }
+    }
+    
+    func makeBinaryDataset() throws -> (ArrowSchema, RecordBatch) {
+        let schemaBuilder = ArrowSchema.Builder();
+        let schema = schemaBuilder.addField("col1", type: 
ArrowType(ArrowType.ArrowUInt8), isNullable: true)
+            .addField("col2", type: ArrowType(ArrowType.ArrowBinary), 
isNullable: false)
+            .finish()
+        
+        let uint8Builder: NumberArrayBuilder<UInt8> = try 
ArrowArrayBuilders.loadNumberArrayBuilder();
+        uint8Builder.append(10)
+        uint8Builder.append(22)
+        uint8Builder.append(33)
+        uint8Builder.append(44)
+        let binaryBuilder = try ArrowArrayBuilders.loadBinaryArrayBuilder();
+        binaryBuilder.append("test10".data(using: .utf8))
+        binaryBuilder.append("test22".data(using: .utf8))
+        binaryBuilder.append("test33".data(using: .utf8))
+        binaryBuilder.append("test44".data(using: .utf8))
+        
+        let intHolder = ArrowArrayHolder(try uint8Builder.finish())

Review Comment:
   We don't, I have been making all the test tables at least two columns.  But 
I will remove the unnecessary columns.



-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to