def test_short_cut_find(): n = core.Network() a = gates.Switch(n) b = gates.Switch(n) c = gates.Switch(n) r, co = adders.full_adder(a, b, c) assert a.find('full_adder(0.1)') is co assert a.find('full_adder(0.0)') is r
def test_find(): n = core.Network() a = gates.Switch(n) b = gates.Switch(n) c = gates.Switch(n) r, co = adders.full_adder(a, b, c) assert a.find("full_adder(0.half_adder(0.and.1).or.1)") is co assert a.find("full_adder(0.half_adder(0.not.and.or.0).half_adder(0.not.and.or.0).0)") is r
def test_short_cut_find(): n = core.Network() a = gates.Switch(n) b = gates.Switch(n) c = gates.Switch(n) r, co = adders.full_adder(a, b, c) assert a.find("full_adder(0.1)") is co assert a.find("full_adder(0.0)") is r
def test_find(): n = core.Network() a = gates.Switch(n) b = gates.Switch(n) c = gates.Switch(n) r, co = adders.full_adder(a, b, c) assert a.find('full_adder(0.half_adder(0.nor.nor.1).nor.nor.1)') is co assert a.find( 'full_adder(0.half_adder(0.nor.nor.nor.0).half_adder(0.nor.nor.nor.0).0)' ) is r
def test_list(): n = core.Network() a = gates.Switch(n) b = gates.Switch(n) c = gates.Switch(n) r, co = adders.full_adder(a, b, c) assert a.list("") == ["full_adder(0"] assert a.list("full_adder(0") == ["0)", "1)", "half_adder(0"] assert a.list("full_adder(0.half_adder(0") == ["0)", "1)", "and", "and", "not"] assert a.list("full_adder(0.half_adder(0.and") == ["1)"] assert a.list("full_adder(0.half_adder(0.and.1)") == ["or"] assert a.list("full_adder(0.half_adder(0.and.1).or") == ["1)"] assert a.list("full_adder(0.half_adder(0.and.1).or.1)") == []
def test_list(): n = core.Network() a = gates.Switch(n) b = gates.Switch(n) c = gates.Switch(n) r, co = adders.full_adder(a, b, c) assert a.list('') == ['full_adder(0'] assert a.list('full_adder(0') == ['0)', '1)', 'half_adder(0'] assert a.list('full_adder(0.half_adder(0') == ['0)', '1)', 'nor', 'nor'] assert a.list('full_adder(0.half_adder(0.nor') == ['nor'] assert a.list('full_adder(0.half_adder(0.nor.nor') == ['nor', '1)'] assert a.list('full_adder(0.half_adder(0.nor.nor.1)') == ['nor'] assert a.list('full_adder(0.half_adder(0.nor.nor.1).nor') == ['nor'] assert a.list('full_adder(0.half_adder(0.nor.nor.1).nor.nor') == ['1)'] assert a.list('full_adder(0.half_adder(0.nor.nor.1).nor.nor.1)') == []
def test_full_adder(): network = core.Network() a = gates.Switch(network) b = gates.Switch(network) c = gates.Switch(network) r, co = adders.full_adder(a, b, c) network.drain() a.write(False) b.write(False) c.write(False) network.drain() assert not r.read() assert not co.read() a.write(True) b.write(False) c.write(False) network.drain() assert r.read() assert not co.read() a.write(False) b.write(True) c.write(False) network.drain() assert r.read() assert not co.read() a.write(True) b.write(True) c.write(False) network.drain() assert not r.read() assert co.read() a.write(False) b.write(False) c.write(True) network.drain() assert r.read() assert not co.read() a.write(True) b.write(False) c.write(True) network.drain() assert not r.read() assert co.read() a.write(False) b.write(True) c.write(True) network.drain() assert not r.read() assert co.read() a.write(True) b.write(True) c.write(True) network.drain() assert r.read() assert co.read()