Browse Source

fix Surface.find_borders() tests for python3.5

Fabian Peter Hammerle 4 years ago
parent
commit
21a4c27af0
1 changed files with 8 additions and 4 deletions
  1. 8 4
      tests/test_surface.py

+ 8 - 4
tests/test_surface.py

@@ -343,7 +343,7 @@ def test_find_borders_remove_adjacent_triangles():
                              135264, 136142)) in borders
 
 
-@pytest.mark.parametrize(('label_name', 'border_lens'), [
+@pytest.mark.parametrize(('label_name', 'expected_border_lens'), [
     ('precentral', [416]),
     ('postcentral', [395]),
     ('medialorbitofrontal', [6, 246]),
@@ -352,10 +352,10 @@ def test_find_borders_remove_adjacent_triangles():
     #           2345      2348
     #          /    \    /
     # ...--2344      2346
-    ('posteriorcingulate', [194]),
+    ('posteriorcingulate', [4, 190]),
     ('unknown', [3, 390]),
 ])
-def test_find_borders_real(label_name, border_lens):
+def test_find_borders_real(label_name, expected_border_lens):
     surface = Surface.read_triangular(SURFACE_FILE_PATH)
     surface.load_annotation_file(ANNOTATION_FILE_PATH)
     label, = filter(lambda l: l.name == label_name,
@@ -367,7 +367,11 @@ def test_find_borders_real(label_name, border_lens):
     ))
     surface.remove_unused_vertices()
     borders = list(surface.find_borders())
-    assert sorted(len(b.vertex_indices) for b in borders) == border_lens
+    border_lens = [len(b.vertex_indices) for b in borders]
+    # self-crossing borders may or may not be split into
+    # separate polygonal circuits
+    assert sorted(border_lens) == expected_border_lens \
+        or sum(border_lens) == sum(expected_border_lens)
 
 
 def test__get_vertex_label_index():