示例#1
0
def test_properties():

    temp = PUSO({('0', '0'): 1, ('0', 1): 2})
    assert temp.offset == 1

    d = PUSO()
    d[(0, )] += 1
    d[(1, )] += 2
    assert d == d.to_quso() == {(0, ): 1, (1, ): 2}
    assert d.mapping == d.reverse_mapping == {0: 0, 1: 1}

    d.set_mapping({1: 0, 0: 1})
    assert d.to_quso() == {(1, ): 1, (0, ): 2}
    assert d.mapping == d.reverse_mapping == {0: 1, 1: 0}

    # an old bug
    d = PUSO()
    d.set_mapping({0: 0})
    d[(0, )] += 1
    assert d.num_binary_variables == 1
    assert d.variables == {0}
示例#2
0
def test_puso_degree_reduction_lam():

    puso = PUSO({
        ('x0', 'x1'): -1,
        ('x1', ): 1,
        ('x1', 'x2'): -1,
        ('x2', ): 1,
        ('x3', 'x2'): -1,
        ('x3', ): 1,
        ('x4', 'x3'): -1,
        ('x4', ): 1,
    })**2

    # just make sure it runs
    puso.to_qubo(lam=4)
    puso.to_qubo(lam=lambda v: v)
    puso.to_qubo(lam=Symbol('lam'))
    puso.to_qubo(lam=lambda v: v * Symbol('lam'))
    puso.to_quso(lam=4)
    puso.to_quso(lam=lambda v: v)
    puso.to_quso(lam=Symbol('lam'))
    puso.to_quso(lam=lambda v: v * Symbol('lam'))