julian 0.7.1

Convert between Julian day numbers and Julian & Gregorian calendars
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
use crate::{errors::DateError, Calendar, Month};
use rstest::rstest;

#[rstest]
#[case(2023, 1, Month::January, 1)]
#[case(2023, 2, Month::January, 2)]
#[case(2023, 3, Month::January, 3)]
#[case(2023, 4, Month::January, 4)]
#[case(2023, 5, Month::January, 5)]
#[case(2023, 6, Month::January, 6)]
#[case(2023, 7, Month::January, 7)]
#[case(2023, 8, Month::January, 8)]
#[case(2023, 9, Month::January, 9)]
#[case(2023, 10, Month::January, 10)]
#[case(2023, 11, Month::January, 11)]
#[case(2023, 12, Month::January, 12)]
#[case(2023, 13, Month::January, 13)]
#[case(2023, 14, Month::January, 14)]
#[case(2023, 15, Month::January, 15)]
#[case(2023, 16, Month::January, 16)]
#[case(2023, 17, Month::January, 17)]
#[case(2023, 18, Month::January, 18)]
#[case(2023, 19, Month::January, 19)]
#[case(2023, 20, Month::January, 20)]
#[case(2023, 21, Month::January, 21)]
#[case(2023, 22, Month::January, 22)]
#[case(2023, 23, Month::January, 23)]
#[case(2023, 24, Month::January, 24)]
#[case(2023, 25, Month::January, 25)]
#[case(2023, 26, Month::January, 26)]
#[case(2023, 27, Month::January, 27)]
#[case(2023, 28, Month::January, 28)]
#[case(2023, 29, Month::January, 29)]
#[case(2023, 30, Month::January, 30)]
#[case(2023, 31, Month::January, 31)]
#[case(2023, 32, Month::February, 1)]
#[case(2023, 33, Month::February, 2)]
#[case(2023, 34, Month::February, 3)]
#[case(2023, 35, Month::February, 4)]
#[case(2023, 36, Month::February, 5)]
#[case(2023, 37, Month::February, 6)]
#[case(2023, 38, Month::February, 7)]
#[case(2023, 39, Month::February, 8)]
#[case(2023, 40, Month::February, 9)]
#[case(2023, 41, Month::February, 10)]
#[case(2023, 42, Month::February, 11)]
#[case(2023, 43, Month::February, 12)]
#[case(2023, 44, Month::February, 13)]
#[case(2023, 45, Month::February, 14)]
#[case(2023, 46, Month::February, 15)]
#[case(2023, 47, Month::February, 16)]
#[case(2023, 48, Month::February, 17)]
#[case(2023, 49, Month::February, 18)]
#[case(2023, 50, Month::February, 19)]
#[case(2023, 51, Month::February, 20)]
#[case(2023, 52, Month::February, 21)]
#[case(2023, 53, Month::February, 22)]
#[case(2023, 54, Month::February, 23)]
#[case(2023, 55, Month::February, 24)]
#[case(2023, 56, Month::February, 25)]
#[case(2023, 57, Month::February, 26)]
#[case(2023, 58, Month::February, 27)]
#[case(2023, 59, Month::February, 28)]
#[case(2023, 60, Month::March, 1)]
#[case(2023, 61, Month::March, 2)]
#[case(2023, 62, Month::March, 3)]
#[case(2023, 63, Month::March, 4)]
#[case(2023, 64, Month::March, 5)]
#[case(2023, 65, Month::March, 6)]
#[case(2023, 66, Month::March, 7)]
#[case(2023, 67, Month::March, 8)]
#[case(2023, 68, Month::March, 9)]
#[case(2023, 69, Month::March, 10)]
#[case(2023, 70, Month::March, 11)]
#[case(2023, 71, Month::March, 12)]
#[case(2023, 72, Month::March, 13)]
#[case(2023, 73, Month::March, 14)]
#[case(2023, 74, Month::March, 15)]
#[case(2023, 75, Month::March, 16)]
#[case(2023, 76, Month::March, 17)]
#[case(2023, 77, Month::March, 18)]
#[case(2023, 78, Month::March, 19)]
#[case(2023, 79, Month::March, 20)]
#[case(2023, 80, Month::March, 21)]
#[case(2023, 81, Month::March, 22)]
#[case(2023, 82, Month::March, 23)]
#[case(2023, 83, Month::March, 24)]
#[case(2023, 84, Month::March, 25)]
#[case(2023, 85, Month::March, 26)]
#[case(2023, 86, Month::March, 27)]
#[case(2023, 87, Month::March, 28)]
#[case(2023, 88, Month::March, 29)]
#[case(2023, 89, Month::March, 30)]
#[case(2023, 90, Month::March, 31)]
#[case(2023, 91, Month::April, 1)]
#[case(2023, 92, Month::April, 2)]
#[case(2023, 93, Month::April, 3)]
#[case(2023, 94, Month::April, 4)]
#[case(2023, 95, Month::April, 5)]
#[case(2023, 96, Month::April, 6)]
#[case(2023, 97, Month::April, 7)]
#[case(2023, 98, Month::April, 8)]
#[case(2023, 99, Month::April, 9)]
#[case(2023, 100, Month::April, 10)]
#[case(2023, 101, Month::April, 11)]
#[case(2023, 102, Month::April, 12)]
#[case(2023, 103, Month::April, 13)]
#[case(2023, 104, Month::April, 14)]
#[case(2023, 105, Month::April, 15)]
#[case(2023, 106, Month::April, 16)]
#[case(2023, 107, Month::April, 17)]
#[case(2023, 108, Month::April, 18)]
#[case(2023, 109, Month::April, 19)]
#[case(2023, 110, Month::April, 20)]
#[case(2023, 111, Month::April, 21)]
#[case(2023, 112, Month::April, 22)]
#[case(2023, 113, Month::April, 23)]
#[case(2023, 114, Month::April, 24)]
#[case(2023, 115, Month::April, 25)]
#[case(2023, 116, Month::April, 26)]
#[case(2023, 117, Month::April, 27)]
#[case(2023, 118, Month::April, 28)]
#[case(2023, 119, Month::April, 29)]
#[case(2023, 120, Month::April, 30)]
#[case(2023, 121, Month::May, 1)]
#[case(2023, 122, Month::May, 2)]
#[case(2023, 123, Month::May, 3)]
#[case(2023, 124, Month::May, 4)]
#[case(2023, 125, Month::May, 5)]
#[case(2023, 126, Month::May, 6)]
#[case(2023, 127, Month::May, 7)]
#[case(2023, 128, Month::May, 8)]
#[case(2023, 129, Month::May, 9)]
#[case(2023, 130, Month::May, 10)]
#[case(2023, 131, Month::May, 11)]
#[case(2023, 132, Month::May, 12)]
#[case(2023, 133, Month::May, 13)]
#[case(2023, 134, Month::May, 14)]
#[case(2023, 135, Month::May, 15)]
#[case(2023, 136, Month::May, 16)]
#[case(2023, 137, Month::May, 17)]
#[case(2023, 138, Month::May, 18)]
#[case(2023, 139, Month::May, 19)]
#[case(2023, 140, Month::May, 20)]
#[case(2023, 141, Month::May, 21)]
#[case(2023, 142, Month::May, 22)]
#[case(2023, 143, Month::May, 23)]
#[case(2023, 144, Month::May, 24)]
#[case(2023, 145, Month::May, 25)]
#[case(2023, 146, Month::May, 26)]
#[case(2023, 147, Month::May, 27)]
#[case(2023, 148, Month::May, 28)]
#[case(2023, 149, Month::May, 29)]
#[case(2023, 150, Month::May, 30)]
#[case(2023, 151, Month::May, 31)]
#[case(2023, 152, Month::June, 1)]
#[case(2023, 153, Month::June, 2)]
#[case(2023, 154, Month::June, 3)]
#[case(2023, 155, Month::June, 4)]
#[case(2023, 156, Month::June, 5)]
#[case(2023, 157, Month::June, 6)]
#[case(2023, 158, Month::June, 7)]
#[case(2023, 159, Month::June, 8)]
#[case(2023, 160, Month::June, 9)]
#[case(2023, 161, Month::June, 10)]
#[case(2023, 162, Month::June, 11)]
#[case(2023, 163, Month::June, 12)]
#[case(2023, 164, Month::June, 13)]
#[case(2023, 165, Month::June, 14)]
#[case(2023, 166, Month::June, 15)]
#[case(2023, 167, Month::June, 16)]
#[case(2023, 168, Month::June, 17)]
#[case(2023, 169, Month::June, 18)]
#[case(2023, 170, Month::June, 19)]
#[case(2023, 171, Month::June, 20)]
#[case(2023, 172, Month::June, 21)]
#[case(2023, 173, Month::June, 22)]
#[case(2023, 174, Month::June, 23)]
#[case(2023, 175, Month::June, 24)]
#[case(2023, 176, Month::June, 25)]
#[case(2023, 177, Month::June, 26)]
#[case(2023, 178, Month::June, 27)]
#[case(2023, 179, Month::June, 28)]
#[case(2023, 180, Month::June, 29)]
#[case(2023, 181, Month::June, 30)]
#[case(2023, 182, Month::July, 1)]
#[case(2023, 183, Month::July, 2)]
#[case(2023, 184, Month::July, 3)]
#[case(2023, 185, Month::July, 4)]
#[case(2023, 186, Month::July, 5)]
#[case(2023, 187, Month::July, 6)]
#[case(2023, 188, Month::July, 7)]
#[case(2023, 189, Month::July, 8)]
#[case(2023, 190, Month::July, 9)]
#[case(2023, 191, Month::July, 10)]
#[case(2023, 192, Month::July, 11)]
#[case(2023, 193, Month::July, 12)]
#[case(2023, 194, Month::July, 13)]
#[case(2023, 195, Month::July, 14)]
#[case(2023, 196, Month::July, 15)]
#[case(2023, 197, Month::July, 16)]
#[case(2023, 198, Month::July, 17)]
#[case(2023, 199, Month::July, 18)]
#[case(2023, 200, Month::July, 19)]
#[case(2023, 201, Month::July, 20)]
#[case(2023, 202, Month::July, 21)]
#[case(2023, 203, Month::July, 22)]
#[case(2023, 204, Month::July, 23)]
#[case(2023, 205, Month::July, 24)]
#[case(2023, 206, Month::July, 25)]
#[case(2023, 207, Month::July, 26)]
#[case(2023, 208, Month::July, 27)]
#[case(2023, 209, Month::July, 28)]
#[case(2023, 210, Month::July, 29)]
#[case(2023, 211, Month::July, 30)]
#[case(2023, 212, Month::July, 31)]
#[case(2023, 213, Month::August, 1)]
#[case(2023, 214, Month::August, 2)]
#[case(2023, 215, Month::August, 3)]
#[case(2023, 216, Month::August, 4)]
#[case(2023, 217, Month::August, 5)]
#[case(2023, 218, Month::August, 6)]
#[case(2023, 219, Month::August, 7)]
#[case(2023, 220, Month::August, 8)]
#[case(2023, 221, Month::August, 9)]
#[case(2023, 222, Month::August, 10)]
#[case(2023, 223, Month::August, 11)]
#[case(2023, 224, Month::August, 12)]
#[case(2023, 225, Month::August, 13)]
#[case(2023, 226, Month::August, 14)]
#[case(2023, 227, Month::August, 15)]
#[case(2023, 228, Month::August, 16)]
#[case(2023, 229, Month::August, 17)]
#[case(2023, 230, Month::August, 18)]
#[case(2023, 231, Month::August, 19)]
#[case(2023, 232, Month::August, 20)]
#[case(2023, 233, Month::August, 21)]
#[case(2023, 234, Month::August, 22)]
#[case(2023, 235, Month::August, 23)]
#[case(2023, 236, Month::August, 24)]
#[case(2023, 237, Month::August, 25)]
#[case(2023, 238, Month::August, 26)]
#[case(2023, 239, Month::August, 27)]
#[case(2023, 240, Month::August, 28)]
#[case(2023, 241, Month::August, 29)]
#[case(2023, 242, Month::August, 30)]
#[case(2023, 243, Month::August, 31)]
#[case(2023, 244, Month::September, 1)]
#[case(2023, 245, Month::September, 2)]
#[case(2023, 246, Month::September, 3)]
#[case(2023, 247, Month::September, 4)]
#[case(2023, 248, Month::September, 5)]
#[case(2023, 249, Month::September, 6)]
#[case(2023, 250, Month::September, 7)]
#[case(2023, 251, Month::September, 8)]
#[case(2023, 252, Month::September, 9)]
#[case(2023, 253, Month::September, 10)]
#[case(2023, 254, Month::September, 11)]
#[case(2023, 255, Month::September, 12)]
#[case(2023, 256, Month::September, 13)]
#[case(2023, 257, Month::September, 14)]
#[case(2023, 258, Month::September, 15)]
#[case(2023, 259, Month::September, 16)]
#[case(2023, 260, Month::September, 17)]
#[case(2023, 261, Month::September, 18)]
#[case(2023, 262, Month::September, 19)]
#[case(2023, 263, Month::September, 20)]
#[case(2023, 264, Month::September, 21)]
#[case(2023, 265, Month::September, 22)]
#[case(2023, 266, Month::September, 23)]
#[case(2023, 267, Month::September, 24)]
#[case(2023, 268, Month::September, 25)]
#[case(2023, 269, Month::September, 26)]
#[case(2023, 270, Month::September, 27)]
#[case(2023, 271, Month::September, 28)]
#[case(2023, 272, Month::September, 29)]
#[case(2023, 273, Month::September, 30)]
#[case(2023, 274, Month::October, 1)]
#[case(2023, 275, Month::October, 2)]
#[case(2023, 276, Month::October, 3)]
#[case(2023, 277, Month::October, 4)]
#[case(2023, 278, Month::October, 5)]
#[case(2023, 279, Month::October, 6)]
#[case(2023, 280, Month::October, 7)]
#[case(2023, 281, Month::October, 8)]
#[case(2023, 282, Month::October, 9)]
#[case(2023, 283, Month::October, 10)]
#[case(2023, 284, Month::October, 11)]
#[case(2023, 285, Month::October, 12)]
#[case(2023, 286, Month::October, 13)]
#[case(2023, 287, Month::October, 14)]
#[case(2023, 288, Month::October, 15)]
#[case(2023, 289, Month::October, 16)]
#[case(2023, 290, Month::October, 17)]
#[case(2023, 291, Month::October, 18)]
#[case(2023, 292, Month::October, 19)]
#[case(2023, 293, Month::October, 20)]
#[case(2023, 294, Month::October, 21)]
#[case(2023, 295, Month::October, 22)]
#[case(2023, 296, Month::October, 23)]
#[case(2023, 297, Month::October, 24)]
#[case(2023, 298, Month::October, 25)]
#[case(2023, 299, Month::October, 26)]
#[case(2023, 300, Month::October, 27)]
#[case(2023, 301, Month::October, 28)]
#[case(2023, 302, Month::October, 29)]
#[case(2023, 303, Month::October, 30)]
#[case(2023, 304, Month::October, 31)]
#[case(2023, 305, Month::November, 1)]
#[case(2023, 306, Month::November, 2)]
#[case(2023, 307, Month::November, 3)]
#[case(2023, 308, Month::November, 4)]
#[case(2023, 309, Month::November, 5)]
#[case(2023, 310, Month::November, 6)]
#[case(2023, 311, Month::November, 7)]
#[case(2023, 312, Month::November, 8)]
#[case(2023, 313, Month::November, 9)]
#[case(2023, 314, Month::November, 10)]
#[case(2023, 315, Month::November, 11)]
#[case(2023, 316, Month::November, 12)]
#[case(2023, 317, Month::November, 13)]
#[case(2023, 318, Month::November, 14)]
#[case(2023, 319, Month::November, 15)]
#[case(2023, 320, Month::November, 16)]
#[case(2023, 321, Month::November, 17)]
#[case(2023, 322, Month::November, 18)]
#[case(2023, 323, Month::November, 19)]
#[case(2023, 324, Month::November, 20)]
#[case(2023, 325, Month::November, 21)]
#[case(2023, 326, Month::November, 22)]
#[case(2023, 327, Month::November, 23)]
#[case(2023, 328, Month::November, 24)]
#[case(2023, 329, Month::November, 25)]
#[case(2023, 330, Month::November, 26)]
#[case(2023, 331, Month::November, 27)]
#[case(2023, 332, Month::November, 28)]
#[case(2023, 333, Month::November, 29)]
#[case(2023, 334, Month::November, 30)]
#[case(2023, 335, Month::December, 1)]
#[case(2023, 336, Month::December, 2)]
#[case(2023, 337, Month::December, 3)]
#[case(2023, 338, Month::December, 4)]
#[case(2023, 339, Month::December, 5)]
#[case(2023, 340, Month::December, 6)]
#[case(2023, 341, Month::December, 7)]
#[case(2023, 342, Month::December, 8)]
#[case(2023, 343, Month::December, 9)]
#[case(2023, 344, Month::December, 10)]
#[case(2023, 345, Month::December, 11)]
#[case(2023, 346, Month::December, 12)]
#[case(2023, 347, Month::December, 13)]
#[case(2023, 348, Month::December, 14)]
#[case(2023, 349, Month::December, 15)]
#[case(2023, 350, Month::December, 16)]
#[case(2023, 351, Month::December, 17)]
#[case(2023, 352, Month::December, 18)]
#[case(2023, 353, Month::December, 19)]
#[case(2023, 354, Month::December, 20)]
#[case(2023, 355, Month::December, 21)]
#[case(2023, 356, Month::December, 22)]
#[case(2023, 357, Month::December, 23)]
#[case(2023, 358, Month::December, 24)]
#[case(2023, 359, Month::December, 25)]
#[case(2023, 360, Month::December, 26)]
#[case(2023, 361, Month::December, 27)]
#[case(2023, 362, Month::December, 28)]
#[case(2023, 363, Month::December, 29)]
#[case(2023, 364, Month::December, 30)]
#[case(2023, 365, Month::December, 31)]
#[case(2024, 1, Month::January, 1)]
#[case(2024, 2, Month::January, 2)]
#[case(2024, 3, Month::January, 3)]
#[case(2024, 4, Month::January, 4)]
#[case(2024, 5, Month::January, 5)]
#[case(2024, 6, Month::January, 6)]
#[case(2024, 7, Month::January, 7)]
#[case(2024, 8, Month::January, 8)]
#[case(2024, 9, Month::January, 9)]
#[case(2024, 10, Month::January, 10)]
#[case(2024, 11, Month::January, 11)]
#[case(2024, 12, Month::January, 12)]
#[case(2024, 13, Month::January, 13)]
#[case(2024, 14, Month::January, 14)]
#[case(2024, 15, Month::January, 15)]
#[case(2024, 16, Month::January, 16)]
#[case(2024, 17, Month::January, 17)]
#[case(2024, 18, Month::January, 18)]
#[case(2024, 19, Month::January, 19)]
#[case(2024, 20, Month::January, 20)]
#[case(2024, 21, Month::January, 21)]
#[case(2024, 22, Month::January, 22)]
#[case(2024, 23, Month::January, 23)]
#[case(2024, 24, Month::January, 24)]
#[case(2024, 25, Month::January, 25)]
#[case(2024, 26, Month::January, 26)]
#[case(2024, 27, Month::January, 27)]
#[case(2024, 28, Month::January, 28)]
#[case(2024, 29, Month::January, 29)]
#[case(2024, 30, Month::January, 30)]
#[case(2024, 31, Month::January, 31)]
#[case(2024, 32, Month::February, 1)]
#[case(2024, 33, Month::February, 2)]
#[case(2024, 34, Month::February, 3)]
#[case(2024, 35, Month::February, 4)]
#[case(2024, 36, Month::February, 5)]
#[case(2024, 37, Month::February, 6)]
#[case(2024, 38, Month::February, 7)]
#[case(2024, 39, Month::February, 8)]
#[case(2024, 40, Month::February, 9)]
#[case(2024, 41, Month::February, 10)]
#[case(2024, 42, Month::February, 11)]
#[case(2024, 43, Month::February, 12)]
#[case(2024, 44, Month::February, 13)]
#[case(2024, 45, Month::February, 14)]
#[case(2024, 46, Month::February, 15)]
#[case(2024, 47, Month::February, 16)]
#[case(2024, 48, Month::February, 17)]
#[case(2024, 49, Month::February, 18)]
#[case(2024, 50, Month::February, 19)]
#[case(2024, 51, Month::February, 20)]
#[case(2024, 52, Month::February, 21)]
#[case(2024, 53, Month::February, 22)]
#[case(2024, 54, Month::February, 23)]
#[case(2024, 55, Month::February, 24)]
#[case(2024, 56, Month::February, 25)]
#[case(2024, 57, Month::February, 26)]
#[case(2024, 58, Month::February, 27)]
#[case(2024, 59, Month::February, 28)]
#[case(2024, 60, Month::February, 29)]
#[case(2024, 61, Month::March, 1)]
#[case(2024, 62, Month::March, 2)]
#[case(2024, 63, Month::March, 3)]
#[case(2024, 64, Month::March, 4)]
#[case(2024, 65, Month::March, 5)]
#[case(2024, 66, Month::March, 6)]
#[case(2024, 67, Month::March, 7)]
#[case(2024, 68, Month::March, 8)]
#[case(2024, 69, Month::March, 9)]
#[case(2024, 70, Month::March, 10)]
#[case(2024, 71, Month::March, 11)]
#[case(2024, 72, Month::March, 12)]
#[case(2024, 73, Month::March, 13)]
#[case(2024, 74, Month::March, 14)]
#[case(2024, 75, Month::March, 15)]
#[case(2024, 76, Month::March, 16)]
#[case(2024, 77, Month::March, 17)]
#[case(2024, 78, Month::March, 18)]
#[case(2024, 79, Month::March, 19)]
#[case(2024, 80, Month::March, 20)]
#[case(2024, 81, Month::March, 21)]
#[case(2024, 82, Month::March, 22)]
#[case(2024, 83, Month::March, 23)]
#[case(2024, 84, Month::March, 24)]
#[case(2024, 85, Month::March, 25)]
#[case(2024, 86, Month::March, 26)]
#[case(2024, 87, Month::March, 27)]
#[case(2024, 88, Month::March, 28)]
#[case(2024, 89, Month::March, 29)]
#[case(2024, 90, Month::March, 30)]
#[case(2024, 91, Month::March, 31)]
#[case(2024, 92, Month::April, 1)]
#[case(2024, 93, Month::April, 2)]
#[case(2024, 94, Month::April, 3)]
#[case(2024, 95, Month::April, 4)]
#[case(2024, 96, Month::April, 5)]
#[case(2024, 97, Month::April, 6)]
#[case(2024, 98, Month::April, 7)]
#[case(2024, 99, Month::April, 8)]
#[case(2024, 100, Month::April, 9)]
#[case(2024, 101, Month::April, 10)]
#[case(2024, 102, Month::April, 11)]
#[case(2024, 103, Month::April, 12)]
#[case(2024, 104, Month::April, 13)]
#[case(2024, 105, Month::April, 14)]
#[case(2024, 106, Month::April, 15)]
#[case(2024, 107, Month::April, 16)]
#[case(2024, 108, Month::April, 17)]
#[case(2024, 109, Month::April, 18)]
#[case(2024, 110, Month::April, 19)]
#[case(2024, 111, Month::April, 20)]
#[case(2024, 112, Month::April, 21)]
#[case(2024, 113, Month::April, 22)]
#[case(2024, 114, Month::April, 23)]
#[case(2024, 115, Month::April, 24)]
#[case(2024, 116, Month::April, 25)]
#[case(2024, 117, Month::April, 26)]
#[case(2024, 118, Month::April, 27)]
#[case(2024, 119, Month::April, 28)]
#[case(2024, 120, Month::April, 29)]
#[case(2024, 121, Month::April, 30)]
#[case(2024, 122, Month::May, 1)]
#[case(2024, 123, Month::May, 2)]
#[case(2024, 124, Month::May, 3)]
#[case(2024, 125, Month::May, 4)]
#[case(2024, 126, Month::May, 5)]
#[case(2024, 127, Month::May, 6)]
#[case(2024, 128, Month::May, 7)]
#[case(2024, 129, Month::May, 8)]
#[case(2024, 130, Month::May, 9)]
#[case(2024, 131, Month::May, 10)]
#[case(2024, 132, Month::May, 11)]
#[case(2024, 133, Month::May, 12)]
#[case(2024, 134, Month::May, 13)]
#[case(2024, 135, Month::May, 14)]
#[case(2024, 136, Month::May, 15)]
#[case(2024, 137, Month::May, 16)]
#[case(2024, 138, Month::May, 17)]
#[case(2024, 139, Month::May, 18)]
#[case(2024, 140, Month::May, 19)]
#[case(2024, 141, Month::May, 20)]
#[case(2024, 142, Month::May, 21)]
#[case(2024, 143, Month::May, 22)]
#[case(2024, 144, Month::May, 23)]
#[case(2024, 145, Month::May, 24)]
#[case(2024, 146, Month::May, 25)]
#[case(2024, 147, Month::May, 26)]
#[case(2024, 148, Month::May, 27)]
#[case(2024, 149, Month::May, 28)]
#[case(2024, 150, Month::May, 29)]
#[case(2024, 151, Month::May, 30)]
#[case(2024, 152, Month::May, 31)]
#[case(2024, 153, Month::June, 1)]
#[case(2024, 154, Month::June, 2)]
#[case(2024, 155, Month::June, 3)]
#[case(2024, 156, Month::June, 4)]
#[case(2024, 157, Month::June, 5)]
#[case(2024, 158, Month::June, 6)]
#[case(2024, 159, Month::June, 7)]
#[case(2024, 160, Month::June, 8)]
#[case(2024, 161, Month::June, 9)]
#[case(2024, 162, Month::June, 10)]
#[case(2024, 163, Month::June, 11)]
#[case(2024, 164, Month::June, 12)]
#[case(2024, 165, Month::June, 13)]
#[case(2024, 166, Month::June, 14)]
#[case(2024, 167, Month::June, 15)]
#[case(2024, 168, Month::June, 16)]
#[case(2024, 169, Month::June, 17)]
#[case(2024, 170, Month::June, 18)]
#[case(2024, 171, Month::June, 19)]
#[case(2024, 172, Month::June, 20)]
#[case(2024, 173, Month::June, 21)]
#[case(2024, 174, Month::June, 22)]
#[case(2024, 175, Month::June, 23)]
#[case(2024, 176, Month::June, 24)]
#[case(2024, 177, Month::June, 25)]
#[case(2024, 178, Month::June, 26)]
#[case(2024, 179, Month::June, 27)]
#[case(2024, 180, Month::June, 28)]
#[case(2024, 181, Month::June, 29)]
#[case(2024, 182, Month::June, 30)]
#[case(2024, 183, Month::July, 1)]
#[case(2024, 184, Month::July, 2)]
#[case(2024, 185, Month::July, 3)]
#[case(2024, 186, Month::July, 4)]
#[case(2024, 187, Month::July, 5)]
#[case(2024, 188, Month::July, 6)]
#[case(2024, 189, Month::July, 7)]
#[case(2024, 190, Month::July, 8)]
#[case(2024, 191, Month::July, 9)]
#[case(2024, 192, Month::July, 10)]
#[case(2024, 193, Month::July, 11)]
#[case(2024, 194, Month::July, 12)]
#[case(2024, 195, Month::July, 13)]
#[case(2024, 196, Month::July, 14)]
#[case(2024, 197, Month::July, 15)]
#[case(2024, 198, Month::July, 16)]
#[case(2024, 199, Month::July, 17)]
#[case(2024, 200, Month::July, 18)]
#[case(2024, 201, Month::July, 19)]
#[case(2024, 202, Month::July, 20)]
#[case(2024, 203, Month::July, 21)]
#[case(2024, 204, Month::July, 22)]
#[case(2024, 205, Month::July, 23)]
#[case(2024, 206, Month::July, 24)]
#[case(2024, 207, Month::July, 25)]
#[case(2024, 208, Month::July, 26)]
#[case(2024, 209, Month::July, 27)]
#[case(2024, 210, Month::July, 28)]
#[case(2024, 211, Month::July, 29)]
#[case(2024, 212, Month::July, 30)]
#[case(2024, 213, Month::July, 31)]
#[case(2024, 214, Month::August, 1)]
#[case(2024, 215, Month::August, 2)]
#[case(2024, 216, Month::August, 3)]
#[case(2024, 217, Month::August, 4)]
#[case(2024, 218, Month::August, 5)]
#[case(2024, 219, Month::August, 6)]
#[case(2024, 220, Month::August, 7)]
#[case(2024, 221, Month::August, 8)]
#[case(2024, 222, Month::August, 9)]
#[case(2024, 223, Month::August, 10)]
#[case(2024, 224, Month::August, 11)]
#[case(2024, 225, Month::August, 12)]
#[case(2024, 226, Month::August, 13)]
#[case(2024, 227, Month::August, 14)]
#[case(2024, 228, Month::August, 15)]
#[case(2024, 229, Month::August, 16)]
#[case(2024, 230, Month::August, 17)]
#[case(2024, 231, Month::August, 18)]
#[case(2024, 232, Month::August, 19)]
#[case(2024, 233, Month::August, 20)]
#[case(2024, 234, Month::August, 21)]
#[case(2024, 235, Month::August, 22)]
#[case(2024, 236, Month::August, 23)]
#[case(2024, 237, Month::August, 24)]
#[case(2024, 238, Month::August, 25)]
#[case(2024, 239, Month::August, 26)]
#[case(2024, 240, Month::August, 27)]
#[case(2024, 241, Month::August, 28)]
#[case(2024, 242, Month::August, 29)]
#[case(2024, 243, Month::August, 30)]
#[case(2024, 244, Month::August, 31)]
#[case(2024, 245, Month::September, 1)]
#[case(2024, 246, Month::September, 2)]
#[case(2024, 247, Month::September, 3)]
#[case(2024, 248, Month::September, 4)]
#[case(2024, 249, Month::September, 5)]
#[case(2024, 250, Month::September, 6)]
#[case(2024, 251, Month::September, 7)]
#[case(2024, 252, Month::September, 8)]
#[case(2024, 253, Month::September, 9)]
#[case(2024, 254, Month::September, 10)]
#[case(2024, 255, Month::September, 11)]
#[case(2024, 256, Month::September, 12)]
#[case(2024, 257, Month::September, 13)]
#[case(2024, 258, Month::September, 14)]
#[case(2024, 259, Month::September, 15)]
#[case(2024, 260, Month::September, 16)]
#[case(2024, 261, Month::September, 17)]
#[case(2024, 262, Month::September, 18)]
#[case(2024, 263, Month::September, 19)]
#[case(2024, 264, Month::September, 20)]
#[case(2024, 265, Month::September, 21)]
#[case(2024, 266, Month::September, 22)]
#[case(2024, 267, Month::September, 23)]
#[case(2024, 268, Month::September, 24)]
#[case(2024, 269, Month::September, 25)]
#[case(2024, 270, Month::September, 26)]
#[case(2024, 271, Month::September, 27)]
#[case(2024, 272, Month::September, 28)]
#[case(2024, 273, Month::September, 29)]
#[case(2024, 274, Month::September, 30)]
#[case(2024, 275, Month::October, 1)]
#[case(2024, 276, Month::October, 2)]
#[case(2024, 277, Month::October, 3)]
#[case(2024, 278, Month::October, 4)]
#[case(2024, 279, Month::October, 5)]
#[case(2024, 280, Month::October, 6)]
#[case(2024, 281, Month::October, 7)]
#[case(2024, 282, Month::October, 8)]
#[case(2024, 283, Month::October, 9)]
#[case(2024, 284, Month::October, 10)]
#[case(2024, 285, Month::October, 11)]
#[case(2024, 286, Month::October, 12)]
#[case(2024, 287, Month::October, 13)]
#[case(2024, 288, Month::October, 14)]
#[case(2024, 289, Month::October, 15)]
#[case(2024, 290, Month::October, 16)]
#[case(2024, 291, Month::October, 17)]
#[case(2024, 292, Month::October, 18)]
#[case(2024, 293, Month::October, 19)]
#[case(2024, 294, Month::October, 20)]
#[case(2024, 295, Month::October, 21)]
#[case(2024, 296, Month::October, 22)]
#[case(2024, 297, Month::October, 23)]
#[case(2024, 298, Month::October, 24)]
#[case(2024, 299, Month::October, 25)]
#[case(2024, 300, Month::October, 26)]
#[case(2024, 301, Month::October, 27)]
#[case(2024, 302, Month::October, 28)]
#[case(2024, 303, Month::October, 29)]
#[case(2024, 304, Month::October, 30)]
#[case(2024, 305, Month::October, 31)]
#[case(2024, 306, Month::November, 1)]
#[case(2024, 307, Month::November, 2)]
#[case(2024, 308, Month::November, 3)]
#[case(2024, 309, Month::November, 4)]
#[case(2024, 310, Month::November, 5)]
#[case(2024, 311, Month::November, 6)]
#[case(2024, 312, Month::November, 7)]
#[case(2024, 313, Month::November, 8)]
#[case(2024, 314, Month::November, 9)]
#[case(2024, 315, Month::November, 10)]
#[case(2024, 316, Month::November, 11)]
#[case(2024, 317, Month::November, 12)]
#[case(2024, 318, Month::November, 13)]
#[case(2024, 319, Month::November, 14)]
#[case(2024, 320, Month::November, 15)]
#[case(2024, 321, Month::November, 16)]
#[case(2024, 322, Month::November, 17)]
#[case(2024, 323, Month::November, 18)]
#[case(2024, 324, Month::November, 19)]
#[case(2024, 325, Month::November, 20)]
#[case(2024, 326, Month::November, 21)]
#[case(2024, 327, Month::November, 22)]
#[case(2024, 328, Month::November, 23)]
#[case(2024, 329, Month::November, 24)]
#[case(2024, 330, Month::November, 25)]
#[case(2024, 331, Month::November, 26)]
#[case(2024, 332, Month::November, 27)]
#[case(2024, 333, Month::November, 28)]
#[case(2024, 334, Month::November, 29)]
#[case(2024, 335, Month::November, 30)]
#[case(2024, 336, Month::December, 1)]
#[case(2024, 337, Month::December, 2)]
#[case(2024, 338, Month::December, 3)]
#[case(2024, 339, Month::December, 4)]
#[case(2024, 340, Month::December, 5)]
#[case(2024, 341, Month::December, 6)]
#[case(2024, 342, Month::December, 7)]
#[case(2024, 343, Month::December, 8)]
#[case(2024, 344, Month::December, 9)]
#[case(2024, 345, Month::December, 10)]
#[case(2024, 346, Month::December, 11)]
#[case(2024, 347, Month::December, 12)]
#[case(2024, 348, Month::December, 13)]
#[case(2024, 349, Month::December, 14)]
#[case(2024, 350, Month::December, 15)]
#[case(2024, 351, Month::December, 16)]
#[case(2024, 352, Month::December, 17)]
#[case(2024, 353, Month::December, 18)]
#[case(2024, 354, Month::December, 19)]
#[case(2024, 355, Month::December, 20)]
#[case(2024, 356, Month::December, 21)]
#[case(2024, 357, Month::December, 22)]
#[case(2024, 358, Month::December, 23)]
#[case(2024, 359, Month::December, 24)]
#[case(2024, 360, Month::December, 25)]
#[case(2024, 361, Month::December, 26)]
#[case(2024, 362, Month::December, 27)]
#[case(2024, 363, Month::December, 28)]
#[case(2024, 364, Month::December, 29)]
#[case(2024, 365, Month::December, 30)]
#[case(2024, 366, Month::December, 31)]
#[case(1582, 1, Month::January, 1)]
#[case(1582, 2, Month::January, 2)]
#[case(1582, 3, Month::January, 3)]
#[case(1582, 4, Month::January, 4)]
#[case(1582, 5, Month::January, 5)]
#[case(1582, 6, Month::January, 6)]
#[case(1582, 7, Month::January, 7)]
#[case(1582, 8, Month::January, 8)]
#[case(1582, 9, Month::January, 9)]
#[case(1582, 10, Month::January, 10)]
#[case(1582, 11, Month::January, 11)]
#[case(1582, 12, Month::January, 12)]
#[case(1582, 13, Month::January, 13)]
#[case(1582, 14, Month::January, 14)]
#[case(1582, 15, Month::January, 15)]
#[case(1582, 16, Month::January, 16)]
#[case(1582, 17, Month::January, 17)]
#[case(1582, 18, Month::January, 18)]
#[case(1582, 19, Month::January, 19)]
#[case(1582, 20, Month::January, 20)]
#[case(1582, 21, Month::January, 21)]
#[case(1582, 22, Month::January, 22)]
#[case(1582, 23, Month::January, 23)]
#[case(1582, 24, Month::January, 24)]
#[case(1582, 25, Month::January, 25)]
#[case(1582, 26, Month::January, 26)]
#[case(1582, 27, Month::January, 27)]
#[case(1582, 28, Month::January, 28)]
#[case(1582, 29, Month::January, 29)]
#[case(1582, 30, Month::January, 30)]
#[case(1582, 31, Month::January, 31)]
#[case(1582, 32, Month::February, 1)]
#[case(1582, 33, Month::February, 2)]
#[case(1582, 34, Month::February, 3)]
#[case(1582, 35, Month::February, 4)]
#[case(1582, 36, Month::February, 5)]
#[case(1582, 37, Month::February, 6)]
#[case(1582, 38, Month::February, 7)]
#[case(1582, 39, Month::February, 8)]
#[case(1582, 40, Month::February, 9)]
#[case(1582, 41, Month::February, 10)]
#[case(1582, 42, Month::February, 11)]
#[case(1582, 43, Month::February, 12)]
#[case(1582, 44, Month::February, 13)]
#[case(1582, 45, Month::February, 14)]
#[case(1582, 46, Month::February, 15)]
#[case(1582, 47, Month::February, 16)]
#[case(1582, 48, Month::February, 17)]
#[case(1582, 49, Month::February, 18)]
#[case(1582, 50, Month::February, 19)]
#[case(1582, 51, Month::February, 20)]
#[case(1582, 52, Month::February, 21)]
#[case(1582, 53, Month::February, 22)]
#[case(1582, 54, Month::February, 23)]
#[case(1582, 55, Month::February, 24)]
#[case(1582, 56, Month::February, 25)]
#[case(1582, 57, Month::February, 26)]
#[case(1582, 58, Month::February, 27)]
#[case(1582, 59, Month::February, 28)]
#[case(1582, 60, Month::March, 1)]
#[case(1582, 61, Month::March, 2)]
#[case(1582, 62, Month::March, 3)]
#[case(1582, 63, Month::March, 4)]
#[case(1582, 64, Month::March, 5)]
#[case(1582, 65, Month::March, 6)]
#[case(1582, 66, Month::March, 7)]
#[case(1582, 67, Month::March, 8)]
#[case(1582, 68, Month::March, 9)]
#[case(1582, 69, Month::March, 10)]
#[case(1582, 70, Month::March, 11)]
#[case(1582, 71, Month::March, 12)]
#[case(1582, 72, Month::March, 13)]
#[case(1582, 73, Month::March, 14)]
#[case(1582, 74, Month::March, 15)]
#[case(1582, 75, Month::March, 16)]
#[case(1582, 76, Month::March, 17)]
#[case(1582, 77, Month::March, 18)]
#[case(1582, 78, Month::March, 19)]
#[case(1582, 79, Month::March, 20)]
#[case(1582, 80, Month::March, 21)]
#[case(1582, 81, Month::March, 22)]
#[case(1582, 82, Month::March, 23)]
#[case(1582, 83, Month::March, 24)]
#[case(1582, 84, Month::March, 25)]
#[case(1582, 85, Month::March, 26)]
#[case(1582, 86, Month::March, 27)]
#[case(1582, 87, Month::March, 28)]
#[case(1582, 88, Month::March, 29)]
#[case(1582, 89, Month::March, 30)]
#[case(1582, 90, Month::March, 31)]
#[case(1582, 91, Month::April, 1)]
#[case(1582, 92, Month::April, 2)]
#[case(1582, 93, Month::April, 3)]
#[case(1582, 94, Month::April, 4)]
#[case(1582, 95, Month::April, 5)]
#[case(1582, 96, Month::April, 6)]
#[case(1582, 97, Month::April, 7)]
#[case(1582, 98, Month::April, 8)]
#[case(1582, 99, Month::April, 9)]
#[case(1582, 100, Month::April, 10)]
#[case(1582, 101, Month::April, 11)]
#[case(1582, 102, Month::April, 12)]
#[case(1582, 103, Month::April, 13)]
#[case(1582, 104, Month::April, 14)]
#[case(1582, 105, Month::April, 15)]
#[case(1582, 106, Month::April, 16)]
#[case(1582, 107, Month::April, 17)]
#[case(1582, 108, Month::April, 18)]
#[case(1582, 109, Month::April, 19)]
#[case(1582, 110, Month::April, 20)]
#[case(1582, 111, Month::April, 21)]
#[case(1582, 112, Month::April, 22)]
#[case(1582, 113, Month::April, 23)]
#[case(1582, 114, Month::April, 24)]
#[case(1582, 115, Month::April, 25)]
#[case(1582, 116, Month::April, 26)]
#[case(1582, 117, Month::April, 27)]
#[case(1582, 118, Month::April, 28)]
#[case(1582, 119, Month::April, 29)]
#[case(1582, 120, Month::April, 30)]
#[case(1582, 121, Month::May, 1)]
#[case(1582, 122, Month::May, 2)]
#[case(1582, 123, Month::May, 3)]
#[case(1582, 124, Month::May, 4)]
#[case(1582, 125, Month::May, 5)]
#[case(1582, 126, Month::May, 6)]
#[case(1582, 127, Month::May, 7)]
#[case(1582, 128, Month::May, 8)]
#[case(1582, 129, Month::May, 9)]
#[case(1582, 130, Month::May, 10)]
#[case(1582, 131, Month::May, 11)]
#[case(1582, 132, Month::May, 12)]
#[case(1582, 133, Month::May, 13)]
#[case(1582, 134, Month::May, 14)]
#[case(1582, 135, Month::May, 15)]
#[case(1582, 136, Month::May, 16)]
#[case(1582, 137, Month::May, 17)]
#[case(1582, 138, Month::May, 18)]
#[case(1582, 139, Month::May, 19)]
#[case(1582, 140, Month::May, 20)]
#[case(1582, 141, Month::May, 21)]
#[case(1582, 142, Month::May, 22)]
#[case(1582, 143, Month::May, 23)]
#[case(1582, 144, Month::May, 24)]
#[case(1582, 145, Month::May, 25)]
#[case(1582, 146, Month::May, 26)]
#[case(1582, 147, Month::May, 27)]
#[case(1582, 148, Month::May, 28)]
#[case(1582, 149, Month::May, 29)]
#[case(1582, 150, Month::May, 30)]
#[case(1582, 151, Month::May, 31)]
#[case(1582, 152, Month::June, 1)]
#[case(1582, 153, Month::June, 2)]
#[case(1582, 154, Month::June, 3)]
#[case(1582, 155, Month::June, 4)]
#[case(1582, 156, Month::June, 5)]
#[case(1582, 157, Month::June, 6)]
#[case(1582, 158, Month::June, 7)]
#[case(1582, 159, Month::June, 8)]
#[case(1582, 160, Month::June, 9)]
#[case(1582, 161, Month::June, 10)]
#[case(1582, 162, Month::June, 11)]
#[case(1582, 163, Month::June, 12)]
#[case(1582, 164, Month::June, 13)]
#[case(1582, 165, Month::June, 14)]
#[case(1582, 166, Month::June, 15)]
#[case(1582, 167, Month::June, 16)]
#[case(1582, 168, Month::June, 17)]
#[case(1582, 169, Month::June, 18)]
#[case(1582, 170, Month::June, 19)]
#[case(1582, 171, Month::June, 20)]
#[case(1582, 172, Month::June, 21)]
#[case(1582, 173, Month::June, 22)]
#[case(1582, 174, Month::June, 23)]
#[case(1582, 175, Month::June, 24)]
#[case(1582, 176, Month::June, 25)]
#[case(1582, 177, Month::June, 26)]
#[case(1582, 178, Month::June, 27)]
#[case(1582, 179, Month::June, 28)]
#[case(1582, 180, Month::June, 29)]
#[case(1582, 181, Month::June, 30)]
#[case(1582, 182, Month::July, 1)]
#[case(1582, 183, Month::July, 2)]
#[case(1582, 184, Month::July, 3)]
#[case(1582, 185, Month::July, 4)]
#[case(1582, 186, Month::July, 5)]
#[case(1582, 187, Month::July, 6)]
#[case(1582, 188, Month::July, 7)]
#[case(1582, 189, Month::July, 8)]
#[case(1582, 190, Month::July, 9)]
#[case(1582, 191, Month::July, 10)]
#[case(1582, 192, Month::July, 11)]
#[case(1582, 193, Month::July, 12)]
#[case(1582, 194, Month::July, 13)]
#[case(1582, 195, Month::July, 14)]
#[case(1582, 196, Month::July, 15)]
#[case(1582, 197, Month::July, 16)]
#[case(1582, 198, Month::July, 17)]
#[case(1582, 199, Month::July, 18)]
#[case(1582, 200, Month::July, 19)]
#[case(1582, 201, Month::July, 20)]
#[case(1582, 202, Month::July, 21)]
#[case(1582, 203, Month::July, 22)]
#[case(1582, 204, Month::July, 23)]
#[case(1582, 205, Month::July, 24)]
#[case(1582, 206, Month::July, 25)]
#[case(1582, 207, Month::July, 26)]
#[case(1582, 208, Month::July, 27)]
#[case(1582, 209, Month::July, 28)]
#[case(1582, 210, Month::July, 29)]
#[case(1582, 211, Month::July, 30)]
#[case(1582, 212, Month::July, 31)]
#[case(1582, 213, Month::August, 1)]
#[case(1582, 214, Month::August, 2)]
#[case(1582, 215, Month::August, 3)]
#[case(1582, 216, Month::August, 4)]
#[case(1582, 217, Month::August, 5)]
#[case(1582, 218, Month::August, 6)]
#[case(1582, 219, Month::August, 7)]
#[case(1582, 220, Month::August, 8)]
#[case(1582, 221, Month::August, 9)]
#[case(1582, 222, Month::August, 10)]
#[case(1582, 223, Month::August, 11)]
#[case(1582, 224, Month::August, 12)]
#[case(1582, 225, Month::August, 13)]
#[case(1582, 226, Month::August, 14)]
#[case(1582, 227, Month::August, 15)]
#[case(1582, 228, Month::August, 16)]
#[case(1582, 229, Month::August, 17)]
#[case(1582, 230, Month::August, 18)]
#[case(1582, 231, Month::August, 19)]
#[case(1582, 232, Month::August, 20)]
#[case(1582, 233, Month::August, 21)]
#[case(1582, 234, Month::August, 22)]
#[case(1582, 235, Month::August, 23)]
#[case(1582, 236, Month::August, 24)]
#[case(1582, 237, Month::August, 25)]
#[case(1582, 238, Month::August, 26)]
#[case(1582, 239, Month::August, 27)]
#[case(1582, 240, Month::August, 28)]
#[case(1582, 241, Month::August, 29)]
#[case(1582, 242, Month::August, 30)]
#[case(1582, 243, Month::August, 31)]
#[case(1582, 244, Month::September, 1)]
#[case(1582, 245, Month::September, 2)]
#[case(1582, 246, Month::September, 3)]
#[case(1582, 247, Month::September, 4)]
#[case(1582, 248, Month::September, 5)]
#[case(1582, 249, Month::September, 6)]
#[case(1582, 250, Month::September, 7)]
#[case(1582, 251, Month::September, 8)]
#[case(1582, 252, Month::September, 9)]
#[case(1582, 253, Month::September, 10)]
#[case(1582, 254, Month::September, 11)]
#[case(1582, 255, Month::September, 12)]
#[case(1582, 256, Month::September, 13)]
#[case(1582, 257, Month::September, 14)]
#[case(1582, 258, Month::September, 15)]
#[case(1582, 259, Month::September, 16)]
#[case(1582, 260, Month::September, 17)]
#[case(1582, 261, Month::September, 18)]
#[case(1582, 262, Month::September, 19)]
#[case(1582, 263, Month::September, 20)]
#[case(1582, 264, Month::September, 21)]
#[case(1582, 265, Month::September, 22)]
#[case(1582, 266, Month::September, 23)]
#[case(1582, 267, Month::September, 24)]
#[case(1582, 268, Month::September, 25)]
#[case(1582, 269, Month::September, 26)]
#[case(1582, 270, Month::September, 27)]
#[case(1582, 271, Month::September, 28)]
#[case(1582, 272, Month::September, 29)]
#[case(1582, 273, Month::September, 30)]
#[case(1582, 274, Month::October, 1)]
#[case(1582, 275, Month::October, 2)]
#[case(1582, 276, Month::October, 3)]
#[case(1582, 277, Month::October, 4)]
#[case(1582, 278, Month::October, 15)]
#[case(1582, 279, Month::October, 16)]
#[case(1582, 280, Month::October, 17)]
#[case(1582, 281, Month::October, 18)]
#[case(1582, 282, Month::October, 19)]
#[case(1582, 283, Month::October, 20)]
#[case(1582, 284, Month::October, 21)]
#[case(1582, 285, Month::October, 22)]
#[case(1582, 286, Month::October, 23)]
#[case(1582, 287, Month::October, 24)]
#[case(1582, 288, Month::October, 25)]
#[case(1582, 289, Month::October, 26)]
#[case(1582, 290, Month::October, 27)]
#[case(1582, 291, Month::October, 28)]
#[case(1582, 292, Month::October, 29)]
#[case(1582, 293, Month::October, 30)]
#[case(1582, 294, Month::October, 31)]
#[case(1582, 295, Month::November, 1)]
#[case(1582, 296, Month::November, 2)]
#[case(1582, 297, Month::November, 3)]
#[case(1582, 298, Month::November, 4)]
#[case(1582, 299, Month::November, 5)]
#[case(1582, 300, Month::November, 6)]
#[case(1582, 301, Month::November, 7)]
#[case(1582, 302, Month::November, 8)]
#[case(1582, 303, Month::November, 9)]
#[case(1582, 304, Month::November, 10)]
#[case(1582, 305, Month::November, 11)]
#[case(1582, 306, Month::November, 12)]
#[case(1582, 307, Month::November, 13)]
#[case(1582, 308, Month::November, 14)]
#[case(1582, 309, Month::November, 15)]
#[case(1582, 310, Month::November, 16)]
#[case(1582, 311, Month::November, 17)]
#[case(1582, 312, Month::November, 18)]
#[case(1582, 313, Month::November, 19)]
#[case(1582, 314, Month::November, 20)]
#[case(1582, 315, Month::November, 21)]
#[case(1582, 316, Month::November, 22)]
#[case(1582, 317, Month::November, 23)]
#[case(1582, 318, Month::November, 24)]
#[case(1582, 319, Month::November, 25)]
#[case(1582, 320, Month::November, 26)]
#[case(1582, 321, Month::November, 27)]
#[case(1582, 322, Month::November, 28)]
#[case(1582, 323, Month::November, 29)]
#[case(1582, 324, Month::November, 30)]
#[case(1582, 325, Month::December, 1)]
#[case(1582, 326, Month::December, 2)]
#[case(1582, 327, Month::December, 3)]
#[case(1582, 328, Month::December, 4)]
#[case(1582, 329, Month::December, 5)]
#[case(1582, 330, Month::December, 6)]
#[case(1582, 331, Month::December, 7)]
#[case(1582, 332, Month::December, 8)]
#[case(1582, 333, Month::December, 9)]
#[case(1582, 334, Month::December, 10)]
#[case(1582, 335, Month::December, 11)]
#[case(1582, 336, Month::December, 12)]
#[case(1582, 337, Month::December, 13)]
#[case(1582, 338, Month::December, 14)]
#[case(1582, 339, Month::December, 15)]
#[case(1582, 340, Month::December, 16)]
#[case(1582, 341, Month::December, 17)]
#[case(1582, 342, Month::December, 18)]
#[case(1582, 343, Month::December, 19)]
#[case(1582, 344, Month::December, 20)]
#[case(1582, 345, Month::December, 21)]
#[case(1582, 346, Month::December, 22)]
#[case(1582, 347, Month::December, 23)]
#[case(1582, 348, Month::December, 24)]
#[case(1582, 349, Month::December, 25)]
#[case(1582, 350, Month::December, 26)]
#[case(1582, 351, Month::December, 27)]
#[case(1582, 352, Month::December, 28)]
#[case(1582, 353, Month::December, 29)]
#[case(1582, 354, Month::December, 30)]
#[case(1582, 355, Month::December, 31)]
fn at_ordinal_date(
    #[case] year: i32,
    #[case] ordinal: u32,
    #[case] month: Month,
    #[case] day: u32,
) {
    let date = Calendar::REFORM1582.at_ordinal_date(year, ordinal).unwrap();
    assert_eq!(date.year(), year);
    assert_eq!(date.ordinal(), ordinal);
    assert_eq!(date.month(), month);
    assert_eq!(date.day(), day);
}

#[rstest]
#[case(2023, 0, 365)]
#[case(2023, 366, 365)]
#[case(2023, 1000, 365)]
#[case(2023, 2147483647, 365)]
#[case(2024, 0, 366)]
#[case(2024, 367, 366)]
#[case(2024, 1000, 366)]
#[case(2024, 2147483647, 366)]
#[case(1582, 0, 355)]
#[case(1582, 356, 355)]
#[case(1582, 1000, 355)]
#[case(1582, 2147483647, 355)]
fn at_ordinal_date_err(#[case] year: i32, #[case] ordinal: u32, #[case] max_ordinal: u32) {
    let r = Calendar::REFORM1582.at_ordinal_date(year, ordinal);
    assert_eq!(
        r,
        Err(DateError::OrdinalOutOfRange {
            year,
            ordinal,
            max_ordinal
        })
    );
    assert_eq!(
        r.unwrap_err().to_string(),
        format!("day-of-year ordinal {ordinal} is outside of valid range 1-{max_ordinal} for year {year}")
    );
}