def test_port_copy(): m = ConcreteModel() m.b1 = Block() m.b2 = Block() m.b1.x = Var(initialize=3) m.b1.y = Var([0, 1], initialize={0: 4, 1: 5}) m.b1.z = Var([0, 1], ["A", "B"], initialize={ (0, "A"): 6, (0, "B"): 7, (1, "A"): 8, (1, "B"): 9 }) m.b2.x = Var(initialize=1) m.b2.y = Var([0, 1], initialize=1) m.b2.z = Var([0, 1], ["A", "B"], initialize=1) m.b1.port = Port() m.b2.port = Port() m.b1.port.add(m.b1.x, "x") m.b1.port.add(m.b1.y, "y") m.b1.port.add(m.b1.z, "z") m.b2.port.add(m.b2.x, "x") m.b2.port.add(m.b2.y, "y") m.b2.port.add(m.b2.z, "z") copy_port_values(m.b2.port, m.b1.port) assert (m.b2.x == 3) assert (m.b2.y[0] == 4) assert (m.b2.y[1] == 5) assert (m.b2.z[0, "A"] == 6) assert (m.b2.z[0, "B"] == 7) assert (m.b2.z[1, "A"] == 8) assert (m.b2.z[1, "B"] == 9)
def test_port_copy(): """DEPRECATED function test""" m = ConcreteModel() m.b1 = Block() m.b2 = Block() m.b1.x = Var(initialize=3) m.b1.y = Var([0, 1], initialize={0: 4, 1: 5}) m.b1.z = Var([0, 1], ["A", "B"], initialize={ (0, "A"): 6, (0, "B"): 7, (1, "A"): 8, (1, "B"): 9 }) m.b2.x = Var(initialize=1) m.b2.y = Var([0, 1], initialize=1) m.b2.z = Var([0, 1], ["A", "B"], initialize=1) m.b1.port = Port() m.b2.port = Port() m.b1.port.add(m.b1.x, "x") m.b1.port.add(m.b1.y, "y") m.b1.port.add(m.b1.z, "z") m.b2.port.add(m.b2.x, "x") m.b2.port.add(m.b2.y, "y") m.b2.port.add(m.b2.z, "z") def assert_copied_right(): assert (m.b2.x.value == 3) assert (m.b2.y[0].value == 4) assert (m.b2.y[1].value == 5) assert (m.b2.z[0, "A"].value == 6) assert (m.b2.z[0, "B"].value == 7) assert (m.b2.z[1, "A"].value == 8) assert (m.b2.z[1, "B"].value == 9) def reset(): m.b2.x = 0 m.b2.y[0] = 0 m.b2.y[1] = 0 m.b2.z[0, "A"] = 0 m.b2.z[0, "B"] = 0 m.b2.z[1, "A"] = 0 m.b2.z[1, "B"] = 0 m.arc = Arc(source=m.b1.port, dest=m.b2.port) copy_port_values(m.b2.port, m.b1.port) assert_copied_right() reset() copy_port_values(source=m.b1.port, destination=m.b2.port) assert_copied_right() reset() copy_port_values(m.arc) assert_copied_right() reset() copy_port_values(arc=m.arc) assert_copied_right() reset() with pytest.raises(AttributeError): copy_port_values(arc=m.b1.port) with pytest.raises(RuntimeError): copy_port_values(source=m.b1.port, destination=m.b2.port, arc=m.arc) with pytest.raises(RuntimeError): copy_port_values(source=m.b1.port, arc=m.arc) with pytest.raises(AttributeError): copy_port_values(source=m.b1.port, destination=m.arc)