示例#1
0
def test_consumption_data_pulse(records_pulse,
        fuel_type, unit_name):
    with pytest.raises(ValueError):
        cd = ConsumptionData(records_pulse,
                fuel_type, unit_name, record_type="pulse")
    with pytest.raises(ValueError):
        cd = ConsumptionData(records_pulse,
                fuel_type, unit_name, record_type="pulse", pulse_value=0)
    with pytest.raises(ValueError):
        cd = ConsumptionData(records_pulse,
                fuel_type, unit_name, record_type="pulse", pulse_value=-1)
    cd = ConsumptionData(records_pulse,
            fuel_type, unit_name, record_type="pulse", pulse_value=1)
    assert cd.pulse_value == 1
    assert_allclose(cd.data.values,[np.nan,1,1,1,1],
            rtol=RTOL, atol=ATOL)
    assert cd.data.index[0] == datetime(2015,1,1)
    assert cd.data.index[4] == datetime(2015,2,1)
    assert cd.freq is None
    assert cd.freq_timedelta is None
    assert cd.pulse_value == 1

    generated_records = cd.records(record_type="pulse")
    sorted_records = sorted(records_pulse, key=lambda x: x["pulse"])
    assert len(generated_records) == len(sorted_records)
    for r1, r2 in zip(generated_records,sorted_records):
        assert r1 == r2
示例#2
0
def test_consumption_data_arbitrary_end(records_arbitrary_end, fuel_type,
                                        unit_name, record_type_arbitrary_end):
    cd = ConsumptionData(records_arbitrary_end,
                         fuel_type,
                         unit_name,
                         record_type=record_type_arbitrary_end)
    assert_allclose(cd.data.values, [0, 0, 0, 1, 0, np.nan],
                    rtol=RTOL,
                    atol=ATOL)
    assert cd.data.index[0] == datetime(2014, 2, 2)
    assert cd.data.index[5] == datetime(2015, 2, 1)
    assert cd.freq is None
    assert cd.freq_timedelta is None
    assert cd.pulse_value is None

    generated_records = cd.records(record_type=record_type_arbitrary_end)
    assert len(generated_records) == 6
    assert generated_records[0] == {
        "end": datetime(2014, 2, 2),
        "value": np.nan,
        "estimated": False
    }
    assert generated_records[5] == {
        "end": datetime(2015, 2, 1),
        "value": 0,
        "estimated": False
    }
示例#3
0
def test_consumption_data_pulse(records_pulse,
        fuel_type, unit_name):
    with pytest.raises(ValueError):
        cd = ConsumptionData(records_pulse,
                fuel_type, unit_name, record_type="pulse")
    with pytest.raises(ValueError):
        cd = ConsumptionData(records_pulse,
                fuel_type, unit_name, record_type="pulse", pulse_value=0)
    with pytest.raises(ValueError):
        cd = ConsumptionData(records_pulse,
                fuel_type, unit_name, record_type="pulse", pulse_value=-1)
    cd = ConsumptionData(records_pulse,
            fuel_type, unit_name, record_type="pulse", pulse_value=1)
    assert cd.pulse_value == 1
    assert_allclose(cd.data.values,[np.nan,1,1,1,1],
            rtol=RTOL, atol=ATOL)
    assert cd.data.index[0] == datetime(2015,1,1)
    assert cd.data.index[4] == datetime(2015,2,1)
    assert cd.freq is None
    assert cd.freq_timedelta is None
    assert cd.pulse_value == 1

    generated_records = cd.records(record_type="pulse")
    sorted_records = sorted(records_pulse, key=lambda x: x["pulse"])
    assert len(generated_records) == len(sorted_records)
    for r1, r2 in zip(generated_records,sorted_records):
        assert r1 == r2
示例#4
0
def test_consumption_data_arbitrary_end(records_arbitrary_end,
        fuel_type, unit_name, record_type_arbitrary_end):
    cd = ConsumptionData(records_arbitrary_end,
            fuel_type, unit_name, record_type=record_type_arbitrary_end)
    assert_allclose(cd.data.values,[0,0,0,1,0,np.nan],
            rtol=RTOL, atol=ATOL)
    assert cd.data.index[0] == datetime(2014,2,2)
    assert cd.data.index[5] == datetime(2015,2,1)
    assert cd.freq is None
    assert cd.freq_timedelta is None
    assert cd.pulse_value is None

    generated_records = cd.records(record_type=record_type_arbitrary_end)
    assert len(generated_records) == 6
    assert generated_records[0] == {"end": datetime(2014,2,2),"value": np.nan, "estimated": False}
    assert generated_records[5] == {"end": datetime(2015,2,1),"value":0, "estimated": False}
示例#5
0
def test_consumption_data_arbitrary_start(records_arbitrary_start,
        fuel_type, unit_name, record_type_arbitrary_start):
    cd = ConsumptionData(records_arbitrary_start,
            fuel_type, unit_name, record_type=record_type_arbitrary_start)
    assert_allclose(cd.data.values,[0,0,0,1,np.nan],
            rtol=RTOL, atol=ATOL)
    assert cd.data.index[0] == datetime(2015,1,1)
    assert cd.data.index[4] == datetime(2015,2,1)
    assert cd.freq is None
    assert cd.freq_timedelta is None
    assert cd.pulse_value is None

    generated_records = cd.records(record_type=record_type_arbitrary_start)
    assert len(generated_records) == 5
    assert generated_records[0] == {"start": datetime(2015,1,1), "value": 0, "estimated": False}
    assert generated_records[4]["start"] == datetime(2015,2,1)
    assert pd.isnull(generated_records[4]["value"])
    assert len(generated_records[4].keys()) == 3
示例#6
0
def test_consumption_data_arbitrary_start(records_arbitrary_start,
        fuel_type, unit_name, record_type_arbitrary_start):
    cd = ConsumptionData(records_arbitrary_start,
            fuel_type, unit_name, record_type=record_type_arbitrary_start)
    assert_allclose(cd.data.values,[0,0,0,1,np.nan],
            rtol=RTOL, atol=ATOL)
    assert cd.data.index[0] == datetime(2015,1,1)
    assert cd.data.index[4] == datetime(2015,2,1)
    assert cd.freq is None
    assert cd.freq_timedelta is None
    assert cd.pulse_value is None

    generated_records = cd.records(record_type=record_type_arbitrary_start)
    assert len(generated_records) == 5
    assert generated_records[0] == {"start": datetime(2015,1,1), "value": 0, "estimated": False}
    assert generated_records[4]["start"] == datetime(2015,2,1)
    assert pd.isnull(generated_records[4]["value"])
    assert len(generated_records[4].keys()) == 3