12
12
from nibabel import cifti2 as ci
13
13
from nibabel .tmpdirs import InTemporaryDirectory
14
14
15
- from nose .tools import assert_true , assert_equal
15
+ from nose .tools import assert_true , assert_equal , assert_raises
16
+ from nibabel .testing import clear_and_catch_warnings , error_warnings , suppress_warnings
16
17
17
18
affine = [[- 1.5 , 0 , 0 , 90 ],
18
19
[0 , 1.5 , 0 , - 85 ],
19
- [0 , 0 , 1.5 , - 71 ]]
20
+ [0 , 0 , 1.5 , - 71 ],
21
+ [0 , 0 , 0 , 1. ]]
20
22
21
23
dimensions = (120 , 83 , 78 )
22
24
@@ -234,7 +236,7 @@ def test_dtseries():
234
236
matrix .append (series_map )
235
237
matrix .append (geometry_map )
236
238
hdr = ci .Cifti2Header (matrix )
237
- data = np .random .randn (13 , 9 )
239
+ data = np .random .randn (13 , 10 )
238
240
img = ci .Cifti2Image (data , hdr )
239
241
img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_DENSE_SERIES' )
240
242
@@ -257,7 +259,7 @@ def test_dscalar():
257
259
matrix .append (scalar_map )
258
260
matrix .append (geometry_map )
259
261
hdr = ci .Cifti2Header (matrix )
260
- data = np .random .randn (2 , 9 )
262
+ data = np .random .randn (2 , 10 )
261
263
img = ci .Cifti2Image (data , hdr )
262
264
img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_DENSE_SCALARS' )
263
265
@@ -279,7 +281,7 @@ def test_dlabel():
279
281
matrix .append (label_map )
280
282
matrix .append (geometry_map )
281
283
hdr = ci .Cifti2Header (matrix )
282
- data = np .random .randn (2 , 9 )
284
+ data = np .random .randn (2 , 10 )
283
285
img = ci .Cifti2Image (data , hdr )
284
286
img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_DENSE_LABELS' )
285
287
@@ -299,7 +301,7 @@ def test_dconn():
299
301
matrix = ci .Cifti2Matrix ()
300
302
matrix .append (mapping )
301
303
hdr = ci .Cifti2Header (matrix )
302
- data = np .random .randn (9 , 9 )
304
+ data = np .random .randn (10 , 10 )
303
305
img = ci .Cifti2Image (data , hdr )
304
306
img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_DENSE' )
305
307
@@ -322,7 +324,7 @@ def test_ptseries():
322
324
matrix .append (series_map )
323
325
matrix .append (parcel_map )
324
326
hdr = ci .Cifti2Header (matrix )
325
- data = np .random .randn (13 , 3 )
327
+ data = np .random .randn (13 , 4 )
326
328
img = ci .Cifti2Image (data , hdr )
327
329
img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_PARCELLATED_SERIES' )
328
330
@@ -344,7 +346,7 @@ def test_pscalar():
344
346
matrix .append (scalar_map )
345
347
matrix .append (parcel_map )
346
348
hdr = ci .Cifti2Header (matrix )
347
- data = np .random .randn (2 , 3 )
349
+ data = np .random .randn (2 , 4 )
348
350
img = ci .Cifti2Image (data , hdr )
349
351
img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_PARCELLATED_SCALAR' )
350
352
@@ -366,7 +368,7 @@ def test_pdconn():
366
368
matrix .append (geometry_map )
367
369
matrix .append (parcel_map )
368
370
hdr = ci .Cifti2Header (matrix )
369
- data = np .random .randn (2 , 3 )
371
+ data = np .random .randn (10 , 4 )
370
372
img = ci .Cifti2Image (data , hdr )
371
373
img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_PARCELLATED_DENSE' )
372
374
@@ -388,7 +390,7 @@ def test_dpconn():
388
390
matrix .append (parcel_map )
389
391
matrix .append (geometry_map )
390
392
hdr = ci .Cifti2Header (matrix )
391
- data = np .random .randn (2 , 3 )
393
+ data = np .random .randn (4 , 10 )
392
394
img = ci .Cifti2Image (data , hdr )
393
395
img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_DENSE_PARCELLATED' )
394
396
@@ -410,7 +412,7 @@ def test_plabel():
410
412
matrix .append (label_map )
411
413
matrix .append (parcel_map )
412
414
hdr = ci .Cifti2Header (matrix )
413
- data = np .random .randn (2 , 3 )
415
+ data = np .random .randn (2 , 4 )
414
416
img = ci .Cifti2Image (data , hdr )
415
417
416
418
with InTemporaryDirectory ():
@@ -429,7 +431,7 @@ def test_pconn():
429
431
matrix = ci .Cifti2Matrix ()
430
432
matrix .append (mapping )
431
433
hdr = ci .Cifti2Header (matrix )
432
- data = np .random .randn (3 , 3 )
434
+ data = np .random .randn (4 , 4 )
433
435
img = ci .Cifti2Image (data , hdr )
434
436
img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_PARCELLATED' )
435
437
@@ -453,7 +455,7 @@ def test_pconnseries():
453
455
matrix .append (parcel_map )
454
456
matrix .append (series_map )
455
457
hdr = ci .Cifti2Header (matrix )
456
- data = np .random .randn (3 , 3 , 13 )
458
+ data = np .random .randn (4 , 4 , 13 )
457
459
img = ci .Cifti2Image (data , hdr )
458
460
img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_PARCELLATED_'
459
461
'PARCELLATED_SERIES' )
@@ -479,7 +481,7 @@ def test_pconnscalar():
479
481
matrix .append (parcel_map )
480
482
matrix .append (scalar_map )
481
483
hdr = ci .Cifti2Header (matrix )
482
- data = np .random .randn (3 , 3 , 13 )
484
+ data = np .random .randn (4 , 4 , 2 )
483
485
img = ci .Cifti2Image (data , hdr )
484
486
img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_PARCELLATED_'
485
487
'PARCELLATED_SCALAR' )
@@ -496,3 +498,29 @@ def test_pconnscalar():
496
498
check_parcel_map (img2 .header .matrix .get_index_map (0 ))
497
499
check_scalar_map (img2 .header .matrix .get_index_map (2 ))
498
500
del img2
501
+
502
+
503
+ def test_wrong_shape ():
504
+ scalar_map = create_scalar_map ((0 , ))
505
+ brain_model_map = create_geometry_map ((1 , ))
506
+
507
+ matrix = ci .Cifti2Matrix ()
508
+ matrix .append (scalar_map )
509
+ matrix .append (brain_model_map )
510
+ hdr = ci .Cifti2Header (matrix )
511
+
512
+ # correct shape is (2, 10)
513
+ for data in (
514
+ np .random .randn (1 , 11 ),
515
+ np .random .randn (2 , 10 , 1 ),
516
+ np .random .randn (1 , 2 , 10 ),
517
+ np .random .randn (3 , 10 ),
518
+ np .random .randn (2 , 9 ),
519
+ ):
520
+ with clear_and_catch_warnings ():
521
+ with error_warnings ():
522
+ assert_raises (UserWarning , ci .Cifti2Image , data , hdr )
523
+ with suppress_warnings ():
524
+ img = ci .Cifti2Image (data , hdr )
525
+ assert_raises (ValueError , img .to_file_map )
526
+
0 commit comments