Coverage for hiperta_stream/tests/test_T_REC_020_T_REC_030_dl1_to_dl2.py: 100%

22 statements  

« prev     ^ index     » next       coverage.py v7.4.3, created at 2024-07-16 10:16 +0000

1import subprocess 

2from pathlib import Path 

3import numpy as np 

4import tables 

5 

6 

7def compare_hdf5(file1_pathname, file2_pathname): 

8 

9 with tables.open_file(file1_pathname, 'r') as ref_f, \ 

10 tables.open_file(file2_pathname, 'r') as output_f: 

11 for ref_node in ref_f.walk_nodes(): 

12 assert ref_node._v_pathname in output_f 

13 if isinstance(ref_node, tables.Table): 

14 output_node = ref_f.get_node(ref_node._v_pathname) 

15 for name in ref_node.colnames: 

16 ref_values = ref_node.cols._f_col(name) 

17 output_values = output_node.cols._f_col(name) 

18 if np.issubdtype(ref_values.dtype, np.number): 

19 assert np.allclose(ref_values[:], output_values[:], equal_nan=True) 

20 else: 

21 assert all([ref_values[idx] == output_values[idx] for idx in range(len(ref_values))]) 

22 

23 

24def test_T_REC_020_dl1_to_dl2(request): 

25 

26 current_dir = Path(request.fspath).resolve().parent 

27 (current_dir / "dl2").mkdir(exist_ok=True) 

28 subprocess.run( 

29 [ 

30 "lstchain_dl1_to_dl2", 

31 "-f", 

32 current_dir / "resources/dl1_LST_Run06892_gammaness_cut_70_sample_500.h5", 

33 "-o", 

34 current_dir / "dl2", 

35 "--path-models", 

36 current_dir / "resources/trained_models", 

37 "--config", 

38 current_dir / "resources/lstchain_configuration.json" 

39 ] 

40 ) 

41 

42 assert (current_dir / "dl2/dl2_LST_Run06892_gammaness_cut_70_sample_500.h5").exists() 

43 

44 compare_hdf5( 

45 str(current_dir / "resources/dl2_LST_Run06892_gammaness_cut_70_sample_500.h5"), 

46 str(current_dir / "dl2/dl2_LST_Run06892_gammaness_cut_70_sample_500.h5") 

47 )