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