21
21
ZeroBatchStreamFile
22
22
OneBatchStreamFile
23
23
MultipleBatchStreamFile
24
+ RandomAccessFile
24
25
end
25
26
26
27
properties (TestParameter )
@@ -35,6 +36,16 @@ function setupDataFolder(testCase)
35
36
testCase.DataFolder = string(fixture .Folder );
36
37
end
37
38
39
+ function setupRandomAccessFile(testCase )
40
+ fieldA = arrow .field(" A" , arrow .string());
41
+ fieldB = arrow .field(" B" , arrow .float32());
42
+ schema = arrow .schema([fieldA , fieldB ]);
43
+ fname = fullfile(testCase .DataFolder , " RandomAccessFile.arrow" );
44
+ writer = arrow .io .ipc .RecordBatchFileWriter(fname , schema );
45
+ writer .close();
46
+ testCase.RandomAccessFile = fname ;
47
+ end
48
+
38
49
function setupZeroBatchStreamFile(testCase )
39
50
fieldA = arrow .field(" A" , arrow .string());
40
51
fieldB = arrow .field(" B" , arrow .float32());
@@ -249,7 +260,7 @@ function ReadTableOneBatchStreamFile(testCase)
249
260
250
261
function ReadTableMultipleBatchStreamFile(testCase )
251
262
% Verify read can successfully read an Arrow IPC Stream file
252
- % containing one batch as an arrow.tabular.Table.
263
+ % containing multiple batches as an arrow.tabular.Table.
253
264
reader = arrow .io .ipc .RecordBatchStreamReader(testCase .MultipleBatchStreamFile );
254
265
matlabTable = table([" Row1" ; " Row2" ; " Row3" ; " Row4" ], single([1 ; 2 ; 3 ; 4 ]), VariableNames= [" A" , " B" ]);
255
266
expected = arrow .table(matlabTable );
@@ -312,6 +323,14 @@ function ReadTableMultipleCalls(testCase)
312
323
testCase .verifyTrue(reader .done());
313
324
end
314
325
326
+ function ErrorIfNotIpcStreamFile(testCase )
327
+ % Verify RecordBatchStreamReader throws an exception with the
328
+ % identifier arrow:io:ipc:FailedToOpenRecordBatchReader if
329
+ % the provided file is not an Arrow IPC Stream file.
330
+ fcn = @() arrow .io .ipc .RecordBatchStreamReader(testCase .RandomAccessFile );
331
+ testCase .verifyError(fcn , " arrow:io:ipc:FailedToOpenRecordBatchReader" );
332
+ end
333
+
315
334
end
316
335
317
336
end
0 commit comments