summaryrefslogtreecommitdiffstats
path: root/src/arrow/matlab/test/util
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/matlab/test/util
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/matlab/test/util')
-rw-r--r--src/arrow/matlab/test/util/createTable.m68
-rw-r--r--src/arrow/matlab/test/util/createVariablesAndMetadataStructs.m97
-rw-r--r--src/arrow/matlab/test/util/featherMEXRoundTrip.m22
-rw-r--r--src/arrow/matlab/test/util/featherRoundTrip.m22
4 files changed, 209 insertions, 0 deletions
diff --git a/src/arrow/matlab/test/util/createTable.m b/src/arrow/matlab/test/util/createTable.m
new file mode 100644
index 000000000..2bf67c68c
--- /dev/null
+++ b/src/arrow/matlab/test/util/createTable.m
@@ -0,0 +1,68 @@
+function t = createTable()
+% CREATETABLE Helper function for creating test table.
+
+% 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.
+
+variableNames = {'uint8', ...
+ 'uint16', ...
+ 'uint32', ...
+ 'uint64', ...
+ 'int8', ...
+ 'int16', ...
+ 'int32', ...
+ 'int64', ...
+ 'single', ...
+ 'double'};
+
+variableTypes = {'uint8', ...
+ 'uint16', ...
+ 'uint32', ...
+ 'uint64', ...
+ 'int8', ...
+ 'int16', ...
+ 'int32', ...
+ 'int64', ...
+ 'single', ...
+ 'double'};
+
+uint8Data = uint8([1; 2; 3]);
+uint16Data = uint16([1; 2; 3]);
+uint32Data = uint32([1; 2; 3]);
+uint64Data = uint64([1; 2; 3]);
+int8Data = int8([1; 2; 3]);
+int16Data = int16([1; 2; 3]);
+int32Data = int32([1; 2; 3]);
+int64Data = int64([1; 2; 3]);
+singleData = single([1/2; 1/4; 1/8]);
+doubleData = double([1/10; 1/100; 1/1000]);
+
+numRows = 3;
+numVariables = 10;
+
+t = table('Size', [numRows, numVariables], 'VariableTypes', variableTypes, 'VariableNames', variableNames);
+
+t.uint8 = uint8Data;
+t.uint16 = uint16Data;
+t.uint32 = uint32Data;
+t.uint64 = uint64Data;
+t.int8 = int8Data;
+t.int16 = int16Data;
+t.int32 = int32Data;
+t.int64 = int64Data;
+t.single = singleData;
+t.double = doubleData;
+
+end \ No newline at end of file
diff --git a/src/arrow/matlab/test/util/createVariablesAndMetadataStructs.m b/src/arrow/matlab/test/util/createVariablesAndMetadataStructs.m
new file mode 100644
index 000000000..0c60cbfbb
--- /dev/null
+++ b/src/arrow/matlab/test/util/createVariablesAndMetadataStructs.m
@@ -0,0 +1,97 @@
+function [variables, metadata] = createVariablesAndMetadataStructs()
+% CREATEVARIABLESANDMETADATASTRUCTS Helper function for creating
+% Feather MEX variables and metadata structs.
+
+% 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.
+
+import mlarrow.util.*;
+
+type = 'uint8';
+data = uint8([1; 2; 3]);
+valid = logical([0; 1; 0]);
+name = 'uint8';
+uint8Variable = createVariableStruct(type, data, valid, name);
+
+type = 'uint16';
+data = uint16([1; 2; 3]);
+valid = logical([0; 1; 0]);
+name = 'uint16';
+uint16Variable = createVariableStruct(type, data, valid, name);
+
+type = 'uint32';
+data = uint32([1; 2; 3]);
+valid = logical([0; 1; 0]);
+name = 'uint32';
+uint32Variable = createVariableStruct(type, data, valid, name);
+
+type = 'uint64';
+data = uint64([1; 2; 3]);
+valid = logical([0; 1; 0]);
+name = 'uint64';
+uint64Variable = createVariableStruct(type, data, valid, name);
+
+type = 'int8';
+data = int8([1; 2; 3]);
+valid = logical([0; 1; 0]);
+name = 'int8';
+int8Variable = createVariableStruct(type, data, valid, name);
+
+type = 'int16';
+data = int16([1; 2; 3]);
+valid = logical([0; 1; 0]);
+name = 'int16';
+int16Variable = createVariableStruct(type, data, valid, name);
+
+type = 'int32';
+data = int32([1; 2; 3]);
+valid = logical([0; 1; 0]);
+name = 'int32';
+int32Variable = createVariableStruct(type, data, valid, name);
+
+type = 'int64';
+data = int64([1; 2; 3]);
+valid = logical([0; 1; 0]);
+name = 'int64';
+int64Variable = createVariableStruct(type, data, valid, name);
+
+type = 'single';
+data = single([1; 2; 3]);
+valid = logical([0; 1; 0]);
+name = 'single';
+singleVariable = createVariableStruct(type, data, valid, name);
+
+type = 'double';
+data = double([1; 2; 3]);
+valid = logical([0; 1; 0]);
+name = 'double';
+doubleVariable = createVariableStruct(type, data, valid, name);
+
+variables = [uint8Variable, ...
+ uint16Variable, ...
+ uint32Variable, ...
+ uint64Variable, ...
+ int8Variable, ...
+ int16Variable, ...
+ int32Variable, ...
+ int64Variable, ...
+ singleVariable, ...
+ doubleVariable];
+
+numRows = 3;
+numVariables = length(variables);
+
+metadata = createMetadataStruct(numRows, numVariables);
+end
diff --git a/src/arrow/matlab/test/util/featherMEXRoundTrip.m b/src/arrow/matlab/test/util/featherMEXRoundTrip.m
new file mode 100644
index 000000000..49ab183ed
--- /dev/null
+++ b/src/arrow/matlab/test/util/featherMEXRoundTrip.m
@@ -0,0 +1,22 @@
+function [variablesOut, metadataOut] = featherMEXRoundTrip(filename, variablesIn, metadataIn)
+% FEATHERMEXROUNDTRIP Helper function for round tripping variables
+% and metadata structs to a Feather file.
+
+% 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.
+
+featherwritemex(filename, variablesIn, metadataIn);
+[variablesOut, metadataOut] = featherreadmex(filename);
+end \ No newline at end of file
diff --git a/src/arrow/matlab/test/util/featherRoundTrip.m b/src/arrow/matlab/test/util/featherRoundTrip.m
new file mode 100644
index 000000000..18f80562d
--- /dev/null
+++ b/src/arrow/matlab/test/util/featherRoundTrip.m
@@ -0,0 +1,22 @@
+function tableOut = featherRoundTrip(filename, tableIn)
+% FEATHERROUNDTRIP Helper function for round tripping a table
+% to a Feather file.
+
+% 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.
+
+featherwrite(filename, tableIn);
+tableOut = featherread(filename);
+end \ No newline at end of file