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}
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'))