예제 #1
0
def test_create_from_dict():
    for dictionary in dicts():
        series = TimeSeries.from_dict(dictionary)
        assert len(series) == len(dictionary)
        for el in dictionary:
            assert series[decimal.Decimal(el)] == dictionary[el]
            assert series[el] == dictionary[el]

        assert series.first == dictionary[min(dictionary)]
        assert series.last == dictionary[max(dictionary)]

        assert series._first == min(dictionary)
        assert series._last == max(dictionary)
예제 #2
0
from firecrest.misc.time_storage import PiecewiseLinearBasis, TimeSeries
import matplotlib.pyplot as plt
import numpy as np
from decimal import Decimal

timer = {"dt": Decimal("0.01"), "T": Decimal("1.2")}
func = TimeSeries.from_dict({
    Decimal(k) * Decimal(timer["dt"]): 10 + 40.0 * (k * float(timer["dt"])) *
    (k * float(timer["dt"]) - 0.5) * (k * float(timer["dt"]) - 1)
    for k in range(int(timer["T"] / Decimal(timer["dt"])) + 1)
})

x = np.array([float(key) for key in func.keys()])
y = np.array([val for val in func.values()])

basis = PiecewiseLinearBasis(x, 0.4)
plt.plot(x, y, "k")
plt.plot(x, basis.project(y), "--", color="k")
for b in basis.basis:
    plt.plot(x, b, "-.", color="gray")

plt.grid(True)
plt.show()
예제 #3
0
def test_multiply():
    series, mid_point = numeric_series()
    multiplied = series * series
    assert len(multiplied) == len(series)
    assert multiplied == TimeSeries.from_dict({i: i ** 2 for i in series})
    assert mid_point * series == mid_point * mid_point
예제 #4
0
def numeric_series():
    return [
        TimeSeries.from_dict({i: i for i in range(10)}),
        TimeSeries.from_dict({i + 0.5: i + 0.5 for i in range(9)}),
    ]