Add protocol-certification M9 L3 channel certifier (2.71.0).
L3 CHANNEL structure for timing budget, insertion loss, return loss, crosstalk, and complete channel. Numeric PASS/FAIL only from existing channel FACT; otherwise a visible skip. No OpenEMS, no invented S-parameters, no M6 packs.
This commit is contained in:
@@ -204,8 +204,8 @@ def test_axi_internal_l2_not_applicable():
|
||||
assert rows
|
||||
assert all(r.result == "NOT_APPLICABLE" for r in rows)
|
||||
sec, findings = protocol_exam(_axi_graph())
|
||||
assert sec.max_level_reached == "L2"
|
||||
assert sec.macrophase == "M8"
|
||||
assert sec.max_level_reached == "L3"
|
||||
assert sec.macrophase == "M9"
|
||||
assert all(f.status != "ERROR" for f in findings)
|
||||
blob = json.dumps([r.model_dump() for r in rows])
|
||||
assert "L0/L1 are not electrical" in blob
|
||||
@@ -253,7 +253,7 @@ def test_l2_does_not_run_l3_or_geometry():
|
||||
|
||||
def test_protocol_exam_attaches_l2_checks():
|
||||
sec, _ = protocol_exam(_usb_connected())
|
||||
assert sec.max_level_reached == "L2"
|
||||
assert sec.max_level_reached == "L3"
|
||||
row = sec.recognized_instances[0]
|
||||
assert row.get("l2_checks")
|
||||
assert all(c.get("level") == "L2" for c in row["l2_checks"])
|
||||
|
||||
Reference in New Issue
Block a user