Skip to content

Commit a8cb50f

Browse files
Fix skeleton test
1 parent 366d685 commit a8cb50f

1 file changed

Lines changed: 57 additions & 9 deletions

File tree

tests/skeleton/test_distributed.py

Lines changed: 57 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,6 @@
33

44
import bioimage_cpp as bic
55

6-
from development.skeleton.blockwise_stitching import (
7-
run_blockwise_binary,
8-
run_blockwise_labels,
9-
)
10-
116

127
dist = bic.skeleton.distributed
138

@@ -304,20 +299,73 @@ def test_minimum_spanning_forest_is_deterministic_and_preserves_vertices():
304299
assert _number_of_components(len(forest[0]), forest[1]) == 2
305300

306301

307-
def test_serial_binary_harness_stitches_multiple_blocks():
302+
def test_two_block_binary_pipeline_stitches_shared_target():
308303
mask = np.zeros((11, 11, 19), dtype=np.uint8)
309304
mask[5, 5, 1:18] = 1
310-
graph = run_blockwise_binary(mask, (6, 6, 6), remove_cycles=True)
305+
left = np.ascontiguousarray(mask[:, :, :11])
306+
right = np.ascontiguousarray(mask[:, :, 10:])
307+
left_targets = dist.block_border_targets(
308+
left, [(2, "high")], origin=(0, 0, 0)
309+
)
310+
right_targets = dist.block_border_targets(
311+
right, [(2, "low")], origin=(0, 0, 10)
312+
)
313+
np.testing.assert_array_equal(left_targets, right_targets)
314+
fragments = [
315+
dist.block_teasar(
316+
left,
317+
open_faces=[(2, "high")],
318+
origin=(0, 0, 0),
319+
required_targets=left_targets,
320+
),
321+
dist.block_teasar(
322+
right,
323+
open_faces=[(2, "low")],
324+
origin=(0, 0, 10),
325+
required_targets=right_targets,
326+
),
327+
]
328+
graph = dist.minimum_spanning_forest(
329+
dist.merge_block_skeletons(fragments)
330+
)
311331
assert graph[0].shape[0] > 0
312332
assert _number_of_components(len(graph[0]), graph[1]) == 1
313333
assert len(graph[1]) == len(graph[0]) - 1
314334

315335

316-
def test_serial_labeled_harness_keeps_touching_labels_separate():
336+
def test_two_block_labeled_pipeline_keeps_touching_labels_separate():
317337
labels = np.zeros((9, 9, 17), dtype=np.int64)
318338
labels[3, 4, 1:16] = -3
319339
labels[4, 4, 1:16] = 8
320-
graphs = run_blockwise_labels(labels, (5, 5, 6), remove_cycles=True)
340+
left = np.ascontiguousarray(labels[:, :, :10])
341+
right = np.ascontiguousarray(labels[:, :, 9:])
342+
left_targets = dist.block_border_targets_labels(
343+
left, [(2, "high")], origin=(0, 0, 0)
344+
)
345+
right_targets = dist.block_border_targets_labels(
346+
right, [(2, "low")], origin=(0, 0, 9)
347+
)
348+
assert left_targets.keys() == right_targets.keys()
349+
for label in left_targets:
350+
np.testing.assert_array_equal(left_targets[label], right_targets[label])
351+
fragments = [
352+
dist.block_teasar_labels(
353+
left,
354+
open_faces=[(2, "high")],
355+
origin=(0, 0, 0),
356+
required_targets=left_targets,
357+
),
358+
dist.block_teasar_labels(
359+
right,
360+
open_faces=[(2, "low")],
361+
origin=(0, 0, 9),
362+
required_targets=right_targets,
363+
),
364+
]
365+
graphs = {
366+
label: dist.minimum_spanning_forest(graph)
367+
for label, graph in dist.merge_block_skeleton_maps(fragments).items()
368+
}
321369
assert list(graphs) == [-3, 8]
322370
for graph in graphs.values():
323371
assert _number_of_components(len(graph[0]), graph[1]) == 1

0 commit comments

Comments
 (0)