Coverage for tests/probabilty/roc_test_data.py: 100%

12 statements  

« prev     ^ index     » next       coverage.py v7.3.2, created at 2024-02-28 12:51 +1100

1"""Data for ROC tests""" 

2import numpy as np 

3import xarray as xr 

4 

5FCST_2X3X2_WITH_NAN = xr.DataArray( 

6 [ 

7 [[0.4, np.nan, 0.2], [0.7, 0.4, 0.3], [0.2, 1, 0]], 

8 [[0.3, 0.8, 0.9], [0.1, 0.1, 0.1], [0.8, 0.2, 0.1]], 

9 ], 

10 coords=[ 

11 ("lead_day", [0, 1]), 

12 ("letter", ["a", "b", "c"]), 

13 ("pet", ["muffin", "balthazar", "morpheus"]), 

14 ], 

15) 

16FCST_2X3X2_WITH_NAN_MISALIGNED = xr.DataArray( 

17 [ 

18 [[0.4, np.nan, 0.2], [0.2, 1, 0], [0.7, 0.4, 0.3], [0.2, 1, 0]], 

19 [[0.3, 0.8, 0.9], [0.2, 1, 0], [0.1, 0.1, 0.1], [0.8, 0.2, 0.1]], 

20 ], 

21 coords=[ 

22 ("lead_day", [0, 1]), 

23 ("letter", ["a", "CAT", "b", "c"]), 

24 ("pet", ["muffin", "balthazar", "morpheus"]), 

25 ], 

26) 

27 

28DISCRETE_FCST_2X3X2_WITH_NAN = xr.DataArray( 

29 [ 

30 [ 

31 [[1, 1, 0], [np.nan, np.nan, np.nan], [1, 0, 0]], 

32 [[1, 1, 0], [1, 1, 0], [1, 1, 0]], 

33 [[1, 0, 0], [1, 1, 1], [1, 0, 0]], 

34 ], 

35 [ 

36 [[1, 1, 0], [1, 1, 0], [1, 1, 0]], 

37 [[1, 0, 0], [1, 0, 0], [1, 0, 0]], 

38 [[1, 1, 0], [1, 0, 0], [1, 0, 0]], 

39 ], 

40 ], 

41 coords=[ 

42 ("lead_day", [0, 1]), 

43 ("letter", ["a", "b", "c"]), 

44 ("pet", ["muffin", "balthazar", "morpheus"]), 

45 ("threshold", [0, 0.3, 1]), 

46 ], 

47) 

48OBS_3X3_WITH_NAN = xr.DataArray( 

49 [[1, 0, 0], [0, 1, np.nan], [0, 1, 1]], 

50 coords=[("letter", ["a", "b", "c"]), ("pet", ["muffin", "balthazar", "morpheus"])], 

51) 

52OBS_3X3_WITH_NAN_MISALIGNED = xr.DataArray( 

53 [[1, 0, 0, 1], [0, 1, np.nan, 0], [0, 1, 1, np.nan]], 

54 coords=[ 

55 ("letter", ["a", "b", "c"]), 

56 ("pet", ["muffin", "balthazar", "morpheus", "rick"]), 

57 ], 

58) 

59 

60EXP_ROC_LEADDAY = xr.Dataset( 

61 { 

62 "POD": xr.DataArray( 

63 [[1, 0.75, 0.25], [1, 0.25, 0]], 

64 coords=[("lead_day", [0, 1]), ("threshold", [0, 0.3, 1])], 

65 ), 

66 "POFD": xr.DataArray( 

67 [[1, 1 / 3, 0], [1, 0.75, 0]], 

68 coords=[("lead_day", [0, 1]), ("threshold", [0, 0.3, 1])], 

69 ), 

70 "AUC": xr.DataArray([0.75, 0.25], coords=[("lead_day", [0, 1])]), 

71 } 

72) 

73LEAD_DAY_WEIGHTS = xr.DataArray([1, 2], dims="lead_day", coords={"lead_day": [0, 1]}) 

74 

75EXP_ROC_MULTI_DIMS = xr.Dataset( 

76 { 

77 "POD": xr.DataArray( 

78 [ 

79 [[1.0, 1.0, 0.0], [1.0, 1.0, 0.0], [1.0, 0.5, 0.5]], 

80 [[1.0, 1.0, 0.0], [1.0, 0.0, 0.0], [1.0, 0.0, 0.0]], 

81 ], 

82 coords=[ 

83 ("lead_day", [0, 1]), 

84 ("letter", ["a", "b", "c"]), 

85 ("threshold", [0, 0.3, 1]), 

86 ], 

87 ), 

88 "POFD": xr.DataArray( 

89 [ 

90 [[1.0, 0.0, 0.0], [1.0, 1.0, 0.0], [1.0, 0.0, 0.0]], 

91 [[1.0, 1.0, 0.0], [1.0, 0.0, 0.0], [1.0, 1.0, 0.0]], 

92 ], 

93 coords=[ 

94 ("lead_day", [0, 1]), 

95 ("letter", ["a", "b", "c"]), 

96 ("threshold", [0, 0.3, 1]), 

97 ], 

98 ), 

99 "AUC": xr.DataArray( 

100 [[1, 0.5, 0.75], [0.5, 0.5, 0]], 

101 coords=[("lead_day", [0, 1]), ("letter", ["a", "b", "c"])], 

102 ), 

103 } 

104) 

105EXP_ROC_NONE = xr.Dataset( 

106 { 

107 "POD": xr.DataArray([1, 0.5, 1 / 8], dims=["threshold"], coords={"threshold": [0, 0.3, 1]}), 

108 "POFD": xr.DataArray([1, 4 / 7, 0], dims=["threshold"], coords={"threshold": [0, 0.3, 1]}), 

109 "AUC": xr.DataArray([0.5]).squeeze(), 

110 } 

111) 

112 

113EXP_ROC_NONE_WEIGHTED = xr.Dataset( 

114 { 

115 "POD": xr.DataArray([1, 5 / 12, 1 / 12], dims=["threshold"], coords={"threshold": [0, 0.3, 1]}), 

116 "POFD": xr.DataArray([1, 0.6363636363636364, 0], dims=["threshold"], coords={"threshold": [0, 0.3, 1]}), 

117 "AUC": xr.DataArray([0.41666666666666663]).squeeze(), 

118 } 

119)