File tree Expand file tree Collapse file tree 3 files changed +17
-4
lines changed Expand file tree Collapse file tree 3 files changed +17
-4
lines changed Original file line number Diff line number Diff line change @@ -178,7 +178,7 @@ def __ne__(self, other):
178
178
class TransformBase :
179
179
"""Abstract image class to represent transforms."""
180
180
181
- __slots__ = ("_reference" ,)
181
+ __slots__ = ("_reference" , "_ndim" , )
182
182
183
183
def __init__ (self , reference = None ):
184
184
"""Instantiate a transform."""
@@ -220,7 +220,7 @@ def reference(self, image):
220
220
@property
221
221
def ndim (self ):
222
222
"""Access the dimensions of the reference space."""
223
- return self . reference . ndim
223
+ raise TypeError ( "TransformBase has no dimensions" )
224
224
225
225
def apply (
226
226
self ,
Original file line number Diff line number Diff line change @@ -143,6 +143,11 @@ def matrix(self):
143
143
"""Access the internal representation of this affine."""
144
144
return self ._matrix
145
145
146
+ @property
147
+ def ndim (self ):
148
+ """Access the internal representation of this affine."""
149
+ return self ._matrix .ndim + 1
150
+
146
151
def map (self , x , inverse = False ):
147
152
r"""
148
153
Apply :math:`y = f(x)`.
Original file line number Diff line number Diff line change @@ -94,7 +94,8 @@ def _to_hdf5(klass, x5_root):
94
94
# Test identity transform
95
95
xfm = TransformBase ()
96
96
xfm .reference = fname
97
- assert xfm .ndim == 3
97
+ with pytest .raises (TypeError ):
98
+ _ = xfm .ndim
98
99
moved = xfm .apply (fname , order = 0 )
99
100
assert np .all (
100
101
imgdata == np .asanyarray (moved .dataobj , dtype = moved .get_data_dtype ())
@@ -103,12 +104,19 @@ def _to_hdf5(klass, x5_root):
103
104
# Test identity transform - setting reference
104
105
xfm = TransformBase ()
105
106
xfm .reference = fname
106
- assert xfm .ndim == 3
107
+ with pytest .raises (TypeError ):
108
+ _ = xfm .ndim
107
109
moved = xfm .apply (str (fname ), reference = fname , order = 0 )
108
110
assert np .all (
109
111
imgdata == np .asanyarray (moved .dataobj , dtype = moved .get_data_dtype ())
110
112
)
111
113
114
+ # Test ndim returned by affine
115
+ assert nitl .Affine ().ndim == 3
116
+ assert nitl .LinearTransformsMapping (
117
+ [nitl .Affine (), nitl .Affine ()]
118
+ ).ndim == 4
119
+
112
120
# Test applying to Gifti
113
121
gii = nb .gifti .GiftiImage (
114
122
darrays = [
You can’t perform that action at this time.
0 commit comments