diff --git a/tests/succession_diagram_test.py b/tests/succession_diagram_test.py index ad8d0cd..d8762cf 100644 --- a/tests/succession_diagram_test.py +++ b/tests/succession_diagram_test.py @@ -171,13 +171,13 @@ def test_expansion_comparisons(network_file: str): # succession_diagram is too large for this test. return + assert sd_bfs.is_isomorphic(sd_dfs) + # Normal minimal trap space expansion. sd_min = SuccessionDiagram(bn) assert sd_min.expand_minimal_spaces(size_limit=NODE_LIMIT) - assert sd_bfs.is_isomorphic(sd_dfs) assert sd_min.is_subgraph(sd_bfs) - assert sd_min.is_subgraph(sd_dfs) # Expand the first node fully, and then expand the rest # until minimal trap spaces are found. @@ -188,7 +188,6 @@ def test_expansion_comparisons(network_file: str): assert sd_min_larger.expand_minimal_spaces(node_id=node_id) assert sd_min_larger.is_subgraph(sd_bfs) - assert sd_min_larger.is_subgraph(sd_dfs) assert len(sd_min_larger) >= len(sd_min) # Normal block expansion with size limit. @@ -200,7 +199,6 @@ def test_expansion_comparisons(network_file: str): ) assert sd_block.is_subgraph(sd_bfs) - assert sd_block.is_subgraph(sd_dfs) block_trap = [ sd_block.node_data(i)["space"] for i in sd_block.minimal_trap_spaces() @@ -211,6 +209,19 @@ def test_expansion_comparisons(network_file: str): for t in min_trap: assert t in block_trap + # Block expansion with symbolic fallback. + sd_config = SuccessionDiagram.default_config() + # Artificially enforce that NFVS method (almost) always fails. + sd_config["attractor_candidates_limit"] = 0 + sd_block_fallback = SuccessionDiagram(bn) + assert sd_block_fallback.expand_block( + find_motif_avoidant_attractors=True, + size_limit=NODE_LIMIT, + optimize_source_nodes=False, + ) + + sd_block_fallback.is_subgraph(sd_bfs) + sd_attr = SuccessionDiagram(bn) assert sd_attr.expand_attractor_seeds(size_limit=NODE_LIMIT)