11from contextlib import nullcontext
22
33import numpy as np
4+ import pandas as pd
45import pytest
56from pytest import mark
67
7- from harp .io import MessageType , format , parse , read
8+ from harp .io import REFERENCE_EPOCH , MessageType , format , parse , read
89from tests .params import DataFileParam
910
1011testdata = [
3031 DataFileParam (path = "data/write_0.bin" , expected_address = 0 , expected_rows = 4 ),
3132 DataFileParam (path = "data/write_0.bin" , expected_address = 0 , expected_rows = 4 , keep_type = True ),
3233 DataFileParam (path = "data/device_0.bin" , expected_rows = 300 , repeat_data = 300 ),
34+ DataFileParam (path = "data/device_0.bin" , expected_rows = 1 , epoch = REFERENCE_EPOCH ),
35+ DataFileParam (path = "data/empty_0.bin" , expected_rows = 0 , epoch = REFERENCE_EPOCH ),
36+ DataFileParam (path = "data/empty_0.bin" , expected_rows = 0 ),
3337]
3438
3539
@@ -46,6 +50,7 @@ def test_read(dataFile: DataFileParam):
4650 address = dataFile .expected_address ,
4751 dtype = dataFile .expected_dtype ,
4852 length = dataFile .expected_length ,
53+ epoch = dataFile .epoch ,
4954 keep_type = dataFile .keep_type ,
5055 )
5156 else :
@@ -54,9 +59,11 @@ def test_read(dataFile: DataFileParam):
5459 address = dataFile .expected_address ,
5560 dtype = dataFile .expected_dtype ,
5661 length = dataFile .expected_length ,
62+ epoch = dataFile .epoch ,
5763 keep_type = dataFile .keep_type ,
5864 )
5965 assert len (data ) == dataFile .expected_rows
66+ assert isinstance (data .index , pd .DatetimeIndex if dataFile .epoch else pd .Index )
6067 if dataFile .keep_type :
6168 assert MessageType .__name__ in data .columns and data [MessageType .__name__ ].dtype == "category"
6269
0 commit comments