def test_seqcomp(a): circ1 = common.identity_gate(4, input='a', output='tmp') circ2 = common.identity_gate(4, input='tmp', output='out') circ3 = circ1 >> circ2 assert circ3.inputs == circ1.inputs assert circ3.outputs == circ2.outputs val = circ3({ 'a': common.encode_int(4, a), })[0]['out'] assert common.decode_int(val) == a
def atom(wordlen: int, val: Val, signed: bool = True) -> Expr: output = cmn._fresh() if val is None: val = cmn._fresh() if isinstance(val, str): aig = cmn.identity_gate(wordlen, val, output) else: aig = cmn.source(wordlen, val, output, signed) return (SignedBVExpr if signed else UnsignedBVExpr)(aig)
def test_identity(a): circ = common.identity_gate(4, input='a', output='out') val = circ({'a': common.encode_int(4, a)})[0]['out'] assert common.decode_int(val) == a