def test_demand_is_scaled(base_grid, raw_demand): base_demand = raw_demand[base_grid.id2zone.keys()] n_zone = param["n_zone_to_scale"] ct = ChangeTable(base_grid) ct.scale_demand( zone_id={ z: f for z, f in zip( np.random.choice([i for i in base_grid.zone2id.values()], size=n_zone, replace=False), 2 * np.random.random(size=n_zone), ) }) tg = TransformGrid(base_grid, ct.ct) transformed_grid = tg.get_grid() empty_scenario_info = { } # scenario_info not needed since profile_input is mocked tp = TransformProfile(empty_scenario_info, transformed_grid, ct.ct) transformed_profile = tp.get_profile("demand") assert not base_demand.equals(transformed_profile) scaled_zone = list(ct.ct["demand"]["zone_id"].keys()) unscaled_zone = set(base_grid.id2zone.keys()) - set(scaled_zone) factor = list(ct.ct["demand"]["zone_id"].values()) assert transformed_profile[scaled_zone].equals( base_demand[scaled_zone].multiply(factor, axis=1)) if unscaled_zone: assert transformed_profile[list(unscaled_zone)].equals( base_demand[list(unscaled_zone)])
def test_demand_is_scaled(base_grid): input_data = InputData() demand_info = { "interconnect": "_".join(interconnect), "grid_model": "usa_tamu", "base_demand": param["demand"], } raw_demand = input_data.get_data(demand_info, "demand") base_demand = raw_demand[base_grid.id2zone.keys()] n_zone = param["n_zone_to_scale"] ct = ChangeTable(base_grid) ct.scale_demand( zone_id={ z: f for z, f in zip( np.random.choice( [i for i in base_grid.zone2id.values()], size=n_zone, replace=False ), 2 * np.random.random(size=n_zone), ) } ) tg = TransformGrid(base_grid, ct.ct) transformed_grid = tg.get_grid() tp = TransformProfile(demand_info, transformed_grid, ct.ct) transformed_profile = tp.get_profile("demand") assert not base_demand.equals(transformed_profile) scaled_zone = list(ct.ct["demand"]["zone_id"].keys()) unscaled_zone = set(base_grid.id2zone.keys()) - set(scaled_zone) factor = list(ct.ct["demand"]["zone_id"].values()) assert transformed_profile[scaled_zone].equals( base_demand[scaled_zone].multiply(factor, axis=1) ) if unscaled_zone: assert transformed_profile[unscaled_zone].equals(base_demand[unscaled_zone])