Coverage for tests/categorical/multicategorical_test_data.py: 100%
64 statements
« prev ^ index » next coverage.py v7.3.2, created at 2024-02-28 12:51 +1100
« prev ^ index » next coverage.py v7.3.2, created at 2024-02-28 12:51 +1100
1"""
2Test data for testing scores.categorical.multicategorical functions
3"""
4import numpy as np
5import xarray as xr
7DA_FCST_SC = xr.DataArray(
8 data=[[[np.nan, 7, 4], [-100, 0, 1]], [[0, 1, 5], [10, 16, 1]]],
9 dims=["i", "j", "k"],
10 coords={
11 "i": [1, 2],
12 "j": [10000, 100001],
13 "k": [10, 11, 12],
14 },
15)
16DA_FCST_SC2 = xr.DataArray(
17 data=[3, 3, 1, 2, 2, 1],
18 dims=["i"],
19 coords={
20 "i": [1, 2, 3, 4, 5, 6],
21 },
22)
24DA_OBS_SC = xr.DataArray(
25 data=[[10, np.nan], [0, 1]],
26 dims=["j", "k"],
27 coords={
28 "j": [100001, 10000], # coords in different order to forecast
29 "k": [10, 11],
30 },
31)
33DA_OBS_SC2 = xr.DataArray(
34 data=[1, 2, 3, 4, 1, 2],
35 dims=["i"],
36 coords={
37 "i": [1, 2, 3, 4, 5, 6],
38 },
39)
41EXP_SC_TOTAL_CASE0 = xr.DataArray(
42 data=[[[np.nan, 0.3], [0.7, np.nan]], [[0.0, 0], [0, np.nan]]],
43 dims=["i", "j", "k"],
44 coords={
45 "i": [1, 2],
46 "j": [10000, 100001],
47 "k": [10, 11],
48 },
49)
50EXP_SC_UNDER_CASE0 = xr.DataArray(
51 data=[[[np.nan, 0], [0.7, np.nan]], [[0.0, 0], [0, np.nan]]],
52 dims=["i", "j", "k"],
53 coords={
54 "i": [1, 2],
55 "j": [10000, 100001],
56 "k": [10, 11],
57 },
58)
59EXP_SC_OVER_CASE0 = xr.DataArray(
60 data=[[[np.nan, 0.3], [0, np.nan]], [[0.0, 0], [0, np.nan]]],
61 dims=["i", "j", "k"],
62 coords={
63 "i": [1, 2],
64 "j": [10000, 100001],
65 "k": [10, 11],
66 },
67)
68EXP_SC_CASE0 = xr.Dataset(
69 {
70 "firm_score": EXP_SC_TOTAL_CASE0,
71 "underforecast_penalty": EXP_SC_UNDER_CASE0,
72 "overforecast_penalty": EXP_SC_OVER_CASE0,
73 }
74)
76EXP_SC_TOTAL_CASE1 = xr.DataArray(
77 data=[[[np.nan, 0], [0, np.nan]], [[0.0, 0], [0, np.nan]]],
78 dims=["i", "j", "k"],
79 coords={
80 "i": [1, 2],
81 "j": [10000, 100001],
82 "k": [10, 11],
83 },
84)
86EXP_SC_CASE1 = xr.Dataset(
87 {
88 "firm_score": EXP_SC_TOTAL_CASE1,
89 "underforecast_penalty": EXP_SC_TOTAL_CASE1,
90 "overforecast_penalty": EXP_SC_TOTAL_CASE1,
91 }
92)
94EXP_SC_TOTAL_CASE2 = xr.DataArray(
95 data=[[[np.nan, 1.2], [3.5, np.nan]], [[0.0, 0], [0, np.nan]]],
96 dims=["i", "j", "k"],
97 coords={
98 "i": [1, 2],
99 "j": [10000, 100001],
100 "k": [10, 11],
101 },
102)
103EXP_SC_UNDER_CASE2 = xr.DataArray(
104 data=[[[np.nan, 0], [3.5, np.nan]], [[0.0, 0], [0, np.nan]]],
105 dims=["i", "j", "k"],
106 coords={
107 "i": [1, 2],
108 "j": [10000, 100001],
109 "k": [10, 11],
110 },
111)
112EXP_SC_OVER_CASE2 = xr.DataArray(
113 data=[[[np.nan, 1.2], [0, np.nan]], [[0.0, 0], [0, np.nan]]],
114 dims=["i", "j", "k"],
115 coords={
116 "i": [1, 2],
117 "j": [10000, 100001],
118 "k": [10, 11],
119 },
120)
121EXP_SC_CASE2 = xr.Dataset(
122 {
123 "firm_score": EXP_SC_TOTAL_CASE2,
124 "underforecast_penalty": EXP_SC_UNDER_CASE2,
125 "overforecast_penalty": EXP_SC_OVER_CASE2,
126 }
127)
129EXP_SC_TOTAL_CASE3 = xr.DataArray(
130 data=[[[np.nan, 0.15], [0.35, np.nan]], [[0.0, 0], [0, np.nan]]],
131 dims=["i", "j", "k"],
132 coords={
133 "i": [1, 2],
134 "j": [10000, 100001],
135 "k": [10, 11],
136 },
137)
138EXP_SC_UNDER_CASE3 = xr.DataArray(
139 data=[[[np.nan, 0], [0.35, np.nan]], [[0.0, 0], [0, np.nan]]],
140 dims=["i", "j", "k"],
141 coords={
142 "i": [1, 2],
143 "j": [10000, 100001],
144 "k": [10, 11],
145 },
146)
147EXP_SC_OVER_CASE3 = xr.DataArray(
148 data=[[[np.nan, 0.15], [0, np.nan]], [[0.0, 0], [0, np.nan]]],
149 dims=["i", "j", "k"],
150 coords={
151 "i": [1, 2],
152 "j": [10000, 100001],
153 "k": [10, 11],
154 },
155)
156EXP_SC_CASE3 = xr.Dataset(
157 {
158 "firm_score": EXP_SC_TOTAL_CASE3,
159 "underforecast_penalty": EXP_SC_UNDER_CASE3,
160 "overforecast_penalty": EXP_SC_OVER_CASE3,
161 }
162)
165EXP_SC_TOTAL_CASE4 = xr.DataArray(
166 data=[0.3, 0.3, 0.7, 0.7, 0, 0],
167 dims=["i"],
168 coords={
169 "i": [1, 2, 3, 4, 5, 6],
170 },
171)
172EXP_SC_UNDER_CASE4 = xr.DataArray(
173 data=[0, 0, 0.7, 0.7, 0, 0],
174 dims=["i"],
175 coords={
176 "i": [1, 2, 3, 4, 5, 6],
177 },
178)
179EXP_SC_OVER_CASE4 = xr.DataArray(
180 data=[0.3, 0.3, 0, 0, 0, 0],
181 dims=["i"],
182 coords={
183 "i": [1, 2, 3, 4, 5, 6],
184 },
185)
187EXP_SC_CASE4 = xr.Dataset(
188 {
189 "firm_score": EXP_SC_TOTAL_CASE4,
190 "underforecast_penalty": EXP_SC_UNDER_CASE4,
191 "overforecast_penalty": EXP_SC_OVER_CASE4,
192 }
193)
195EXP_SC_TOTAL_CASE5 = xr.DataArray(
196 data=[0.3, 0, 0.7, 0.0, 0.3, 0.7],
197 dims=["i"],
198 coords={
199 "i": [1, 2, 3, 4, 5, 6],
200 },
201)
202EXP_SC_UNDER_CASE5 = xr.DataArray(
203 data=[0, 0, 0.7, 0, 0, 0.7],
204 dims=["i"],
205 coords={
206 "i": [1, 2, 3, 4, 5, 6],
207 },
208)
209EXP_SC_OVER_CASE5 = xr.DataArray(
210 data=[0.3, 0.0, 0, 0, 0.3, 0],
211 dims=["i"],
212 coords={
213 "i": [1, 2, 3, 4, 5, 6],
214 },
215)
217EXP_SC_CASE5 = xr.Dataset(
218 {
219 "firm_score": EXP_SC_TOTAL_CASE5,
220 "underforecast_penalty": EXP_SC_UNDER_CASE5,
221 "overforecast_penalty": EXP_SC_OVER_CASE5,
222 }
223)
225DA_FCST_FIRM = xr.DataArray(
226 data=[
227 [[np.nan, 7, 4], [-100, 0, 1], [0, -100, 1]],
228 [[0, 1, 5], [10, 16, 1], [-10, -16, 1]],
229 ],
230 dims=["i", "j", "k"],
231 coords={
232 "i": [1, 2],
233 "j": [10000, 100001, 900000],
234 "k": [10, 11, 12],
235 },
236)
237DA_OBS_FIRM = xr.DataArray(
238 data=[[0, 1], [10, np.nan], [0, 10]],
239 dims=["j", "k"],
240 coords={
241 "j": [10000, 100001, 900000],
242 "k": [10, 11],
243 },
244)
246LIST_WEIGHTS_FIRM0 = [
247 xr.DataArray(
248 data=[2, 2, 2],
249 dims=["j"],
250 coords={
251 "j": [10000, 100001, 900000],
252 },
253 ),
254 xr.DataArray(
255 data=[1, 1, 1],
256 dims=["j"],
257 coords={
258 "j": [10000, 100001, 900000],
259 },
260 ),
261]
262LIST_WEIGHTS_FIRM1 = [
263 xr.DataArray(
264 data=[200, 20, 0.2],
265 dims=["j"],
266 coords={
267 "j": [10000, 100001, 900000],
268 },
269 ),
270 xr.DataArray(
271 data=[1000, 10, 0.1],
272 dims=["j"],
273 coords={
274 "j": [10000, 100001, 900000],
275 },
276 ),
277]
278LIST_WEIGHTS_FIRM2 = [
279 xr.DataArray(
280 data=[200, 20, 0.2],
281 dims=["j"],
282 coords={
283 "j": [10000, 100001, 900000],
284 },
285 ),
286 xr.DataArray(
287 data=[1000, 10, np.nan],
288 dims=["j"],
289 coords={
290 "j": [10000, 100001, 900000],
291 },
292 ),
293]
295LIST_WEIGHTS_FIRM3 = [
296 xr.DataArray(
297 data=[20, np.nan, -200], # negative weight
298 dims=["j"],
299 coords={
300 "j": [10000, 100001, 900000],
301 },
302 ),
303 xr.DataArray(
304 data=[10, 1, 100],
305 dims=["j"],
306 coords={
307 "j": [10000, 100001, 900000],
308 },
309 ),
310]
311LIST_WEIGHTS_FIRM4 = [
312 xr.DataArray(
313 data=[20, np.nan, 0.0], # zero weight
314 dims=["j"],
315 coords={
316 "j": [10000, 100001, 900000],
317 },
318 ),
319 xr.DataArray(
320 data=[10, 1, 100],
321 dims=["j"],
322 coords={
323 "j": [10000, 100001, 900000],
324 },
325 ),
326]
327LIST_WEIGHTS_FIRM5 = [
328 xr.DataArray(
329 data=[[0, 1], [10, np.nan], [0, 10]],
330 dims=["j", "z"],
331 coords={
332 "j": [10000, 100001, 900000],
333 "z": [10, 11],
334 },
335 ),
336 xr.DataArray(
337 data=[[0, 1], [10, np.nan], [0, 10]],
338 dims=["j", "k"],
339 coords={
340 "j": [10000, 100001, 900000],
341 "k": [10, 11],
342 },
343 ),
344]
345EXP_FIRM_TOTAL_CASE0 = xr.DataArray(
346 data=[
347 [[np.nan, 0.3], [0.7, np.nan], [0.0, 0.7]],
348 [[0.0, 0], [0, np.nan], [0.0, 0.7]],
349 ],
350 dims=["i", "j", "k"],
351 coords={
352 "i": [1, 2],
353 "j": [10000, 100001, 900000],
354 "k": [10, 11],
355 },
356)
357EXP_FIRM_UNDER_CASE0 = xr.DataArray(
358 data=[
359 [[np.nan, 0.0], [0.7, np.nan], [0.0, 0.7]],
360 [[0.0, 0], [0, np.nan], [0.0, 0.7]],
361 ],
362 dims=["i", "j", "k"],
363 coords={
364 "i": [1, 2],
365 "j": [10000, 100001, 900000],
366 "k": [10, 11],
367 },
368)
369EXP_FIRM_OVER_CASE0 = xr.DataArray(
370 data=[
371 [[np.nan, 0.3], [0.0, np.nan], [0.0, 0.0]],
372 [[0.0, 0], [0, np.nan], [0.0, 0.0]],
373 ],
374 dims=["i", "j", "k"],
375 coords={
376 "i": [1, 2],
377 "j": [10000, 100001, 900000],
378 "k": [10, 11],
379 },
380)
381EXP_FIRM_CASE0 = xr.Dataset(
382 {
383 "firm_score": EXP_FIRM_TOTAL_CASE0,
384 "underforecast_penalty": EXP_FIRM_UNDER_CASE0,
385 "overforecast_penalty": EXP_FIRM_OVER_CASE0,
386 }
387)
389EXP_FIRM_TOTAL_CASE1 = xr.DataArray(
390 data=[0.425, 0.14],
391 dims=["i"],
392 coords={"i": [1, 2]},
393)
394EXP_FIRM_UNDER_CASE1 = xr.DataArray(
395 data=[0.35, 0.14],
396 dims=["i"],
397 coords={"i": [1, 2]},
398)
399EXP_FIRM_OVER_CASE1 = xr.DataArray(
400 data=[0.075, 0.0],
401 dims=["i"],
402 coords={"i": [1, 2]},
403)
404EXP_FIRM_CASE1 = xr.Dataset(
405 {
406 "firm_score": EXP_FIRM_TOTAL_CASE1,
407 "underforecast_penalty": EXP_FIRM_UNDER_CASE1,
408 "overforecast_penalty": EXP_FIRM_OVER_CASE1,
409 }
410)
412EXP_FIRM_TOTAL_CASE2 = xr.DataArray(data=0.2666666666666)
413EXP_FIRM_OVER_CASE2 = xr.DataArray(data=0.3 / 9)
414EXP_FIRM_UNDER_CASE2 = xr.DataArray(data=2.1 / 9)
415EXP_FIRM_CASE2 = xr.Dataset(
416 {
417 "firm_score": EXP_FIRM_TOTAL_CASE2,
418 "underforecast_penalty": EXP_FIRM_UNDER_CASE2,
419 "overforecast_penalty": EXP_FIRM_OVER_CASE2,
420 }
421)
423EXP_FIRM_TOTAL_CASE3 = xr.DataArray(
424 data=[
425 [[np.nan, 0.3], [1.4, np.nan], [0.0, 1.4]],
426 [[0.0, 0], [0, np.nan], [0.0, 1.4]],
427 ],
428 dims=["i", "j", "k"],
429 coords={
430 "i": [1, 2],
431 "j": [10000, 100001, 900000],
432 "k": [10, 11],
433 },
434)
435EXP_FIRM_UNDER_CASE3 = xr.DataArray(
436 data=[
437 [[np.nan, 0.0], [1.4, np.nan], [0.0, 1.4]],
438 [[0.0, 0], [0, np.nan], [0.0, 1.4]],
439 ],
440 dims=["i", "j", "k"],
441 coords={
442 "i": [1, 2],
443 "j": [10000, 100001, 900000],
444 "k": [10, 11],
445 },
446)
447EXP_FIRM_OVER_CASE3 = xr.DataArray(
448 data=[
449 [[np.nan, 0.3], [0.0, np.nan], [0.0, 0.0]],
450 [[0.0, 0], [0, np.nan], [0.0, 0.0]],
451 ],
452 dims=["i", "j", "k"],
453 coords={
454 "i": [1, 2],
455 "j": [10000, 100001, 900000],
456 "k": [10, 11],
457 },
458)
459EXP_FIRM_CASE3 = xr.Dataset(
460 {
461 "firm_score": EXP_FIRM_TOTAL_CASE3,
462 "underforecast_penalty": EXP_FIRM_UNDER_CASE3,
463 "overforecast_penalty": EXP_FIRM_OVER_CASE3,
464 }
465)
467EXP_FIRM_TOTAL_CASE4 = xr.DataArray(
468 data=[
469 [[np.nan, 0.3], [2.1, np.nan], [0.0, 2.1]],
470 [[0.0, 0], [0, np.nan], [0.0, 2.1]],
471 ],
472 dims=["i", "j", "k"],
473 coords={
474 "i": [1, 2],
475 "j": [10000, 100001, 900000],
476 "k": [10, 11],
477 },
478)
479EXP_FIRM_UNDER_CASE4 = xr.DataArray(
480 data=[
481 [[np.nan, 0.0], [2.1, np.nan], [0.0, 2.1]],
482 [[0.0, 0], [0, np.nan], [0.0, 2.1]],
483 ],
484 dims=["i", "j", "k"],
485 coords={
486 "i": [1, 2],
487 "j": [10000, 100001, 900000],
488 "k": [10, 11],
489 },
490)
491EXP_FIRM_OVER_CASE4 = xr.DataArray(
492 data=[
493 [[np.nan, 0.3], [0.0, np.nan], [0.0, 0.0]],
494 [[0.0, 0], [0, np.nan], [0.0, 0.0]],
495 ],
496 dims=["i", "j", "k"],
497 coords={
498 "i": [1, 2],
499 "j": [10000, 100001, 900000],
500 "k": [10, 11],
501 },
502)
503EXP_FIRM_CASE4 = xr.Dataset(
504 {
505 "firm_score": EXP_FIRM_TOTAL_CASE4,
506 "underforecast_penalty": EXP_FIRM_UNDER_CASE4,
507 "overforecast_penalty": EXP_FIRM_OVER_CASE4,
508 }
509)
511EXP_FIRM_TOTAL_CASE5 = xr.DataArray(
512 data=[
513 [[np.nan, 300], [21, np.nan], [0.0, 0.21]],
514 [[0.0, 0], [0, np.nan], [0.0, 0.21]],
515 ],
516 dims=["i", "j", "k"],
517 coords={
518 "i": [1, 2],
519 "j": [10000, 100001, 900000],
520 "k": [10, 11],
521 },
522)
523EXP_FIRM_UNDER_CASE5 = xr.DataArray(
524 data=[
525 [[np.nan, 0.0], [21, np.nan], [0.0, 0.21]],
526 [[0.0, 0], [0, np.nan], [0.0, 0.21]],
527 ],
528 dims=["i", "j", "k"],
529 coords={
530 "i": [1, 2],
531 "j": [10000, 100001, 900000],
532 "k": [10, 11],
533 },
534)
535EXP_FIRM_OVER_CASE5 = xr.DataArray(
536 data=[
537 [[np.nan, 300], [0.0, np.nan], [0.0, 0.0]],
538 [[0.0, 0], [0, np.nan], [0.0, 0.0]],
539 ],
540 dims=["i", "j", "k"],
541 coords={
542 "i": [1, 2],
543 "j": [10000, 100001, 900000],
544 "k": [10, 11],
545 },
546)
547EXP_FIRM_CASE5 = xr.Dataset(
548 {
549 "firm_score": EXP_FIRM_TOTAL_CASE5,
550 "underforecast_penalty": EXP_FIRM_UNDER_CASE5,
551 "overforecast_penalty": EXP_FIRM_OVER_CASE5,
552 }
553)
555EXP_FIRM_TOTAL_CASE6 = xr.DataArray(
556 data=[
557 [[np.nan, 300], [21, np.nan], [np.nan, np.nan]],
558 [[0.0, 0], [0, np.nan], [np.nan, np.nan]],
559 ],
560 dims=["i", "j", "k"],
561 coords={
562 "i": [1, 2],
563 "j": [10000, 100001, 900000],
564 "k": [10, 11],
565 },
566)
567EXP_FIRM_UNDER_CASE6 = xr.DataArray(
568 data=[
569 [[np.nan, 0.0], [21, np.nan], [np.nan, np.nan]],
570 [[0.0, 0], [0, np.nan], [np.nan, np.nan]],
571 ],
572 dims=["i", "j", "k"],
573 coords={
574 "i": [1, 2],
575 "j": [10000, 100001, 900000],
576 "k": [10, 11],
577 },
578)
579EXP_FIRM_OVER_CASE6 = xr.DataArray(
580 data=[
581 [[np.nan, 300], [0.0, np.nan], [np.nan, np.nan]],
582 [[0.0, 0], [0, np.nan], [np.nan, np.nan]],
583 ],
584 dims=["i", "j", "k"],
585 coords={
586 "i": [1, 2],
587 "j": [10000, 100001, 900000],
588 "k": [10, 11],
589 },
590)
591EXP_FIRM_CASE6 = xr.Dataset(
592 {
593 "firm_score": EXP_FIRM_TOTAL_CASE6,
594 "underforecast_penalty": EXP_FIRM_UNDER_CASE6,
595 "overforecast_penalty": EXP_FIRM_OVER_CASE6,
596 }
597)