@@ -46,6 +46,12 @@ def sphere():
4646 return mesh
4747
4848
49+ @pytest .fixture
50+ def grid ():
51+ mesh = Mesh .from_meshgrid (dx = 10 , nx = 10 )
52+ return mesh
53+
54+
4955# ==============================================================================
5056# Tests - Schema & jsonschema
5157# ==============================================================================
@@ -257,7 +263,7 @@ def test_del_edge_attribute_in_view(mesh, edge_key):
257263# Tests - Loops & Strip
258264# ==============================================================================
259265
260- def test_loops_and_strips (sphere ):
266+ def test_loops_and_strips_closed (sphere ):
261267 poles = list (sphere .vertices_where ({'vertex_degree' : 16 }))
262268
263269 for nbr in sphere .vertex_neighbors (poles [0 ]):
@@ -278,3 +284,53 @@ def test_loops_and_strips(sphere):
278284
279285 assert len (ring ) == 16 , ring
280286 assert ring [0 ][0 ] == ring [- 1 ][1 ]
287+
288+
289+ def test_loops_and_strips_open (grid ):
290+ assert grid .number_of_edges () == 220
291+
292+ edge = 47 , 48
293+ strip = grid .edge_strip (edge )
294+ loop = grid .edge_loop (edge )
295+
296+ assert edge in strip
297+ assert len (strip ) == 11
298+ assert grid .is_edge_on_boundary (* strip [0 ])
299+ assert grid .is_edge_on_boundary (* strip [- 1 ])
300+
301+ assert edge in loop
302+ assert len (loop ) == 10
303+ assert grid .is_vertex_on_boundary (loop [0 ][0 ])
304+ assert grid .is_vertex_on_boundary (loop [- 1 ][1 ])
305+
306+
307+ def test_loops_and_strips_open_corner (grid ):
308+ assert grid .number_of_edges () == 220
309+
310+ edge = 0 , 1
311+ loop = grid .edge_loop (edge )
312+ strip = grid .edge_strip (edge )
313+
314+ assert edge in strip
315+ assert len (strip ) == 11
316+ assert grid .is_edge_on_boundary (* strip [0 ])
317+ assert grid .is_edge_on_boundary (* strip [- 1 ])
318+ assert edge == strip [- 1 ]
319+
320+ assert edge in loop
321+ assert len (loop ) == 10
322+ assert edge == loop [0 ]
323+
324+ edge = 1 , 0
325+ loop = grid .edge_loop (edge )
326+ strip = grid .edge_strip (edge )
327+
328+ assert edge in strip
329+ assert len (strip ) == 11
330+ assert grid .is_edge_on_boundary (* strip [0 ])
331+ assert grid .is_edge_on_boundary (* strip [- 1 ])
332+ assert edge == strip [0 ]
333+
334+ assert edge in loop
335+ assert len (loop ) == 10
336+ assert edge == loop [- 1 ]
0 commit comments