Skip to content

Commit 8e3e766

Browse files
committed
TEST: Test gifti with external data file
1 parent cbc7dff commit 8e3e766

File tree

3 files changed

+68
-2
lines changed

3 files changed

+68
-2
lines changed

nibabel/gifti/tests/data/external.dat

240 Bytes
Binary file not shown.

nibabel/gifti/tests/data/external.gii

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE GIFTI SYSTEM "http://www.nitrc.org/frs/download.php/115/gifti.dtd">
3+
<GIFTI Version="1.0" NumberOfDataArrays="2">
4+
<DataArray ArrayIndexingOrder="RowMajorOrder"
5+
DataType="NIFTI_TYPE_FLOAT32"
6+
Dim0="8"
7+
Dim1="3"
8+
Dimensionality="2"
9+
Encoding="ExternalFileBinary"
10+
Endian="LittleEndian"
11+
ExternalFileName="external.dat"
12+
ExternalFileOffset="0"
13+
Intent="NIFTI_INTENT_POINTSET">
14+
<MetaData>
15+
</MetaData>
16+
<CoordinateSystemTransformMatrix>
17+
<DataSpace><![CDATA[NIFTI_XFORM_UNKNOWN]]></DataSpace>
18+
<TransformedSpace><![CDATA[NIFTI_XFORM_UNKNOWN]]></TransformedSpace>
19+
<MatrixData>1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 0.000000 0.000000 0.000000 0.000000 1.000000 </MatrixData>
20+
</CoordinateSystemTransformMatrix>
21+
<Data></Data>
22+
</DataArray>
23+
<DataArray ArrayIndexingOrder="RowMajorOrder"
24+
DataType="NIFTI_TYPE_INT32"
25+
Dim0="12"
26+
Dim1="3"
27+
Dimensionality="2"
28+
Encoding="ExternalFileBinary"
29+
Endian="LittleEndian"
30+
ExternalFileName="external.dat"
31+
ExternalFileOffset="96"
32+
Intent="NIFTI_INTENT_TRIANGLE">
33+
<MetaData>
34+
</MetaData>
35+
<Data></Data>
36+
</DataArray>
37+
</GIFTI>

nibabel/gifti/tests/test_parse_gifti_fast.py

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,9 +38,10 @@
3838
# wb_command -gifti-convert ASCII base64bin.gii test.gii
3939
DATA_FILE5 = pjoin(IO_DATA_PATH, 'base64bin.gii')
4040
DATA_FILE6 = pjoin(IO_DATA_PATH, 'rh.aparc.annot.gii')
41+
DATA_FILE7 = pjoin(IO_DATA_PATH, 'external.gii')
4142

42-
datafiles = [DATA_FILE1, DATA_FILE2, DATA_FILE3, DATA_FILE4, DATA_FILE5, DATA_FILE6]
43-
numDA = [2, 1, 1, 1, 2, 1]
43+
datafiles = [DATA_FILE1, DATA_FILE2, DATA_FILE3, DATA_FILE4, DATA_FILE5, DATA_FILE6, DATA_FILE7]
44+
numDA = [2, 1, 1, 1, 2, 1, 2]
4445

4546
DATA_FILE1_darr1 = np.array(
4647
[[-16.07201, -66.187515, 21.266994],
@@ -96,6 +97,28 @@
9697

9798
DATA_FILE6_darr1 = np.array([9182740, 9182740, 9182740], dtype=np.float32)
9899

100+
DATA_FILE7_darr1 = np.array([[-1., -1., -1.],
101+
[-1., -1., 1.],
102+
[-1., 1., -1.],
103+
[-1., 1., 1.],
104+
[ 1., -1., -1.],
105+
[ 1., -1., 1.],
106+
[ 1., 1., -1.],
107+
[ 1., 1., 1.]], dtype=np.float32)
108+
109+
DATA_FILE7_darr2 = np.array([[0, 6, 4],
110+
[0, 2, 6],
111+
[1, 5, 3],
112+
[3, 5, 7],
113+
[0, 4, 1],
114+
[1, 4, 5],
115+
[2, 7, 6],
116+
[2, 3, 7],
117+
[0, 1, 2],
118+
[1, 3, 2],
119+
[4, 7, 5],
120+
[4, 6, 7]], dtype=np.int32)
121+
99122

100123
def assert_default_types(loaded):
101124
default = loaded.__class__()
@@ -382,3 +405,9 @@ def test_parse_with_buffersize():
382405
for buff_sz in [None, 1, 2**12]:
383406
img2 = load(DATA_FILE2, buffer_size=buff_sz)
384407
assert img2.darrays[0].data.shape == (143479, 1)
408+
409+
410+
def test_dataarray7():
411+
img7 = load(DATA_FILE7)
412+
assert_array_almost_equal(img7.darrays[0].data, DATA_FILE7_darr1)
413+
assert_array_almost_equal(img7.darrays[1].data, DATA_FILE7_darr2)

0 commit comments

Comments
 (0)