import matplotlib.pyplot as plt
from resistics.testing import time_data_random
from resistics.decimate import DecimationSetup, Decimator
time_data = time_data_random(fs=256, n_samples=10_000)
dec_params = DecimationSetup(n_levels=4, per_freq=4).run(time_data.metadata.fs)
dec_data = Decimator().run(dec_params, time_data)
for level_metadata in dec_data.metadata.levels_metadata:
    level_metadata.summary()
# Expected:
## {
##     'fs': 256.0,
##     'n_samples': 10000,
##     'first_time': '2020-01-01 00:00:00.000000_000000_000000_000000',
##     'last_time': '2020-01-01 00:00:39.058593_750000_000000_000000'
## }
## {
##     'fs': 64.0,
##     'n_samples': 2500,
##     'first_time': '2020-01-01 00:00:00.000000_000000_000000_000000',
##     'last_time': '2020-01-01 00:00:39.046875_000000_000000_000000'
## }
## {
##     'fs': 8.0,
##     'n_samples': 313,
##     'first_time': '2020-01-01 00:00:00.000000_000000_000000_000000',
##     'last_time': '2020-01-01 00:00:39.000000_000000_000000_000000'
## }
for ilevel in range(0, dec_data.metadata.n_levels):
    data = dec_data.get_level(ilevel)
    plt.plot(dec_data.get_timestamps(ilevel), data[0], label=f"Level{ilevel}") # doctest: +SKIP
plt.legend(loc=3) # doctest: +SKIP
plt.tight_layout() # doctest: +SKIP
plt.show() # doctest: +SKIP
