Exemplo n.º 1
0
def test_logical_model_variables_append(initial_shape, additional_shape, expected_shape):
    model = LogicalModel(mtype="ising")
    model.variables("x", shape=initial_shape)
    assert "x" in model.get_variables()
    assert model.get_variables_by_name("x").shape == initial_shape

    model.append("x", shape=additional_shape)
    assert model.get_variables_by_name("x").shape == expected_shape
Exemplo n.º 2
0
def test_logical_model_variables(shape):
    model = LogicalModel(mtype="ising")
    x = model.variables("x", shape=shape)

    assert len(model.get_variables()) == 1
    assert "x" in model.get_variables()
    assert x.shape == shape
    assert isinstance(x, pyqubo.Array)
    assert model.get_variables_by_name("x") == x
    assert id(model.get_variables_by_name("x")) == id(x)
    assert id(model.get_variables()["x"]) == id(x)
Exemplo n.º 3
0
def test_logical_model_variables_append_without_initialize(shape):
    model = LogicalModel(mtype="ising")
    # The following operation will be successful with a UserWarning.
    with pytest.warns(UserWarning):
        model.append("x", shape=shape)
    assert "x" in model.get_variables()
    assert model.get_variables_by_name("x").shape == shape
Exemplo n.º 4
0
def test_logical_model_variables_from_pyqubo(vartype, mtype):
    x = pyqubo.Array.create("x", shape=(2, 3), vartype=vartype)
    model = LogicalModel(mtype=mtype)
    x_when_applied = model.variables(x)
    x_from_model = model.get_variables_by_name("x")
    assert id(x) == id(x_when_applied)
    assert x == x_when_applied
    assert id(x) == id(x_from_model)
    assert x == x_from_model
Exemplo n.º 5
0
def test_logical_model_multi_variables(shape):
    model = LogicalModel(mtype="qubo")
    x = model.variables("x", shape)
    assert len(model.get_variables()) == 1
    assert "x" in model.get_variables()
    assert "y" not in model.get_variables()
    assert model.get_variables_by_name("x") == x
    assert id(model.get_variables_by_name("x")) == id(x)
    with pytest.raises(KeyError):
        model.get_variables_by_name("y")

    y = model.variables("y", shape=shape)
    assert len(model.get_variables()) == 2
    assert "x" in model.get_variables()
    assert "y" in model.get_variables()
    assert y.shape == shape
    assert isinstance(y, pyqubo.Array)
    assert model.get_variables_by_name("y") == y
    assert id(model.get_variables()["y"]) == id(y)