Coverage for Users/jsd/Library/CloudStorage/OneDrive-SimonFraserUniversity(1sfu)/projects/thztools/tests/test_pytest.py: 100%

32 statements  

« prev     ^ index     » next       coverage.py v7.2.7, created at 2023-06-12 16:26 -0700

1import numpy as np 

2import pytest 

3 

4from thztools.thztools import ( 

5 # costfunlsq, 

6 fftfreq, 

7 noisevar, 

8 # shiftmtx, 

9 # tdnll, 

10 # tdnoisefit, 

11 # tdtf, 

12 thzgen, 

13) 

14 

15global fname 

16 

17 

18# ================================================================== 

19@pytest.fixture() 

20def arrangef(): 

21 dt = 0.5 

22 f_odd_true = np.array([0.0, 0.4, 0.8, -0.8, -0.4]) 

23 f_even_true = np.array([0.0, 0.25, 0.5, 0.75, 1.0, -0.75, -0.5, -0.25]) 

24 return f_odd_true, f_even_true, dt 

25 

26 

27@pytest.fixture() 

28def act(arrangef): 

29 f_odd = fftfreq(len(arrangef[0]), arrangef[2]) 

30 f_even = fftfreq(len(arrangef[1]), arrangef[2]) 

31 return f_odd, f_even 

32 

33 

34def test_fftfreq(arrangef, act): 

35 assert arrangef[0].all() == act[0].all() 

36 assert arrangef[1].all() == act[1].all() 

37 

38 

39# ============================================================================ 

40# test noisevar 

41@pytest.fixture() 

42def arrange(): 

43 sigma_alpha = (1e-4,) # Additive noise amplitude [relative to peak] 

44 sigma_beta = (0.01,) # Multiplicative noise amplitude [-] 

45 sigma_tau = (1e-3,) # Time base noise amplitude [ps] 

46 np.array([sigma_alpha, sigma_beta, sigma_tau]) 

47 

48 y, t = thzgen(n=20, ts=0.05, t0=2.5) 

49 return y, t 

50 

51 

52@pytest.fixture() 

53def vmu(arrange): 

54 vmu = noisevar(arrange[0], arrange[1], 2.5) 

55 return vmu 

56 

57 

58def test_noisevar(vmu): 

59 vmu_true = np.array( 

60 [ 

61 4.36242890663103e-6, 

62 1.18964333287937e-5, 

63 1.95293889001674e-5, 

64 2.55422643627414e-5, 

65 2.93161838588929e-5, 

66 3.09039003252619e-5, 

67 3.06822632940482e-5, 

68 2.90574034275636e-5, 

69 2.57635783418052e-5, 

70 1.82432209755600e-5, 

71 4.91505996620606e-6, 

72 2.38368994086406e-6, 

73 3.48676583001915e-5, 

74 8.17878674468416e-5, 

75 0.000100010020280983, 

76 8.17871774183767e-5, 

77 4.81773804791099e-05, 

78 1.93749781259091e-5, 

79 3.62858609090918e-6, 

80 1.05084791456656e-07, 

81 ] 

82 ) 

83 

84 assert vmu.all() == vmu_true.all()