Passed
Pull Request — dev (#1183)
by Patrik
04:02
created

test_invelid_invest_time()   A

Complexity

Conditions 2

Size

Total Lines 12
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 11
dl 0
loc 12
rs 9.85
c 0
b 0
f 0
cc 2
nop 0
1
"""Tests of the _energy_system module.
2
3
This file is part of project oemof (github.com/oemof/oemof). It's copyrighted
4
by the contributors recorded in the version control history of the file,
5
available from its original location oemof/tests/test_components.py
6
7
SPDX-License-Identifier: MIT
8
"""
9
10
import pandas as pd
11
import pytest
12
13
from oemof.solph import EnergySystem
14
15
16
def test_default_invest_times():
17
    start_time = pd.Timestamp("2012-01-01 00:00")
18
    timeindex = pd.date_range(start=start_time, periods=8760, freq="h")
19
    es = EnergySystem(
20
        timeindex=timeindex,
21
        infer_last_interval=True,
22
    )
23
    assert len(es.investment_times) == 1
24
    assert es.investment_times[0] == start_time
25
26
27
def test_custom_invest_times():
28
    start_time = pd.Timestamp("2012-01-01 00:00")
29
    time2 = pd.Timestamp("2012-01-11 00:00")
30
31
    timeindex = pd.date_range(start=start_time, periods=8760, freq="h")
32
33
    investment_times = [start_time, time2]
34
    es = EnergySystem(
35
        timeindex=timeindex,
36
        investment_times=investment_times,
37
        infer_last_interval=True,
38
    )
39
    assert len(es.investment_times) == 2
40
    assert es.investment_times[0] == start_time
41
    assert es.investment_times[1] == time2
42
43
    # start time is added automatically
44
    es = EnergySystem(
45
        timeindex=timeindex,
46
        investment_times=[time2],
47
        infer_last_interval=True,
48
    )
49
    assert len(es.investment_times) == 2
50
    assert es.investment_times[0] == start_time
51
    assert es.investment_times[1] == time2
52
53
    # invest times are sorted automatically
54
    investment_times = [time2, start_time]
55
    es = EnergySystem(
56
        timeindex=timeindex,
57
        investment_times=investment_times,
58
        infer_last_interval=True,
59
    )
60
    assert len(es.investment_times) == 2
61
    assert es.investment_times[0] == start_time
62
    assert es.investment_times[1] == time2
63
64
65
@pytest.mark.skip(reason="Will fail in 'model'.")
66
def test_invelid_invest_time():
67
    start_time = pd.Timestamp("2012-01-01 00:00")
68
    time3 = pd.Timestamp("2012-01-11 00:15")
69
70
    timeindex = pd.date_range(start=start_time, periods=8760, freq="h")
71
    investment_times = [start_time, time3]
72
    with pytest.raises(KeyError, match="2012-01-11 00:15"):
73
        _ = EnergySystem(
74
            timeindex=timeindex,
75
            investment_times=investment_times,
76
            infer_last_interval=True,
77
        )
78