Coverage for tests / test_activity_enmo.py: 100%

19 statements  

« prev     ^ index     » next       coverage.py v7.13.4, created at 2026-02-26 21:14 +0000

1import os 

2import pytest 

3from datetime import datetime 

4 

5from numpy import arange 

6from pandas import read_csv 

7from physiodsp.sensors.imu.accelerometer import AccelerometerData 

8from physiodsp.activity.enmo import ENMO 

9 

10 

11test_folder_path = os.path.dirname(os.path.realpath(__file__)) 

12 

13 

14@pytest.mark.parametrize( 

15 "n_samples,fs", 

16 [ 

17 (128, 32), 

18 (256, 64), 

19 (256, 32) 

20 ] 

21) 

22def test_activity_enmo(n_samples, fs): 

23 

24 df = read_csv(os.path.join(test_folder_path, "accelerometer.csv"), usecols=["x", "y", "z"]) 

25 

26 timestamp_start = datetime.now().timestamp() 

27 timestamps = timestamp_start + arange(start=0, step=1/fs, stop=int(n_samples/fs)) 

28 

29 accelerometer = AccelerometerData( 

30 timestamps=timestamps, 

31 x=df.x.values[:n_samples], 

32 y=df.y.values[:n_samples], 

33 z=df.z.values[:n_samples], 

34 fs=fs 

35 ) 

36 

37 enmo_processor = ENMO().run(accelerometer=accelerometer).aggregate() 

38 

39 enmo_1s = enmo_processor.biomarker 

40 enmo_60s = enmo_processor.biomarker_agg 

41 

42 assert len(enmo_1s) == int(n_samples / fs) - 1 

43 assert len(enmo_60s) == 1