def test_arg_invalid(): with pytest.raises(pt.TealTypeError): pt.Arg(pt.Bytes("k")) with pytest.raises(pt.TealInputError): pt.Arg(-1) with pytest.raises(pt.TealInputError): pt.Arg(256)
def test_arg_static(): for i in range(256): expr = pt.Arg(i) assert expr.type_of() == pt.TealType.bytes assert not expr.has_return() expected = pt.TealSimpleBlock([pt.TealOp(expr, pt.Op.arg, i)]) actual, _ = expr.__teal__(avm2Options) assert actual == expected
def test_keccak256(): arg = pt.Arg(0) expr = pt.Keccak256(arg) assert expr.type_of() == pt.TealType.bytes expected = pt.TealSimpleBlock( [pt.TealOp(arg, pt.Op.arg, 0), pt.TealOp(expr, pt.Op.keccak256)] ) actual, _ = expr.__teal__(avm2Options) actual.addIncoming() actual = pt.TealBlock.NormalizeBlocks(actual) assert actual == expected
def test_btoi(): arg = pt.Arg(1) expr = pt.Btoi(arg) assert expr.type_of() == pt.TealType.uint64 expected = pt.TealSimpleBlock( [pt.TealOp(arg, pt.Op.arg, 1), pt.TealOp(expr, pt.Op.btoi)] ) actual, _ = expr.__teal__(avm2Options) actual.addIncoming() actual = pt.TealBlock.NormalizeBlocks(actual) assert actual == expected
def test_arg_dynamic(): i = pt.Int(7) expr = pt.Arg(i) assert expr.type_of() == pt.TealType.bytes assert not expr.has_return() expected = pt.TealSimpleBlock( [pt.TealOp(i, pt.Op.int, 7), pt.TealOp(expr, pt.Op.args)] ) actual, _ = expr.__teal__(avm5Options) actual.addIncoming() actual = pt.TealBlock.NormalizeBlocks(actual) assert actual == expected with pytest.raises(pt.TealInputError): expr.__teal__(avm4Options)
def test_cond_invalid(): with pytest.raises(pt.TealInputError): pt.Cond() with pytest.raises(pt.TealInputError): pt.Cond([]) with pytest.raises(pt.TealInputError): pt.Cond([pt.Int(1)], [pt.Int(2), pt.Pop(pt.Txn.receiver())]) with pytest.raises(pt.TealTypeError): pt.Cond([pt.Int(1), pt.Int(2)], [pt.Int(2), pt.Txn.receiver()]) with pytest.raises(pt.TealTypeError): pt.Cond([pt.Arg(0), pt.Int(2)]) with pytest.raises(pt.TealTypeError): pt.Cond([pt.Int(1), pt.Int(2)], [pt.Int(2), pt.Pop(pt.Int(2))]) with pytest.raises(pt.TealTypeError): pt.Cond([pt.Int(1), pt.Pop(pt.Int(1))], [pt.Int(2), pt.Int(2)])
def test_itob_invalid(): with pytest.raises(pt.TealTypeError): pt.Itob(pt.Arg(1))