move baseline into class, support for pattern list import, fault list export, avoid resolving circuits twice.
This commit is contained in:
1 parent
5ba1f11d1d
commit
9a41edda4c
7 files changed
+149
-78
No files matched your search
@@ -4,15 +4,15 @@ from fsim.static import FaultSet
|
||||
|
||||
def test_trivial_inv():
|
||||
c = bench.parse('input(i) output(o) o=INV(i)')
|
||||
fs = FaultSet(c, KYUPY)
|
||||
fs = FaultSet(c, KYUPY, c)
|
||||
assert len(fs.saf_set) == 4
|
||||
assert len(fs.saf_equiv_classes) == 2
|
||||
oline = c.forks['o'].ins[0]
|
||||
iline = oline.driver.ins[0]
|
||||
assert fs.fault_str(oline.index*2) == 'o/o@0'
|
||||
assert fs.fault_str(oline.index*2+1) == 'o/o@1'
|
||||
assert fs.fault_str(iline.index*2) == 'o/i0@0'
|
||||
assert fs.fault_str(iline.index*2+1) == 'o/i0@1'
|
||||
assert fs.fault_site_str(c, KYUPY, oline.index*2) == 'o/o'
|
||||
assert fs.fault_site_str(c, KYUPY, oline.index*2+1) == 'o/o'
|
||||
assert fs.fault_site_str(c, KYUPY, iline.index*2) == 'o/i0'
|
||||
assert fs.fault_site_str(c, KYUPY, iline.index*2+1) == 'o/i0'
|
||||
assert oline.index*2 in fs.saf_equiv_classes
|
||||
assert iline.index*2+1 in fs.saf_equiv_classes[oline.index*2]
|
||||
assert oline.index*2+1 in fs.saf_equiv_classes
|
||||
@@ -22,7 +22,7 @@ def test_and():
|
||||
c = bench.parse('input(i0, i1) output(o) o=AND(i0, i1)')
|
||||
for n in c.nodes:
|
||||
print(n)
|
||||
fs = FaultSet(c, KYUPY)
|
||||
fs = FaultSet(c, KYUPY, c)
|
||||
assert len(fs.saf_set) == 6
|
||||
assert len(fs.saf_equiv_classes) == 4
|
||||
oline = c.forks['o'].ins[0]
|
||||
@@ -39,7 +39,7 @@ def test_and():
|
||||
def _class_sizes(src):
|
||||
"""Returns (#equiv class of output s-a-0, #equiv class of output s-a-1)."""
|
||||
c = bench.parse(src)
|
||||
fs = FaultSet(c, KYUPY)
|
||||
fs = FaultSet(c, KYUPY, c)
|
||||
oline = c.forks['o'].ins[0]
|
||||
return (len(fs.saf_equiv_classes.get(oline.index*2, set())),
|
||||
len(fs.saf_equiv_classes.get(oline.index*2+1, set())))
|
||||
@@ -106,7 +106,7 @@ def test_s27():
|
||||
G12 = NOR(G1, G7)
|
||||
G13 = NOR(G2, G12)
|
||||
''')
|
||||
fs = FaultSet(c, KYUPY)
|
||||
fs = FaultSet(c, KYUPY, c)
|
||||
assert len(fs.saf_set) == 52
|
||||
assert len(fs.saf_equiv_classes) == 32
|
||||
g11_line = c.cells['G11'].outs[0]
|
||||
|
||||
Reference in new issue
Block a user