Esempio n. 1
0
def test_binary_classicals():
    p = Program()

    # OR is deprecated in favor of IOR
    with pytest.warns(UserWarning):
        p.inst(OR(MemoryReference("ro", 1), MemoryReference("ro", 0)))

    p.inst(
        AND(MemoryReference("ro", 0), MemoryReference("ro", 1)),
        MOVE(MemoryReference("ro", 0), MemoryReference("ro", 1)),
        CONVERT(MemoryReference("ro", 0), MemoryReference("ro", 1)),
        IOR(MemoryReference("ro", 0), MemoryReference("ro", 1)),
        XOR(MemoryReference("ro", 0), MemoryReference("ro", 1)),
        ADD(MemoryReference("ro", 0), MemoryReference("ro", 1)),
        SUB(MemoryReference("ro", 0), MemoryReference("ro", 1)),
        MUL(MemoryReference("ro", 0), MemoryReference("ro", 1)),
        DIV(MemoryReference("ro", 0), MemoryReference("ro", 1)),
        EXCHANGE(MemoryReference("ro", 0), MemoryReference("ro", 1)),
    )

    assert (p.out() == "IOR ro[0] ro[1]\n"
            "AND ro[0] ro[1]\n"
            "MOVE ro[0] ro[1]\n"
            "CONVERT ro[0] ro[1]\n"
            "IOR ro[0] ro[1]\n"
            "XOR ro[0] ro[1]\n"
            "ADD ro[0] ro[1]\n"
            "SUB ro[0] ro[1]\n"
            "MUL ro[0] ro[1]\n"
            "DIV ro[0] ro[1]\n"
            "EXCHANGE ro[0] ro[1]\n")
Esempio n. 2
0
def test_binary_classicals():
    p = Program()
    p.inst(AND(0, 1), OR(Addr(0), Addr(1)), MOVE(0, 1), EXCHANGE(0, Addr(1)))
    assert p.out() == 'AND [0] [1]\n' \
                      'OR [0] [1]\n' \
                      'MOVE [0] [1]\n' \
                      'EXCHANGE [0] [1]\n'
Esempio n. 3
0
def test_binary_classicals():
    p = Program()
    p.inst(AND(Addr(0), Addr(1)), OR(Addr(1), Addr(0)), MOVE(Addr(0), Addr(1)),
           CONVERT(Addr(0), Addr(1)), IOR(Addr(0), Addr(1)),
           XOR(Addr(0), Addr(1)), ADD(Addr(0), Addr(1)), SUB(Addr(0), Addr(1)),
           MUL(Addr(0), Addr(1)), DIV(Addr(0), Addr(1)),
           EXCHANGE(Addr(0), Addr(1)))
    assert p.out() == 'AND ro[0] ro[1]\n' \
                      'IOR ro[0] ro[1]\n' \
                      'MOVE ro[0] ro[1]\n' \
                      'CONVERT ro[0] ro[1]\n' \
                      'IOR ro[0] ro[1]\n' \
                      'XOR ro[0] ro[1]\n' \
                      'ADD ro[0] ro[1]\n' \
                      'SUB ro[0] ro[1]\n'\
                      'MUL ro[0] ro[1]\n' \
                      'DIV ro[0] ro[1]\n' \
                      'EXCHANGE ro[0] ro[1]\n'
Esempio n. 4
0
def test_binary_classicals():
    p = Program()
    p.inst(AND(MemoryReference("ro", 0), MemoryReference("ro", 1)),
           OR(MemoryReference("ro", 1), MemoryReference("ro", 0)),
           MOVE(MemoryReference("ro", 0), MemoryReference("ro", 1)),
           CONVERT(MemoryReference("ro", 0), MemoryReference("ro", 1)),
           IOR(MemoryReference("ro", 0), MemoryReference("ro", 1)),
           XOR(MemoryReference("ro", 0), MemoryReference("ro", 1)),
           ADD(MemoryReference("ro", 0), MemoryReference("ro", 1)),
           SUB(MemoryReference("ro", 0), MemoryReference("ro", 1)),
           MUL(MemoryReference("ro", 0), MemoryReference("ro", 1)),
           DIV(MemoryReference("ro", 0), MemoryReference("ro", 1)),
           EXCHANGE(MemoryReference("ro", 0), MemoryReference("ro", 1)))
    assert p.out() == 'AND ro[0] ro[1]\n' \
                      'IOR ro[0] ro[1]\n' \
                      'MOVE ro[0] ro[1]\n' \
                      'CONVERT ro[0] ro[1]\n' \
                      'IOR ro[0] ro[1]\n' \
                      'XOR ro[0] ro[1]\n' \
                      'ADD ro[0] ro[1]\n' \
                      'SUB ro[0] ro[1]\n'\
                      'MUL ro[0] ro[1]\n' \
                      'DIV ro[0] ro[1]\n' \
                      'EXCHANGE ro[0] ro[1]\n'