def test_fuse_buses(): net = pp.create_empty_network() b1 = pp.create_bus(net, vn_kv=1, name="b1") b2 = pp.create_bus(net, vn_kv=1.5, name="b2") b3 = pp.create_bus(net, vn_kv=2, name="b2") line1 = pp.create_line(net, b2, b1, length_km=1, std_type="NAYY 4x50 SE") line2 = pp.create_line(net, b2, b3, length_km=1, std_type="NAYY 4x50 SE") sw1 = pp.create_switch(net, b2, line1, et="l") sw2 = pp.create_switch(net, b1, b2, et="b") pp.create_load(net, b1, p_mw=0.006) pp.create_load(net, b2, p_mw=0.005) pp.create_load(net, b3, p_mw=0.005) pp.create_measurement(net, "v", "bus", 1.2, 0.03, b2) # --- drop = True net1 = copy.deepcopy(net) tb.fuse_buses(net1, b1, b2, drop=True) # assertion: elements connected to b2 are given to b1 instead assert line1 not in net1.line.index assert line2 in net1.line.index assert sw1 not in net1.switch.index assert sw2 not in net1.switch.index assert list(net1["load"]["bus"].values) == [b1, b1, b3] assert net1["measurement"]["element"].at[0] == b1 # assertion: b2 not in net.bus table if drop=True assert b2 not in net1.bus.index assert b3 in net1.bus.index # --- drop = False net2 = copy.deepcopy(net) tb.fuse_buses(net2, b1, b2, drop=False) # assertion: elements connected to b2 are given to b1 instead assert net2["line"]["from_bus"].at[0] == b1 assert line2 in net2.line.index assert net2["switch"]["bus"].at[0] == b1 assert net2["load"]["bus"].tolist() == [b1, b1, b3] assert net2["measurement"]["element"].at[0] == b1 # assertion: b2 remains in net.bus table assert b2 in net2.bus.index assert b3 in net2.bus.index
def test_fuse_buses(): net = pp.create_empty_network() b1 = pp.create_bus(net, vn_kv=1, name="b1") b2 = pp.create_bus(net, vn_kv=1.5, name="b2") line1 = pp.create_line(net, b2, b1, length_km=1, std_type="NAYY 4x50 SE") sw1 = pp.create_switch(net, b2, line1, et="l") sw2 = pp.create_switch(net, b1, b2, et="b") load1 = pp.create_load(net, b1, p_kw=6) load2 = pp.create_load(net, b2, p_kw=5) tb.fuse_buses(net, b1, b2, drop=True) # assertion: elements connected to b2 are given to b1 instead assert net["line"]["from_bus"].loc[0] == b1 assert net["switch"]["bus"].loc[0] == b1 assert net["load"]["bus"].loc[1] == b1 # assertion: b2 not in net.bus table if drop=True assert b2 not in net.bus.index