コード例 #1
0
 def Mock_LoadHoursStrategy(self, avg_power_W, hrs_per_day, hrs_of_day):
     strategy = LoadHoursStrategy(avg_power_W=avg_power_W,
                                  hrs_per_day=hrs_per_day,
                                  hrs_of_day=hrs_of_day)
     strategy.area = self.area_test()
     strategy.owner = self.area_test()
     strategy.event_activate()
     return strategy
コード例 #2
0
ファイル: test_strategy_load_hours.py プロジェクト: xg86/d3a
def test_use_market_maker_rate_parameter_is_respected(use_mmr, expected_rate):
    GlobalConfig.market_maker_rate = 9
    load = LoadHoursStrategy(200,
                             final_buying_rate=33,
                             use_market_maker_rate=use_mmr)
    load.area = FakeArea()
    load.event_activate()
    assert all(v == expected_rate for v in load.bid_update.final_rate.values())
コード例 #3
0
ファイル: test_strategy_load_hours.py プロジェクト: xg86/d3a
def test_load_hour_strategy_increases_rate_when_fit_to_limit_is_false():
    load = LoadHoursStrategy(avg_power_W=100,
                             initial_buying_rate=0,
                             final_buying_rate=30,
                             fit_to_limit=False,
                             energy_rate_increase_per_update=10,
                             update_interval=5)
    load.area = FakeArea()
    load.event_activate()
    assert all([
        rate == -10
        for rate in load.bid_update.energy_rate_change_per_update.values()
    ])
コード例 #4
0
def test_load_constructor_rejects_incorrect_rate_parameters():
    load = LoadHoursStrategy(avg_power_W=100,
                             initial_buying_rate=10,
                             final_buying_rate=5)
    load.area = FakeArea()
    load.owner = load.area
    with pytest.raises(D3ADeviceException):
        load.event_activate()
    with pytest.raises(D3ADeviceException):
        LoadHoursStrategy(avg_power_W=100,
                          fit_to_limit=True,
                          energy_rate_increase_per_update=1)
    with pytest.raises(D3ADeviceException):
        LoadHoursStrategy(avg_power_W=100,
                          fit_to_limit=False,
                          energy_rate_increase_per_update=-1)
コード例 #5
0
def test_load_hour_strategy_increases_rate_when_fit_to_limit_is_false(
        market_test1):
    load = LoadHoursStrategy(avg_power_W=100,
                             initial_buying_rate=0,
                             final_buying_rate=30,
                             fit_to_limit=False,
                             energy_rate_increase_per_update=10,
                             update_interval=5)
    load.area = FakeArea()
    load.owner = load.area
    load.event_activate()
    assert load.state._energy_requirement_Wh[TIME] == 25.0
    offer = Offer('id', now(), 1, (MIN_BUY_ENERGY / 500), 'A', market_test1)
    load._one_sided_market_event_tick(market_test1, offer)
    assert load.bid_update.get_updated_rate(TIME) == 0
    assert load.state._energy_requirement_Wh[TIME] == 25.0
    load.event_tick()
    assert load.bid_update.get_updated_rate(TIME) == 10
    load._one_sided_market_event_tick(market_test1, offer)
    assert load.state._energy_requirement_Wh[TIME] == 0
    assert all([
        rate == -10
        for rate in load.bid_update.energy_rate_change_per_update.values()
    ])
コード例 #6
0
def load_hours_strategy_test3(area_test1):
    load = LoadHoursStrategy(avg_power_W=100)
    load.area = area_test1
    load.owner = area_test1
    return load