test_polygonal_circuit.py 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. import pytest
  2. from freesurfer_surface import _PolygonalCircuit
  3. @pytest.mark.parametrize(('source_vertex_indices', 'expected_vertex_indices'), [
  4. ((1, 2, 3), (1, 2, 3)),
  5. ((2, 3, 1), (1, 2, 3)),
  6. ((3, 1, 2), (1, 2, 3)),
  7. ((1,), (1,)),
  8. ])
  9. def test__normalize(source_vertex_indices, expected_vertex_indices):
  10. # pylint: disable=protected-access
  11. circuit = _PolygonalCircuit(source_vertex_indices)
  12. assert expected_vertex_indices == circuit._normalize()._vertex_indices
  13. def test_eq():
  14. assert _PolygonalCircuit((0, 1)) == _PolygonalCircuit((0, 1))
  15. assert _PolygonalCircuit((0, 1)) == _PolygonalCircuit((1, 0))
  16. assert _PolygonalCircuit((0, 1, 2)) == _PolygonalCircuit((0, 1, 2))
  17. assert _PolygonalCircuit((0, 1, 2)) == _PolygonalCircuit((1, 2, 0))
  18. assert _PolygonalCircuit((0, 1, 2)) == _PolygonalCircuit((2, 0, 1))
  19. # pylint: disable=unneeded-not
  20. assert not _PolygonalCircuit((0, 1, 2)) == _PolygonalCircuit((0, 1, 4))
  21. assert not _PolygonalCircuit((0, 1, 2)) == _PolygonalCircuit((0, 4, 2))
  22. assert not _PolygonalCircuit((0, 1, 2)) == _PolygonalCircuit((4, 1, 2))
  23. def test_hash():
  24. assert hash(_PolygonalCircuit((0, 1, 2))) \
  25. == hash(_PolygonalCircuit((0, 1, 2)))
  26. assert hash(_PolygonalCircuit((0, 1, 2))) \
  27. == hash(_PolygonalCircuit((1, 2, 0)))
  28. assert hash(_PolygonalCircuit((0, 1, 2))) \
  29. == hash(_PolygonalCircuit((2, 0, 1)))
  30. assert hash(_PolygonalCircuit((0, 1, 2))) \
  31. != hash(_PolygonalCircuit((0, 1, 4)))
  32. assert hash(_PolygonalCircuit((0, 1, 2))) \
  33. != hash(_PolygonalCircuit((0, 4, 2)))
  34. assert hash(_PolygonalCircuit((0, 1, 2))) \
  35. != hash(_PolygonalCircuit((4, 1, 2)))
  36. def test_adjacent_vertex_indices_1():
  37. chain = _PolygonalCircuit((0, 1, 4, 8))
  38. singles = list(chain.adjacent_vertex_indices(1))
  39. assert len(singles) == 4
  40. assert singles[0] == (0,)
  41. assert singles[1] == (1,)
  42. assert singles[2] == (4,)
  43. assert singles[3] == (8,)
  44. def test_adjacent_vertex_indices_2():
  45. chain = _PolygonalCircuit((0, 1, 4, 8))
  46. pairs = list(chain.adjacent_vertex_indices(2))
  47. assert len(pairs) == 4
  48. assert pairs[0] == (0, 1)
  49. assert pairs[1] == (1, 4)
  50. assert pairs[2] == (4, 8)
  51. assert pairs[3] == (8, 0)
  52. def test_adjacent_vertex_indices_3():
  53. chain = _PolygonalCircuit((0, 1, 4, 8))
  54. triplets = list(chain.adjacent_vertex_indices(3))
  55. assert len(triplets) == 4
  56. assert triplets[0] == (0, 1, 4)
  57. assert triplets[1] == (1, 4, 8)
  58. assert triplets[2] == (4, 8, 0)
  59. assert triplets[3] == (8, 0, 1)
  60. def test_adjacent_vertex_indices_4():
  61. chain = _PolygonalCircuit((0, 1, 4, 8))
  62. quadruples = list(chain.adjacent_vertex_indices(4))
  63. assert len(quadruples) == 4
  64. assert quadruples[0] == (0, 1, 4, 8)
  65. assert quadruples[1] == (1, 4, 8, 0)
  66. assert quadruples[2] == (4, 8, 0, 1)
  67. assert quadruples[3] == (8, 0, 1, 4)
  68. def test_adjacent_vertex_indices_5():
  69. chain = _PolygonalCircuit((0, 1, 4, 8))
  70. quintuples = list(chain.adjacent_vertex_indices(5))
  71. assert len(quintuples) == 4
  72. assert quintuples[0] == (0, 1, 4, 8, 0)
  73. assert quintuples[1] == (1, 4, 8, 0, 1)
  74. assert quintuples[2] == (4, 8, 0, 1, 4)
  75. assert quintuples[3] == (8, 0, 1, 4, 8)