1212from nibabel import cifti2 as ci
1313from nibabel .tmpdirs import InTemporaryDirectory
1414
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
1617
1718affine = [[- 1.5 , 0 , 0 , 90 ],
1819 [0 , 1.5 , 0 , - 85 ],
19- [0 , 0 , 1.5 , - 71 ]]
20+ [0 , 0 , 1.5 , - 71 ],
21+ [0 , 0 , 0 , 1. ]]
2022
2123dimensions = (120 , 83 , 78 )
2224
@@ -234,7 +236,7 @@ def test_dtseries():
234236 matrix .append (series_map )
235237 matrix .append (geometry_map )
236238 hdr = ci .Cifti2Header (matrix )
237- data = np .random .randn (13 , 9 )
239+ data = np .random .randn (13 , 10 )
238240 img = ci .Cifti2Image (data , hdr )
239241 img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_DENSE_SERIES' )
240242
@@ -257,7 +259,7 @@ def test_dscalar():
257259 matrix .append (scalar_map )
258260 matrix .append (geometry_map )
259261 hdr = ci .Cifti2Header (matrix )
260- data = np .random .randn (2 , 9 )
262+ data = np .random .randn (2 , 10 )
261263 img = ci .Cifti2Image (data , hdr )
262264 img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_DENSE_SCALARS' )
263265
@@ -279,7 +281,7 @@ def test_dlabel():
279281 matrix .append (label_map )
280282 matrix .append (geometry_map )
281283 hdr = ci .Cifti2Header (matrix )
282- data = np .random .randn (2 , 9 )
284+ data = np .random .randn (2 , 10 )
283285 img = ci .Cifti2Image (data , hdr )
284286 img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_DENSE_LABELS' )
285287
@@ -299,7 +301,7 @@ def test_dconn():
299301 matrix = ci .Cifti2Matrix ()
300302 matrix .append (mapping )
301303 hdr = ci .Cifti2Header (matrix )
302- data = np .random .randn (9 , 9 )
304+ data = np .random .randn (10 , 10 )
303305 img = ci .Cifti2Image (data , hdr )
304306 img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_DENSE' )
305307
@@ -322,7 +324,7 @@ def test_ptseries():
322324 matrix .append (series_map )
323325 matrix .append (parcel_map )
324326 hdr = ci .Cifti2Header (matrix )
325- data = np .random .randn (13 , 3 )
327+ data = np .random .randn (13 , 4 )
326328 img = ci .Cifti2Image (data , hdr )
327329 img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_PARCELLATED_SERIES' )
328330
@@ -344,7 +346,7 @@ def test_pscalar():
344346 matrix .append (scalar_map )
345347 matrix .append (parcel_map )
346348 hdr = ci .Cifti2Header (matrix )
347- data = np .random .randn (2 , 3 )
349+ data = np .random .randn (2 , 4 )
348350 img = ci .Cifti2Image (data , hdr )
349351 img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_PARCELLATED_SCALAR' )
350352
@@ -366,7 +368,7 @@ def test_pdconn():
366368 matrix .append (geometry_map )
367369 matrix .append (parcel_map )
368370 hdr = ci .Cifti2Header (matrix )
369- data = np .random .randn (2 , 3 )
371+ data = np .random .randn (10 , 4 )
370372 img = ci .Cifti2Image (data , hdr )
371373 img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_PARCELLATED_DENSE' )
372374
@@ -388,7 +390,7 @@ def test_dpconn():
388390 matrix .append (parcel_map )
389391 matrix .append (geometry_map )
390392 hdr = ci .Cifti2Header (matrix )
391- data = np .random .randn (2 , 3 )
393+ data = np .random .randn (4 , 10 )
392394 img = ci .Cifti2Image (data , hdr )
393395 img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_DENSE_PARCELLATED' )
394396
@@ -410,7 +412,7 @@ def test_plabel():
410412 matrix .append (label_map )
411413 matrix .append (parcel_map )
412414 hdr = ci .Cifti2Header (matrix )
413- data = np .random .randn (2 , 3 )
415+ data = np .random .randn (2 , 4 )
414416 img = ci .Cifti2Image (data , hdr )
415417
416418 with InTemporaryDirectory ():
@@ -429,7 +431,7 @@ def test_pconn():
429431 matrix = ci .Cifti2Matrix ()
430432 matrix .append (mapping )
431433 hdr = ci .Cifti2Header (matrix )
432- data = np .random .randn (3 , 3 )
434+ data = np .random .randn (4 , 4 )
433435 img = ci .Cifti2Image (data , hdr )
434436 img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_PARCELLATED' )
435437
@@ -453,7 +455,7 @@ def test_pconnseries():
453455 matrix .append (parcel_map )
454456 matrix .append (series_map )
455457 hdr = ci .Cifti2Header (matrix )
456- data = np .random .randn (3 , 3 , 13 )
458+ data = np .random .randn (4 , 4 , 13 )
457459 img = ci .Cifti2Image (data , hdr )
458460 img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_PARCELLATED_'
459461 'PARCELLATED_SERIES' )
@@ -479,7 +481,7 @@ def test_pconnscalar():
479481 matrix .append (parcel_map )
480482 matrix .append (scalar_map )
481483 hdr = ci .Cifti2Header (matrix )
482- data = np .random .randn (3 , 3 , 13 )
484+ data = np .random .randn (4 , 4 , 2 )
483485 img = ci .Cifti2Image (data , hdr )
484486 img .nifti_header .set_intent ('NIFTI_INTENT_CONNECTIVITY_PARCELLATED_'
485487 'PARCELLATED_SCALAR' )
@@ -496,3 +498,29 @@ def test_pconnscalar():
496498 check_parcel_map (img2 .header .matrix .get_index_map (0 ))
497499 check_scalar_map (img2 .header .matrix .get_index_map (2 ))
498500 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