def test_add_addressed_tilealias(): code = [ parser.AliasStmt(tile_no="3", symbolic_name="myTile"), parser.AssignOp("inbox", "emp"), parser.AssignOp("emp", "myTile"), parser.AddOp(parser.AddressOf("myTile")) ] assert get_assembly(code) == [ {"operation": "inbox"}, {"operation": "copyto", "operand": {"Cell": 3}}, {"operation": "add", "operand": {"Address": 3}} ]
def test_copyto_addressof_alias(): code = [parser.AliasStmt(3, "knownLabel"), parser.AssignOp("emp", parser.AddressOf("knownLabel"))] assert get_assembly(code) == [{"operation": "copyto", "operand": {"Address": 3}}]
def test_copyto_equivalence(): alias_ast = [parser.AliasStmt(3, "knownLabel"), parser.AssignOp("emp", "knownLabel")] tile_ast = [parser.AssignOp("emp", "3")] assert get_assembly(alias_ast) == get_assembly(tile_ast)
def test_copyfrom_alias(): code = [parser.AliasStmt(3, "knownLabel"), parser.AssignOp("knownLabel", "emp")] assert get_assembly(code) == [{"operation": "copyfrom", "operand": {"Cell": 3}}]
def test_sub_addressed_tilealias(): code = [ parser.AliasStmt("5", "myTile"), parser.SubOp(parser.AddressOf("myTile")) ] assert get_assembly(code) == [{"operation": "sub", "operand": {"Address": 5}}]
def test_sub_tilealias(): code = [ parser.AliasStmt("5", "myTile"), parser.SubOp("myTile") ] assert get_assembly(code) == [{"operation": "sub", "operand": {"Cell": 5}}]
def test_decr_address_withlabel(): code = [parser.AliasStmt("0", "mylabel"), parser.DecrOp(parser.AddressOf("mylabel"))] assert get_assembly(code) == [{"operation": "bump-", "operand": {"Address": 0}}]
def test_decr_withlabel(): code = [parser.AliasStmt("0", "mylabel"), parser.DecrOp("mylabel")] assert get_assembly(code) == [{"operation": "bump-", "operand": {"Cell": 0}}]