Add verbose flag, WireViz dev dep, and rendered diagram examples

- Gate model/value heuristic output behind --verbose/-v flag (quiet by default)
- Add wireviz>=0.4 as dev dependency for roundtrip render tests
- Generate SVG/PNG diagram renders for inter_module, single_module, hierarchical
- Embed rendered diagrams in README with layout optimization callout
This commit is contained in:
Ryan Malloy 2026-02-13 09:19:18 -07:00
parent fd822e07ce
commit 95ed08866c
9 changed files with 425 additions and 14 deletions

View file

@ -209,16 +209,41 @@ X1 NET1 NET2 NET3 NET4 small
assert "extra nodes" in captured.err
def test_model_value_heuristic_warning(self, capsys):
"""I6: The model/value heuristic should warn when it triggers."""
text = """\
"""I6: The model/value heuristic should warn when verbose is on."""
from spice2wireviz.parser import netlist as netlist_module
original = netlist_module.verbose
try:
netlist_module.verbose = True
text = """\
.subckt test A B
J1 A B SOME_MODEL
.ends test
"""
parse_netlist(text)
captured = capsys.readouterr()
assert "SOME_MODEL" in captured.err
assert "model/value" in captured.err
parse_netlist(text)
captured = capsys.readouterr()
assert "SOME_MODEL" in captured.err
assert "model/value" in captured.err
finally:
netlist_module.verbose = original
def test_model_value_heuristic_quiet_by_default(self, capsys):
"""The model/value heuristic should be silent when verbose is off."""
from spice2wireviz.parser import netlist as netlist_module
original = netlist_module.verbose
try:
netlist_module.verbose = False
text = """\
.subckt test A B
J1 A B SOME_MODEL
.ends test
"""
parse_netlist(text)
captured = capsys.readouterr()
assert "model/value" not in captured.err
finally:
netlist_module.verbose = original
def test_duplicate_refs_both_parsed(self):
"""S3: Duplicate reference designators should both be parsed."""