You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
38 lines
1.3 KiB
38 lines
1.3 KiB
import unittest |
|
from utils import get_data_chunks |
|
import pandas as pd |
|
|
|
|
|
class TestUtils(unittest.TestCase): |
|
|
|
def test_chunks_generator(self): |
|
window_size = 1 |
|
chunk_window_size_factor = 4 |
|
|
|
cases = [ |
|
(list(range(8)), [[0,1,2,3], [2,3,4,5], [4,5,6,7]]), |
|
([], [[]]), |
|
(list(range(1)), [[0]]), |
|
(list(range(4)), [[0,1,2,3]]), |
|
(list(range(9)), [[0,1,2,3], [2,3,4,5], [4,5,6,7], [6,7,8]]) |
|
] |
|
|
|
for data, expected_chunks in cases: |
|
data = [(x,x) for x in data] |
|
data = pd.DataFrame(data, columns=['timestamp', 'value']) |
|
|
|
df_expected_chunks = [] |
|
for chunk in expected_chunks: |
|
chunk = [(x,x) for x in chunk] |
|
df_expected_chunks.append(chunk) |
|
df_expected_chunks = [pd.DataFrame(chunk, columns=['timestamp', 'value']) for chunk in df_expected_chunks] |
|
chunks = tuple(get_data_chunks(data, window_size, window_size * chunk_window_size_factor)) |
|
df_expected_chunks = [df.reset_index() for df in df_expected_chunks] |
|
|
|
zipped = zip(chunks, df_expected_chunks) |
|
map(lambda a,b: self.assertTrue(a.equals(b)), zipped) |
|
|
|
|
|
|
|
if __name__ == '__main__': |
|
unittest.main()
|
|
|