def test_recent_reading_meter(): recent_consumption = Consumption( 0, "kWh", "electricity", datetime.now(pytz.utc) - timedelta(days=390), datetime.now(pytz.utc) - timedelta(days=360), ) old_consumption = Consumption( 0, "kWh", "electricity", datetime(2012, 1, 1, tzinfo=pytz.utc), datetime(2012, 2, 1, tzinfo=pytz.utc) ) no_ch = ConsumptionHistory([]) old_ch = ConsumptionHistory([old_consumption]) recent_ch = ConsumptionHistory([recent_consumption]) mixed_ch = ConsumptionHistory([recent_consumption, old_consumption]) meter = RecentReadingMeter(n_days=365) assert not meter.evaluate(consumption_history=no_ch, fuel_type="electricity")["recent_reading"] assert not meter.evaluate(consumption_history=old_ch, fuel_type="electricity")["recent_reading"] assert meter.evaluate(consumption_history=recent_ch, fuel_type="electricity")["recent_reading"] assert meter.evaluate(consumption_history=mixed_ch, fuel_type="electricity")["recent_reading"] assert not meter.evaluate(consumption_history=mixed_ch, fuel_type="natural_gas")["recent_reading"] assert not meter.evaluate( consumption_history=mixed_ch, fuel_type="electricity", since_date=datetime.now(pytz.utc) + timedelta(days=1000) )["recent_reading"] assert not meter.evaluate( consumption_history=mixed_ch, fuel_type="natural_gas", since_date=datetime.now(pytz.utc) + timedelta(days=1000) )["recent_reading"]
def test_recent_reading_meter(): recent_record = {"start": datetime.now(pytz.utc) - timedelta(days=390), "end": datetime.now(pytz.utc) - timedelta(days=360), "value": 0} old_record = {"start": datetime(2012,1,1,tzinfo=pytz.utc), "end": datetime(2012,2,1,tzinfo=pytz.utc), "value": 0} no_cd = ConsumptionData([], "electricity", "kWh", record_type="arbitrary") old_cd = ConsumptionData([old_record], "electricity", "kWh", record_type="arbitrary") recent_cd = ConsumptionData([recent_record], "electricity", "kWh", record_type="arbitrary") mixed_cd = ConsumptionData([recent_record,old_record], "electricity", "kWh", record_type="arbitrary") meter = RecentReadingMeter() assert meter.evaluate_raw(consumption_data=no_cd)["n_days"] == np.inf assert meter.evaluate_raw(consumption_data=old_cd)["n_days"] == 31 assert meter.evaluate_raw(consumption_data=recent_cd)["n_days"] == 30 assert meter.evaluate_raw(consumption_data=mixed_cd)["n_days"] == 30
def test_recent_reading_meter(): recent_record = { "start": datetime.now(pytz.utc) - timedelta(days=390), "end": datetime.now(pytz.utc) - timedelta(days=360), "value": 0 } old_record = { "start": datetime(2012, 1, 1, tzinfo=pytz.utc), "end": datetime(2012, 2, 1, tzinfo=pytz.utc), "value": 0 } no_cd = ConsumptionData([], "electricity", "kWh", record_type="arbitrary") old_cd = ConsumptionData([old_record], "electricity", "kWh", record_type="arbitrary") recent_cd = ConsumptionData([recent_record], "electricity", "kWh", record_type="arbitrary") mixed_cd = ConsumptionData([recent_record, old_record], "electricity", "kWh", record_type="arbitrary") meter = RecentReadingMeter() assert meter.evaluate_raw(consumption_data=no_cd)["n_days"] == np.inf assert meter.evaluate_raw(consumption_data=old_cd)["n_days"] == 31 assert meter.evaluate_raw(consumption_data=recent_cd)["n_days"] == 30 assert meter.evaluate_raw(consumption_data=mixed_cd)["n_days"] == 30