datarust 0.6.1

Scikit-learn-style preprocessing and classical ML in Rust
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
//! Diabetes regression dataset.
//!
//! 442 samples, 10 features (age, sex, BMI, blood pressure, 6 blood serum
//! measurements), and a quantitative measure of disease progression after one
//! year (the regression target). Features have been mean-centered and scaled
//! to unit sum of squares (as in sklearn).
//!
//! ```rust
//! use datarust::datasets::diabetes;
//!
//! let data = diabetes::load();
//! assert_eq!(data.n_samples(), 442);
//! assert_eq!(data.n_features(), 10);
//! ```

use super::Dataset;

const FEATURE_NAMES: [&str; 10] = [
    "age", "sex", "bmi", "bp", "s1", "s2", "s3", "s4", "s5", "s6",
];

const TARGET_NAMES: [&str; 0] = [];

const DIABETES_DATA: [[f64; 10]; 442] = [
    [59.0, 2.0, 32.1, 101.0, 157.0, 93.2, 38.0, 4.0, 4.8598, 87.0],
    [48.0, 1.0, 21.6, 87.0, 183.0, 103.2, 70.0, 3.0, 3.8918, 69.0],
    [72.0, 2.0, 30.5, 93.0, 156.0, 93.6, 41.0, 4.0, 4.6728, 85.0],
    [24.0, 1.0, 25.3, 84.0, 198.0, 131.4, 40.0, 5.0, 4.8903, 89.0],
    [
        50.0, 1.0, 23.0, 101.0, 192.0, 125.4, 52.0, 4.0, 4.2905, 80.0,
    ],
    [23.0, 1.0, 22.6, 89.0, 139.0, 64.8, 61.0, 2.0, 4.1897, 68.0],
    [36.0, 2.0, 22.0, 90.0, 160.0, 99.6, 50.0, 3.0, 3.9512, 82.0],
    [
        66.0, 2.0, 26.2, 114.0, 255.0, 185.0, 56.0, 4.55, 4.2485, 92.0,
    ],
    [60.0, 2.0, 32.1, 83.0, 179.0, 119.4, 42.0, 4.0, 4.4773, 94.0],
    [29.0, 1.0, 30.0, 85.0, 180.0, 93.4, 43.0, 4.0, 5.3845, 88.0],
    [22.0, 1.0, 18.6, 97.0, 114.0, 57.6, 46.0, 2.0, 3.9512, 83.0],
    [56.0, 2.0, 28.0, 85.0, 184.0, 144.8, 32.0, 6.0, 3.5835, 77.0],
    [53.0, 1.0, 23.7, 92.0, 186.0, 109.2, 62.0, 3.0, 4.3041, 81.0],
    [50.0, 2.0, 26.2, 97.0, 186.0, 105.4, 49.0, 4.0, 5.0626, 88.0],
    [61.0, 1.0, 24.0, 91.0, 202.0, 115.4, 72.0, 3.0, 4.2905, 73.0],
    [34.0, 2.0, 24.7, 118.0, 254.0, 184.2, 39.0, 7.0, 5.037, 81.0],
    [
        47.0, 1.0, 30.3, 109.0, 207.0, 100.2, 70.0, 3.0, 5.2149, 98.0,
    ],
    [
        68.0, 2.0, 27.5, 111.0, 214.0, 147.0, 39.0, 5.0, 4.9416, 91.0,
    ],
    [38.0, 1.0, 25.4, 84.0, 162.0, 103.0, 42.0, 4.0, 4.4427, 87.0],
    [41.0, 1.0, 24.7, 83.0, 187.0, 108.2, 60.0, 3.0, 4.5433, 78.0],
    [35.0, 1.0, 21.1, 82.0, 156.0, 87.8, 50.0, 3.0, 4.5109, 95.0],
    [25.0, 2.0, 24.3, 95.0, 162.0, 98.6, 54.0, 3.0, 3.8501, 87.0],
    [25.0, 1.0, 26.0, 92.0, 187.0, 120.4, 56.0, 3.0, 3.9703, 88.0],
    [
        61.0, 2.0, 32.0, 103.67, 210.0, 85.2, 35.0, 6.0, 6.107, 124.0,
    ],
    [31.0, 1.0, 29.7, 88.0, 167.0, 103.4, 48.0, 4.0, 4.3567, 78.0],
    [30.0, 2.0, 25.2, 83.0, 178.0, 118.4, 34.0, 5.0, 4.852, 83.0],
    [19.0, 1.0, 19.2, 87.0, 124.0, 54.0, 57.0, 2.0, 4.1744, 90.0],
    [42.0, 1.0, 31.9, 83.0, 158.0, 87.6, 53.0, 3.0, 4.4659, 101.0],
    [63.0, 1.0, 24.4, 73.0, 160.0, 91.4, 48.0, 3.0, 4.6347, 78.0],
    [
        67.0, 2.0, 25.8, 113.0, 158.0, 54.2, 64.0, 2.0, 5.2933, 104.0,
    ],
    [32.0, 1.0, 30.5, 89.0, 182.0, 110.6, 56.0, 3.0, 4.3438, 89.0],
    [42.0, 1.0, 20.3, 71.0, 161.0, 81.2, 66.0, 2.0, 4.2341, 81.0],
    [
        58.0, 2.0, 38.0, 103.0, 150.0, 107.2, 22.0, 7.0, 4.6444, 98.0,
    ],
    [57.0, 1.0, 21.7, 94.0, 157.0, 58.0, 82.0, 2.0, 4.4427, 92.0],
    [53.0, 1.0, 20.5, 78.0, 147.0, 84.2, 52.0, 3.0, 3.989, 75.0],
    [
        62.0, 2.0, 23.5, 80.33, 225.0, 112.8, 86.0, 2.62, 4.8752, 96.0,
    ],
    [52.0, 1.0, 28.5, 110.0, 195.0, 97.2, 60.0, 3.0, 5.2417, 85.0],
    [46.0, 1.0, 27.4, 78.0, 171.0, 88.0, 58.0, 3.0, 4.8283, 90.0],
    [48.0, 2.0, 33.0, 123.0, 253.0, 163.6, 44.0, 6.0, 5.425, 97.0],
    [48.0, 2.0, 27.7, 73.0, 191.0, 119.4, 46.0, 4.0, 4.852, 92.0],
    [
        50.0, 2.0, 25.6, 101.0, 229.0, 162.2, 43.0, 5.0, 4.7791, 114.0,
    ],
    [21.0, 1.0, 20.1, 63.0, 135.0, 69.0, 54.0, 3.0, 4.0943, 89.0],
    [
        32.0, 2.0, 25.4, 90.33, 153.0, 100.4, 34.0, 4.5, 4.5326, 83.0,
    ],
    [
        54.0, 1.0, 24.2, 74.0, 204.0, 109.0, 82.0, 2.0, 4.1744, 109.0,
    ],
    [61.0, 2.0, 32.7, 97.0, 177.0, 118.4, 29.0, 6.0, 4.9972, 87.0],
    [
        56.0, 2.0, 23.1, 104.0, 181.0, 116.4, 47.0, 4.0, 4.4773, 79.0,
    ],
    [33.0, 1.0, 25.3, 85.0, 155.0, 85.0, 51.0, 3.0, 4.5539, 70.0],
    [27.0, 1.0, 19.6, 78.0, 128.0, 68.0, 43.0, 3.0, 4.4427, 71.0],
    [67.0, 2.0, 22.5, 98.0, 191.0, 119.2, 61.0, 3.0, 3.989, 86.0],
    [37.0, 2.0, 27.7, 93.0, 180.0, 119.4, 30.0, 6.0, 5.0304, 88.0],
    [58.0, 1.0, 25.7, 99.0, 157.0, 91.6, 49.0, 3.0, 4.4067, 93.0],
    [65.0, 2.0, 27.9, 103.0, 159.0, 96.8, 42.0, 4.0, 4.6151, 86.0],
    [34.0, 1.0, 25.5, 93.0, 218.0, 144.0, 57.0, 4.0, 4.4427, 88.0],
    [
        46.0, 1.0, 24.9, 115.0, 198.0, 129.6, 54.0, 4.0, 4.2767, 103.0,
    ],
    [35.0, 1.0, 28.7, 97.0, 204.0, 126.8, 64.0, 3.0, 4.1897, 93.0],
    [37.0, 1.0, 21.8, 84.0, 184.0, 101.0, 73.0, 3.0, 3.912, 93.0],
    [37.0, 1.0, 30.2, 87.0, 166.0, 96.0, 40.0, 4.15, 5.0106, 87.0],
    [41.0, 1.0, 20.5, 80.0, 124.0, 48.8, 64.0, 2.0, 4.0254, 75.0],
    [60.0, 1.0, 20.4, 105.0, 198.0, 78.4, 99.0, 2.0, 4.6347, 79.0],
    [66.0, 2.0, 24.0, 98.0, 236.0, 146.4, 58.0, 4.0, 5.0626, 96.0],
    [29.0, 1.0, 26.0, 83.0, 141.0, 65.2, 64.0, 2.0, 4.0775, 83.0],
    [37.0, 2.0, 26.8, 79.0, 157.0, 98.0, 28.0, 6.0, 5.0434, 96.0],
    [41.0, 2.0, 25.7, 83.0, 181.0, 106.6, 66.0, 3.0, 3.7377, 85.0],
    [39.0, 1.0, 22.9, 77.0, 204.0, 143.2, 46.0, 4.0, 4.3041, 74.0],
    [67.0, 2.0, 24.0, 83.0, 143.0, 77.2, 49.0, 3.0, 4.4308, 94.0],
    [
        36.0, 2.0, 24.1, 112.0, 193.0, 125.0, 35.0, 6.0, 5.1059, 95.0,
    ],
    [46.0, 2.0, 24.7, 85.0, 174.0, 123.2, 30.0, 6.0, 4.6444, 96.0],
    [
        60.0, 2.0, 25.0, 89.67, 185.0, 120.8, 46.0, 4.02, 4.5109, 92.0,
    ],
    [59.0, 2.0, 23.6, 83.0, 165.0, 100.0, 47.0, 4.0, 4.4998, 92.0],
    [53.0, 1.0, 22.1, 93.0, 134.0, 76.2, 46.0, 3.0, 4.0775, 96.0],
    [
        48.0, 1.0, 19.9, 91.0, 189.0, 109.6, 69.0, 3.0, 3.9512, 101.0,
    ],
    [
        48.0, 1.0, 29.5, 131.0, 207.0, 132.2, 47.0, 4.0, 4.9345, 106.0,
    ],
    [66.0, 2.0, 26.0, 91.0, 264.0, 146.6, 65.0, 4.0, 5.5683, 87.0],
    [52.0, 2.0, 24.5, 94.0, 217.0, 149.4, 48.0, 5.0, 4.585, 89.0],
    [
        52.0, 2.0, 26.6, 111.0, 209.0, 126.4, 61.0, 3.0, 4.6821, 109.0,
    ],
    [46.0, 2.0, 23.5, 87.0, 181.0, 114.8, 44.0, 4.0, 4.7095, 98.0],
    [40.0, 2.0, 29.0, 115.0, 97.0, 47.2, 35.0, 2.77, 4.3041, 95.0],
    [22.0, 1.0, 23.0, 73.0, 161.0, 97.8, 54.0, 3.0, 3.8286, 91.0],
    [50.0, 1.0, 21.0, 88.0, 140.0, 71.8, 35.0, 4.0, 5.112, 71.0],
    [20.0, 1.0, 22.9, 87.0, 191.0, 128.2, 53.0, 4.0, 3.8918, 85.0],
    [68.0, 1.0, 27.5, 107.0, 241.0, 149.6, 64.0, 4.0, 4.92, 90.0],
    [52.0, 2.0, 24.3, 86.0, 197.0, 133.6, 44.0, 5.0, 4.5747, 91.0],
    [44.0, 1.0, 23.1, 87.0, 213.0, 126.4, 77.0, 3.0, 3.8712, 72.0],
    [38.0, 1.0, 27.3, 81.0, 146.0, 81.6, 47.0, 3.0, 4.4659, 81.0],
    [
        49.0, 1.0, 22.7, 65.33, 168.0, 96.2, 62.0, 2.71, 3.8918, 60.0,
    ],
    [61.0, 1.0, 33.0, 95.0, 182.0, 114.8, 54.0, 3.0, 4.1897, 74.0],
    [29.0, 2.0, 19.4, 83.0, 152.0, 105.8, 39.0, 4.0, 3.5835, 83.0],
    [61.0, 1.0, 25.8, 98.0, 235.0, 125.8, 76.0, 3.0, 5.112, 82.0],
    [34.0, 2.0, 22.6, 75.0, 166.0, 91.8, 60.0, 3.0, 4.2627, 108.0],
    [36.0, 1.0, 21.9, 89.0, 189.0, 105.2, 68.0, 3.0, 4.3694, 96.0],
    [52.0, 1.0, 24.0, 83.0, 167.0, 86.6, 71.0, 2.0, 3.8501, 94.0],
    [61.0, 1.0, 31.2, 79.0, 235.0, 156.8, 47.0, 5.0, 5.0499, 96.0],
    [
        43.0, 1.0, 26.8, 123.0, 193.0, 102.2, 67.0, 3.0, 4.7791, 94.0,
    ],
    [
        35.0, 1.0, 20.4, 65.0, 187.0, 105.6, 67.0, 2.79, 4.2767, 78.0,
    ],
    [27.0, 1.0, 24.8, 91.0, 189.0, 106.8, 69.0, 3.0, 4.1897, 69.0],
    [29.0, 1.0, 21.0, 71.0, 156.0, 97.0, 38.0, 4.0, 4.654, 90.0],
    [
        64.0, 2.0, 27.3, 109.0, 186.0, 107.6, 38.0, 5.0, 5.3083, 99.0,
    ],
    [
        41.0, 1.0, 34.6, 87.33, 205.0, 142.6, 41.0, 5.0, 4.6728, 110.0,
    ],
    [49.0, 2.0, 25.9, 91.0, 178.0, 106.6, 52.0, 3.0, 4.5747, 75.0],
    [48.0, 1.0, 20.4, 98.0, 209.0, 139.4, 46.0, 5.0, 4.7707, 78.0],
    [53.0, 1.0, 28.0, 88.0, 233.0, 143.8, 58.0, 4.0, 5.0499, 91.0],
    [
        53.0, 2.0, 22.2, 113.0, 197.0, 115.2, 67.0, 3.0, 4.3041, 100.0,
    ],
    [23.0, 1.0, 29.0, 90.0, 216.0, 131.4, 65.0, 3.0, 4.585, 91.0],
    [65.0, 2.0, 30.2, 98.0, 219.0, 160.6, 40.0, 5.0, 4.5218, 84.0],
    [41.0, 1.0, 32.4, 94.0, 171.0, 104.4, 56.0, 3.0, 3.9703, 76.0],
    [55.0, 2.0, 23.4, 83.0, 166.0, 101.6, 46.0, 4.0, 4.5218, 96.0],
    [22.0, 1.0, 19.3, 82.0, 156.0, 93.2, 52.0, 3.0, 3.989, 71.0],
    [
        56.0, 1.0, 31.0, 78.67, 187.0, 141.4, 34.0, 5.5, 4.0604, 90.0,
    ],
    [
        54.0, 2.0, 30.6, 103.33, 144.0, 79.8, 30.0, 4.8, 5.1417, 101.0,
    ],
    [
        59.0, 2.0, 25.5, 95.33, 190.0, 139.4, 35.0, 5.43, 4.3567, 117.0,
    ],
    [60.0, 2.0, 23.4, 88.0, 153.0, 89.8, 58.0, 3.0, 3.2581, 95.0],
    [54.0, 1.0, 26.8, 87.0, 206.0, 122.0, 68.0, 3.0, 4.382, 80.0],
    [25.0, 1.0, 28.3, 87.0, 193.0, 128.0, 49.0, 4.0, 4.382, 92.0],
    [
        54.0, 2.0, 27.7, 113.0, 200.0, 128.4, 37.0, 5.0, 5.1533, 113.0,
    ],
    [
        55.0, 1.0, 36.6, 113.0, 199.0, 94.4, 43.0, 4.63, 5.7301, 97.0,
    ],
    [40.0, 2.0, 26.5, 93.0, 236.0, 147.0, 37.0, 7.0, 5.5607, 92.0],
    [
        62.0, 2.0, 31.8, 115.0, 199.0, 128.6, 44.0, 5.0, 4.8828, 98.0,
    ],
    [
        65.0, 1.0, 24.4, 120.0, 222.0, 135.6, 37.0, 6.0, 5.5094, 124.0,
    ],
    [
        33.0, 2.0, 25.4, 102.0, 206.0, 141.0, 39.0, 5.0, 4.8675, 105.0,
    ],
    [53.0, 1.0, 22.0, 94.0, 175.0, 88.0, 59.0, 3.0, 4.9416, 98.0],
    [35.0, 1.0, 26.8, 98.0, 162.0, 103.6, 45.0, 4.0, 4.2047, 86.0],
    [
        66.0, 1.0, 28.0, 101.0, 195.0, 129.2, 40.0, 5.0, 4.8598, 94.0,
    ],
    [
        62.0, 2.0, 33.9, 101.0, 221.0, 156.4, 35.0, 6.0, 4.9972, 103.0,
    ],
    [
        50.0, 2.0, 29.6, 94.33, 300.0, 242.4, 33.0, 9.09, 4.8122, 109.0,
    ],
    [47.0, 1.0, 28.6, 97.0, 164.0, 90.6, 56.0, 3.0, 4.4659, 88.0],
    [47.0, 2.0, 25.6, 94.0, 165.0, 74.8, 40.0, 4.0, 5.5255, 93.0],
    [24.0, 1.0, 20.7, 87.0, 149.0, 80.6, 61.0, 2.0, 3.6109, 78.0],
    [58.0, 2.0, 26.2, 91.0, 217.0, 124.2, 71.0, 3.0, 4.6913, 68.0],
    [34.0, 1.0, 20.6, 87.0, 185.0, 112.2, 58.0, 3.0, 4.3041, 74.0],
    [
        51.0, 1.0, 27.9, 96.0, 196.0, 122.2, 42.0, 5.0, 5.0689, 120.0,
    ],
    [
        31.0, 2.0, 35.3, 125.0, 187.0, 112.4, 48.0, 4.0, 4.8903, 109.0,
    ],
    [22.0, 1.0, 19.9, 75.0, 175.0, 108.6, 54.0, 3.0, 4.1271, 72.0],
    [53.0, 2.0, 24.4, 92.0, 214.0, 146.0, 50.0, 4.0, 4.4998, 97.0],
    [37.0, 2.0, 21.4, 83.0, 128.0, 69.6, 49.0, 3.0, 3.8501, 84.0],
    [28.0, 1.0, 30.4, 85.0, 198.0, 115.6, 67.0, 3.0, 4.3438, 80.0],
    [47.0, 1.0, 31.6, 84.0, 154.0, 88.0, 30.0, 5.1, 5.1985, 105.0],
    [23.0, 1.0, 18.8, 78.0, 145.0, 72.0, 63.0, 2.0, 3.912, 86.0],
    [
        50.0, 1.0, 31.0, 123.0, 178.0, 105.0, 48.0, 4.0, 4.8283, 88.0,
    ],
    [
        58.0, 2.0, 36.7, 117.0, 166.0, 93.8, 44.0, 4.0, 4.9488, 109.0,
    ],
    [55.0, 1.0, 32.1, 110.0, 164.0, 84.2, 42.0, 4.0, 5.2417, 90.0],
    [
        60.0, 2.0, 27.7, 107.0, 167.0, 114.6, 38.0, 4.0, 4.2767, 95.0,
    ],
    [
        41.0, 1.0, 30.8, 81.0, 214.0, 152.0, 28.0, 7.6, 5.1358, 123.0,
    ],
    [
        60.0, 2.0, 27.5, 106.0, 229.0, 143.8, 51.0, 4.0, 5.1417, 91.0,
    ],
    [40.0, 1.0, 26.9, 92.0, 203.0, 119.8, 70.0, 3.0, 4.1897, 81.0],
    [57.0, 2.0, 30.7, 90.0, 204.0, 147.8, 34.0, 6.0, 4.7095, 93.0],
    [37.0, 1.0, 38.3, 113.0, 165.0, 94.6, 53.0, 3.0, 4.4659, 79.0],
    [40.0, 2.0, 31.9, 95.0, 198.0, 135.6, 38.0, 5.0, 4.804, 93.0],
    [
        33.0, 1.0, 35.0, 89.0, 200.0, 130.4, 42.0, 4.76, 4.9273, 101.0,
    ],
    [32.0, 2.0, 27.8, 89.0, 216.0, 146.2, 55.0, 4.0, 4.3041, 91.0],
    [35.0, 2.0, 25.9, 81.0, 174.0, 102.4, 31.0, 6.0, 5.3132, 82.0],
    [
        55.0, 1.0, 32.9, 102.0, 164.0, 106.2, 41.0, 4.0, 4.4308, 89.0,
    ],
    [49.0, 1.0, 26.0, 93.0, 183.0, 100.2, 64.0, 3.0, 4.5433, 88.0],
    [
        39.0, 2.0, 26.3, 115.0, 218.0, 158.2, 32.0, 7.0, 4.9345, 109.0,
    ],
    [
        60.0, 2.0, 22.3, 113.0, 186.0, 125.8, 46.0, 4.0, 4.2627, 94.0,
    ],
    [67.0, 2.0, 28.3, 93.0, 204.0, 132.2, 49.0, 4.0, 4.7362, 92.0],
    [
        41.0, 2.0, 32.0, 109.0, 251.0, 170.6, 49.0, 5.0, 5.0562, 103.0,
    ],
    [44.0, 1.0, 25.4, 95.0, 162.0, 92.6, 53.0, 3.0, 4.4067, 83.0],
    [
        48.0, 2.0, 23.3, 89.33, 212.0, 142.8, 46.0, 4.61, 4.7536, 98.0,
    ],
    [
        45.0, 1.0, 20.3, 74.33, 190.0, 126.2, 49.0, 3.88, 4.3041, 79.0,
    ],
    [
        47.0, 1.0, 30.4, 120.0, 199.0, 120.0, 46.0, 4.0, 5.1059, 87.0,
    ],
    [46.0, 1.0, 20.6, 73.0, 172.0, 107.0, 51.0, 3.0, 4.2485, 80.0],
    [
        36.0, 2.0, 32.3, 115.0, 286.0, 199.4, 39.0, 7.0, 5.4723, 112.0,
    ],
    [34.0, 1.0, 29.2, 73.0, 172.0, 108.2, 49.0, 4.0, 4.3041, 91.0],
    [
        53.0, 2.0, 33.1, 117.0, 183.0, 119.0, 48.0, 4.0, 4.382, 106.0,
    ],
    [
        61.0, 1.0, 24.6, 101.0, 209.0, 106.8, 77.0, 3.0, 4.8363, 88.0,
    ],
    [37.0, 1.0, 20.2, 81.0, 162.0, 87.8, 63.0, 3.0, 4.0254, 88.0],
    [33.0, 2.0, 20.8, 84.0, 125.0, 70.2, 46.0, 3.0, 3.7842, 66.0],
    [
        68.0, 1.0, 32.8, 105.67, 205.0, 116.4, 40.0, 5.13, 5.4931, 117.0,
    ],
    [
        49.0, 2.0, 31.9, 94.0, 234.0, 155.8, 34.0, 7.0, 5.3982, 122.0,
    ],
    [48.0, 1.0, 23.9, 109.0, 232.0, 105.2, 37.0, 6.0, 6.107, 96.0],
    [55.0, 2.0, 24.5, 84.0, 179.0, 105.8, 66.0, 3.0, 3.5835, 87.0],
    [43.0, 1.0, 22.1, 66.0, 134.0, 77.2, 45.0, 3.0, 4.0775, 80.0],
    [
        60.0, 2.0, 33.0, 97.0, 217.0, 125.6, 45.0, 5.0, 5.4467, 112.0,
    ],
    [31.0, 2.0, 19.0, 93.0, 137.0, 73.0, 47.0, 3.0, 4.4427, 78.0],
    [53.0, 2.0, 27.3, 82.0, 119.0, 55.0, 39.0, 3.0, 4.8283, 93.0],
    [67.0, 1.0, 22.8, 87.0, 166.0, 98.6, 52.0, 3.0, 4.3438, 92.0],
    [
        61.0, 2.0, 28.2, 106.0, 204.0, 132.0, 52.0, 4.0, 4.6052, 96.0,
    ],
    [
        62.0, 1.0, 28.9, 87.33, 206.0, 127.2, 33.0, 6.24, 5.4337, 99.0,
    ],
    [60.0, 1.0, 25.6, 87.0, 207.0, 125.8, 69.0, 3.0, 4.1109, 84.0],
    [42.0, 1.0, 24.9, 91.0, 204.0, 141.8, 38.0, 5.0, 4.7958, 89.0],
    [
        38.0, 2.0, 26.8, 105.0, 181.0, 119.2, 37.0, 5.0, 4.8203, 91.0,
    ],
    [62.0, 1.0, 22.4, 79.0, 222.0, 147.4, 59.0, 4.0, 4.3567, 76.0],
    [
        61.0, 2.0, 26.9, 111.0, 236.0, 172.4, 39.0, 6.0, 4.8122, 89.0,
    ],
    [
        61.0, 2.0, 23.1, 113.0, 186.0, 114.4, 47.0, 4.0, 4.8122, 105.0,
    ],
    [53.0, 1.0, 28.6, 88.0, 171.0, 98.8, 41.0, 4.0, 5.0499, 99.0],
    [28.0, 2.0, 24.7, 97.0, 175.0, 99.6, 32.0, 5.0, 5.3799, 87.0],
    [26.0, 2.0, 30.3, 89.0, 218.0, 152.2, 31.0, 7.0, 5.1591, 82.0],
    [30.0, 1.0, 21.3, 87.0, 134.0, 63.0, 63.0, 2.0, 3.6889, 66.0],
    [50.0, 1.0, 26.1, 109.0, 243.0, 160.6, 62.0, 4.0, 4.625, 89.0],
    [48.0, 1.0, 20.2, 95.0, 187.0, 117.4, 53.0, 4.0, 4.4188, 85.0],
    [
        51.0, 1.0, 25.2, 103.0, 176.0, 112.2, 37.0, 5.0, 4.8978, 90.0,
    ],
    [47.0, 2.0, 22.5, 82.0, 131.0, 66.8, 41.0, 3.0, 4.7536, 89.0],
    [64.0, 2.0, 23.5, 97.0, 203.0, 129.0, 59.0, 3.0, 4.3175, 77.0],
    [51.0, 2.0, 25.9, 76.0, 240.0, 169.0, 39.0, 6.0, 5.0752, 96.0],
    [30.0, 1.0, 20.9, 104.0, 152.0, 83.8, 47.0, 3.0, 4.6634, 97.0],
    [56.0, 2.0, 28.7, 99.0, 208.0, 146.4, 39.0, 5.0, 4.7274, 97.0],
    [42.0, 1.0, 22.1, 85.0, 213.0, 138.6, 60.0, 4.0, 4.2767, 94.0],
    [
        62.0, 2.0, 26.7, 115.0, 183.0, 124.0, 35.0, 5.0, 4.7875, 100.0,
    ],
    [34.0, 1.0, 31.4, 87.0, 149.0, 93.8, 46.0, 3.0, 3.8286, 77.0],
    [
        60.0, 1.0, 22.2, 104.67, 221.0, 105.4, 60.0, 3.68, 5.6276, 93.0,
    ],
    [
        64.0, 1.0, 21.0, 92.33, 227.0, 146.8, 65.0, 3.49, 4.3307, 102.0,
    ],
    [39.0, 2.0, 21.2, 90.0, 182.0, 110.4, 60.0, 3.0, 4.0604, 98.0],
    [
        71.0, 2.0, 26.5, 105.0, 281.0, 173.6, 55.0, 5.0, 5.5683, 84.0,
    ],
    [48.0, 2.0, 29.2, 110.0, 218.0, 151.6, 39.0, 6.0, 4.92, 98.0],
    [
        79.0, 2.0, 27.0, 103.0, 169.0, 110.8, 37.0, 5.0, 4.6634, 110.0,
    ],
    [40.0, 1.0, 30.7, 99.0, 177.0, 85.4, 50.0, 4.0, 5.3375, 85.0],
    [49.0, 2.0, 28.8, 92.0, 207.0, 140.0, 44.0, 5.0, 4.7449, 92.0],
    [
        51.0, 1.0, 30.6, 103.0, 198.0, 106.6, 57.0, 3.0, 5.1475, 100.0,
    ],
    [
        57.0, 1.0, 30.1, 117.0, 202.0, 139.6, 42.0, 5.0, 4.625, 120.0,
    ],
    [
        59.0, 2.0, 24.7, 114.0, 152.0, 104.8, 29.0, 5.0, 4.5109, 88.0,
    ],
    [51.0, 1.0, 27.7, 99.0, 229.0, 145.6, 69.0, 3.0, 4.2767, 77.0],
    [
        74.0, 1.0, 29.8, 101.0, 171.0, 104.8, 50.0, 3.0, 4.3944, 86.0,
    ],
    [
        67.0, 1.0, 26.7, 105.0, 225.0, 135.4, 69.0, 3.0, 4.6347, 96.0,
    ],
    [49.0, 1.0, 19.8, 88.0, 188.0, 114.8, 57.0, 3.0, 4.3944, 93.0],
    [57.0, 1.0, 23.3, 88.0, 155.0, 63.6, 78.0, 2.0, 4.2047, 78.0],
    [
        56.0, 2.0, 35.1, 123.0, 164.0, 95.0, 38.0, 4.0, 5.0434, 117.0,
    ],
    [
        52.0, 2.0, 29.7, 109.0, 228.0, 162.8, 31.0, 8.0, 5.1417, 103.0,
    ],
    [
        69.0, 1.0, 29.3, 124.0, 223.0, 139.0, 54.0, 4.0, 5.0106, 102.0,
    ],
    [37.0, 1.0, 20.3, 83.0, 185.0, 124.6, 38.0, 5.0, 4.7185, 88.0],
    [24.0, 1.0, 22.5, 89.0, 141.0, 68.0, 52.0, 3.0, 4.654, 84.0],
    [55.0, 2.0, 22.7, 93.0, 154.0, 94.2, 53.0, 3.0, 3.5264, 75.0],
    [36.0, 1.0, 22.8, 87.0, 178.0, 116.0, 41.0, 4.0, 4.654, 82.0],
    [42.0, 2.0, 24.0, 107.0, 150.0, 85.0, 44.0, 3.0, 4.654, 96.0],
    [21.0, 1.0, 24.2, 76.0, 147.0, 77.0, 53.0, 3.0, 4.4427, 79.0],
    [41.0, 1.0, 20.2, 62.0, 153.0, 89.0, 50.0, 3.0, 4.2485, 89.0],
    [57.0, 2.0, 29.4, 109.0, 160.0, 87.6, 31.0, 5.0, 5.3327, 92.0],
    [20.0, 2.0, 22.1, 87.0, 171.0, 99.6, 58.0, 3.0, 4.2047, 78.0],
    [
        67.0, 2.0, 23.6, 111.33, 189.0, 105.4, 70.0, 2.7, 4.2195, 93.0,
    ],
    [34.0, 1.0, 25.2, 77.0, 189.0, 120.6, 53.0, 4.0, 4.3438, 79.0],
    [41.0, 2.0, 24.9, 86.0, 192.0, 115.0, 61.0, 3.0, 4.382, 94.0],
    [
        38.0, 2.0, 33.0, 78.0, 301.0, 215.0, 50.0, 6.02, 5.193, 108.0,
    ],
    [
        51.0, 1.0, 23.5, 101.0, 195.0, 121.0, 51.0, 4.0, 4.7449, 94.0,
    ],
    [
        52.0, 2.0, 26.4, 91.33, 218.0, 152.0, 39.0, 5.59, 4.9053, 99.0,
    ],
    [67.0, 1.0, 29.8, 80.0, 172.0, 93.4, 63.0, 3.0, 4.3567, 82.0],
    [
        61.0, 1.0, 30.0, 108.0, 194.0, 100.0, 52.0, 3.73, 5.3471, 105.0,
    ],
    [
        67.0, 2.0, 25.0, 111.67, 146.0, 93.4, 33.0, 4.42, 4.585, 103.0,
    ],
    [
        56.0, 1.0, 27.0, 105.0, 247.0, 160.6, 54.0, 5.0, 5.0876, 94.0,
    ],
    [
        64.0, 1.0, 20.0, 74.67, 189.0, 114.8, 62.0, 3.05, 4.1109, 91.0,
    ],
    [
        58.0, 2.0, 25.5, 112.0, 163.0, 110.6, 29.0, 6.0, 4.7622, 86.0,
    ],
    [55.0, 1.0, 28.2, 91.0, 250.0, 140.2, 67.0, 4.0, 5.366, 103.0],
    [
        62.0, 2.0, 33.3, 114.0, 182.0, 114.0, 38.0, 5.0, 5.0106, 96.0,
    ],
    [
        57.0, 2.0, 25.6, 96.0, 200.0, 133.0, 52.0, 3.85, 4.3175, 105.0,
    ],
    [20.0, 2.0, 24.2, 88.0, 126.0, 72.2, 45.0, 3.0, 3.7842, 74.0],
    [53.0, 2.0, 22.1, 98.0, 165.0, 105.2, 47.0, 4.0, 4.1589, 81.0],
    [32.0, 2.0, 31.4, 89.0, 153.0, 84.2, 56.0, 3.0, 4.1589, 90.0],
    [41.0, 1.0, 23.1, 86.0, 148.0, 78.0, 58.0, 3.0, 4.0943, 60.0],
    [
        60.0, 1.0, 23.4, 76.67, 247.0, 148.0, 65.0, 3.8, 5.1358, 77.0,
    ],
    [26.0, 1.0, 18.8, 83.0, 191.0, 103.6, 69.0, 3.0, 4.5218, 69.0],
    [
        37.0, 1.0, 30.8, 112.0, 282.0, 197.2, 43.0, 7.0, 5.3423, 101.0,
    ],
    [
        45.0, 1.0, 32.0, 110.0, 224.0, 134.2, 45.0, 5.0, 5.4116, 93.0,
    ],
    [
        67.0, 1.0, 31.6, 116.0, 179.0, 90.4, 41.0, 4.0, 5.4723, 100.0,
    ],
    [
        34.0, 2.0, 35.5, 120.0, 233.0, 146.6, 34.0, 7.0, 5.5683, 101.0,
    ],
    [
        50.0, 1.0, 31.9, 78.33, 207.0, 149.2, 38.0, 5.45, 4.5951, 84.0,
    ],
    [
        71.0, 1.0, 29.5, 97.0, 227.0, 151.6, 45.0, 5.0, 5.0239, 108.0,
    ],
    [
        57.0, 2.0, 31.6, 117.0, 225.0, 107.6, 40.0, 6.0, 5.9584, 113.0,
    ],
    [49.0, 1.0, 20.3, 93.0, 184.0, 103.0, 61.0, 3.0, 4.6052, 93.0],
    [35.0, 1.0, 41.3, 81.0, 168.0, 102.8, 37.0, 5.0, 4.9488, 94.0],
    [41.0, 2.0, 21.2, 102.0, 184.0, 100.4, 64.0, 3.0, 4.585, 79.0],
    [
        70.0, 2.0, 24.1, 82.33, 194.0, 149.2, 31.0, 6.26, 4.2341, 105.0,
    ],
    [
        52.0, 1.0, 23.0, 107.0, 179.0, 123.7, 42.5, 4.21, 4.1589, 93.0,
    ],
    [60.0, 1.0, 25.6, 78.0, 195.0, 95.4, 91.0, 2.0, 3.7612, 87.0],
    [62.0, 1.0, 22.5, 125.0, 215.0, 99.0, 98.0, 2.0, 4.4998, 95.0],
    [
        44.0, 2.0, 38.2, 123.0, 201.0, 126.6, 44.0, 5.0, 5.0239, 92.0,
    ],
    [28.0, 2.0, 19.2, 81.0, 155.0, 94.6, 51.0, 3.0, 3.8501, 87.0],
    [58.0, 2.0, 29.0, 85.0, 156.0, 109.2, 36.0, 4.0, 3.989, 86.0],
    [
        39.0, 2.0, 24.0, 89.67, 190.0, 113.6, 52.0, 3.65, 4.804, 101.0,
    ],
    [34.0, 2.0, 20.6, 98.0, 183.0, 92.0, 83.0, 2.0, 3.6889, 92.0],
    [65.0, 1.0, 26.3, 70.0, 244.0, 166.2, 51.0, 5.0, 4.8978, 98.0],
    [
        66.0, 2.0, 34.6, 115.0, 204.0, 139.4, 36.0, 6.0, 4.9628, 109.0,
    ],
    [51.0, 1.0, 23.4, 87.0, 220.0, 108.8, 93.0, 2.0, 4.5109, 82.0],
    [50.0, 2.0, 29.2, 119.0, 162.0, 85.2, 54.0, 3.0, 4.7362, 95.0],
    [
        59.0, 2.0, 27.2, 107.0, 158.0, 102.0, 39.0, 4.0, 4.4427, 93.0,
    ],
    [
        52.0, 1.0, 27.0, 78.33, 134.0, 73.0, 44.0, 3.05, 4.4427, 69.0,
    ],
    [
        69.0, 2.0, 24.5, 108.0, 243.0, 136.4, 40.0, 6.0, 5.8081, 100.0,
    ],
    [
        53.0, 1.0, 24.1, 105.0, 184.0, 113.4, 46.0, 4.0, 4.8122, 95.0,
    ],
    [
        47.0, 2.0, 25.3, 98.0, 173.0, 105.6, 44.0, 4.0, 4.7622, 108.0,
    ],
    [52.0, 1.0, 28.8, 113.0, 280.0, 174.0, 67.0, 4.0, 5.273, 86.0],
    [39.0, 1.0, 20.9, 95.0, 150.0, 65.6, 68.0, 2.0, 4.4067, 95.0],
    [67.0, 2.0, 23.0, 70.0, 184.0, 128.0, 35.0, 5.0, 4.654, 99.0],
    [59.0, 2.0, 24.1, 96.0, 170.0, 98.6, 54.0, 3.0, 4.4659, 85.0],
    [
        51.0, 2.0, 28.1, 106.0, 202.0, 122.2, 55.0, 4.0, 4.8203, 87.0,
    ],
    [23.0, 2.0, 18.0, 78.0, 171.0, 96.0, 48.0, 4.0, 4.9053, 92.0],
    [68.0, 1.0, 25.9, 93.0, 253.0, 181.2, 53.0, 5.0, 4.5433, 98.0],
    [44.0, 1.0, 21.5, 85.0, 157.0, 92.2, 55.0, 3.0, 3.8918, 84.0],
    [60.0, 2.0, 24.3, 103.0, 141.0, 86.6, 33.0, 4.0, 4.6728, 78.0],
    [52.0, 1.0, 24.5, 90.0, 198.0, 129.0, 29.0, 7.0, 5.2983, 86.0],
    [38.0, 1.0, 21.3, 72.0, 165.0, 60.2, 88.0, 2.0, 4.4308, 90.0],
    [61.0, 1.0, 25.8, 90.0, 280.0, 195.4, 55.0, 5.0, 4.9972, 90.0],
    [
        68.0, 2.0, 24.8, 101.0, 221.0, 151.4, 60.0, 4.0, 3.8712, 87.0,
    ],
    [28.0, 2.0, 31.5, 83.0, 228.0, 149.4, 38.0, 6.0, 5.3132, 83.0],
    [
        65.0, 2.0, 33.5, 102.0, 190.0, 126.2, 35.0, 5.0, 4.9698, 102.0,
    ],
    [
        69.0, 1.0, 28.1, 113.0, 234.0, 142.8, 52.0, 4.0, 5.2781, 77.0,
    ],
    [
        51.0, 1.0, 24.3, 85.33, 153.0, 71.6, 71.0, 2.15, 3.9512, 82.0,
    ],
    [
        29.0, 1.0, 35.0, 98.33, 204.0, 142.6, 50.0, 4.08, 4.0431, 91.0,
    ],
    [55.0, 2.0, 23.5, 93.0, 177.0, 126.8, 41.0, 4.0, 3.8286, 83.0],
    [34.0, 2.0, 30.0, 83.0, 185.0, 107.2, 53.0, 3.0, 4.8203, 92.0],
    [67.0, 1.0, 20.7, 83.0, 170.0, 99.8, 59.0, 3.0, 4.0254, 77.0],
    [49.0, 1.0, 25.6, 76.0, 161.0, 99.8, 51.0, 3.0, 3.9318, 78.0],
    [55.0, 2.0, 22.9, 81.0, 123.0, 67.2, 41.0, 3.0, 4.3041, 88.0],
    [59.0, 2.0, 25.1, 90.0, 163.0, 101.4, 46.0, 4.0, 4.3567, 91.0],
    [
        53.0, 1.0, 33.2, 82.67, 186.0, 106.8, 46.0, 4.04, 5.112, 102.0,
    ],
    [
        48.0, 2.0, 24.1, 110.0, 209.0, 134.6, 58.0, 4.0, 4.4067, 100.0,
    ],
    [
        52.0, 1.0, 29.5, 104.33, 211.0, 132.8, 49.0, 4.31, 4.9836, 98.0,
    ],
    [69.0, 1.0, 29.6, 122.0, 231.0, 128.4, 56.0, 4.0, 5.451, 86.0],
    [
        60.0, 2.0, 22.8, 110.0, 245.0, 189.8, 39.0, 6.0, 4.3944, 88.0,
    ],
    [46.0, 2.0, 22.7, 83.0, 183.0, 125.8, 32.0, 6.0, 4.8363, 75.0],
    [51.0, 2.0, 26.2, 101.0, 161.0, 99.6, 48.0, 3.0, 4.2047, 88.0],
    [
        67.0, 2.0, 23.5, 96.0, 207.0, 138.2, 42.0, 5.0, 4.8978, 111.0,
    ],
    [49.0, 1.0, 22.1, 85.0, 136.0, 63.4, 62.0, 2.19, 3.9703, 72.0],
    [
        46.0, 2.0, 26.5, 94.0, 247.0, 160.2, 59.0, 4.0, 4.9345, 111.0,
    ],
    [
        47.0, 1.0, 32.4, 105.0, 188.0, 125.0, 46.0, 4.09, 4.4427, 99.0,
    ],
    [
        75.0, 1.0, 30.1, 78.0, 222.0, 154.2, 44.0, 5.05, 4.7791, 97.0,
    ],
    [28.0, 1.0, 24.2, 93.0, 174.0, 106.4, 54.0, 3.0, 4.2195, 84.0],
    [65.0, 2.0, 31.3, 110.0, 213.0, 128.0, 47.0, 5.0, 5.247, 91.0],
    [42.0, 1.0, 30.1, 91.0, 182.0, 114.8, 49.0, 4.0, 4.5109, 82.0],
    [51.0, 1.0, 24.5, 79.0, 212.0, 128.6, 65.0, 3.0, 4.5218, 91.0],
    [
        53.0, 2.0, 27.7, 95.0, 190.0, 101.8, 41.0, 5.0, 5.4638, 101.0,
    ],
    [
        54.0, 1.0, 23.2, 110.67, 238.0, 162.8, 48.0, 4.96, 4.9127, 108.0,
    ],
    [
        73.0, 1.0, 27.0, 102.0, 211.0, 121.0, 67.0, 3.0, 4.7449, 99.0,
    ],
    [
        54.0, 1.0, 26.8, 108.0, 176.0, 80.6, 67.0, 3.0, 4.9558, 106.0,
    ],
    [42.0, 1.0, 29.2, 93.0, 249.0, 174.2, 45.0, 6.0, 5.0039, 92.0],
    [
        75.0, 1.0, 31.2, 117.67, 229.0, 138.8, 29.0, 7.9, 5.7236, 106.0,
    ],
    [
        55.0, 2.0, 32.1, 112.67, 207.0, 92.4, 25.0, 8.28, 6.1048, 111.0,
    ],
    [
        68.0, 2.0, 25.7, 109.0, 233.0, 112.6, 35.0, 7.0, 6.0568, 105.0,
    ],
    [57.0, 1.0, 26.9, 98.0, 246.0, 165.2, 38.0, 7.0, 5.366, 96.0],
    [
        48.0, 1.0, 31.4, 75.33, 242.0, 151.6, 38.0, 6.37, 5.5683, 103.0,
    ],
    [61.0, 2.0, 25.6, 85.0, 184.0, 116.2, 39.0, 5.0, 4.9698, 98.0],
    [
        69.0, 1.0, 37.0, 103.0, 207.0, 131.4, 55.0, 4.0, 4.6347, 90.0,
    ],
    [38.0, 1.0, 32.6, 77.0, 168.0, 100.6, 47.0, 4.0, 4.625, 96.0],
    [45.0, 2.0, 21.2, 94.0, 169.0, 96.8, 55.0, 3.0, 4.4543, 102.0],
    [51.0, 2.0, 29.2, 107.0, 187.0, 139.0, 32.0, 6.0, 4.382, 95.0],
    [71.0, 2.0, 24.0, 84.0, 138.0, 85.8, 39.0, 4.0, 4.1897, 90.0],
    [
        57.0, 1.0, 36.1, 117.0, 181.0, 108.2, 34.0, 5.0, 5.2679, 100.0,
    ],
    [
        56.0, 2.0, 25.8, 103.0, 177.0, 114.4, 34.0, 5.0, 4.9628, 99.0,
    ],
    [32.0, 2.0, 22.0, 88.0, 137.0, 78.6, 48.0, 3.0, 3.9512, 78.0],
    [50.0, 1.0, 21.9, 91.0, 190.0, 111.2, 67.0, 3.0, 4.0775, 77.0],
    [
        43.0, 1.0, 34.3, 84.0, 256.0, 172.6, 33.0, 8.0, 5.5294, 104.0,
    ],
    [
        54.0, 2.0, 25.2, 115.0, 181.0, 120.0, 39.0, 5.0, 4.7005, 92.0,
    ],
    [31.0, 1.0, 23.3, 85.0, 190.0, 130.8, 43.0, 4.0, 4.3944, 77.0],
    [56.0, 1.0, 25.7, 80.0, 244.0, 151.6, 59.0, 4.0, 5.118, 95.0],
    [
        44.0, 1.0, 25.1, 133.0, 182.0, 113.0, 55.0, 3.0, 4.2485, 84.0,
    ],
    [
        57.0, 2.0, 31.9, 111.0, 173.0, 116.2, 41.0, 4.0, 4.3694, 87.0,
    ],
    [64.0, 2.0, 28.4, 111.0, 184.0, 127.0, 41.0, 4.0, 4.382, 97.0],
    [
        43.0, 1.0, 28.1, 121.0, 192.0, 121.0, 60.0, 3.0, 4.0073, 93.0,
    ],
    [19.0, 1.0, 25.3, 83.0, 225.0, 156.6, 46.0, 5.0, 4.7185, 84.0],
    [71.0, 2.0, 26.1, 85.0, 220.0, 152.4, 47.0, 5.0, 4.6347, 91.0],
    [
        50.0, 2.0, 28.0, 104.0, 282.0, 196.8, 44.0, 6.0, 5.3279, 95.0,
    ],
    [59.0, 2.0, 23.6, 73.0, 180.0, 107.4, 51.0, 4.0, 4.6821, 84.0],
    [57.0, 1.0, 24.5, 93.0, 186.0, 96.6, 71.0, 3.0, 4.5218, 91.0],
    [49.0, 2.0, 21.0, 82.0, 119.0, 85.4, 23.0, 5.0, 3.9703, 74.0],
    [
        41.0, 2.0, 32.0, 126.0, 198.0, 104.2, 49.0, 4.0, 5.4116, 124.0,
    ],
    [25.0, 2.0, 22.6, 85.0, 130.0, 71.0, 48.0, 3.0, 4.0073, 81.0],
    [52.0, 2.0, 19.7, 81.0, 152.0, 53.4, 82.0, 2.0, 4.4188, 82.0],
    [34.0, 1.0, 21.2, 84.0, 254.0, 113.4, 52.0, 5.0, 6.0936, 92.0],
    [
        42.0, 2.0, 30.6, 101.0, 269.0, 172.2, 50.0, 5.0, 5.4553, 106.0,
    ],
    [28.0, 2.0, 25.5, 99.0, 162.0, 101.6, 46.0, 4.0, 4.2767, 94.0],
    [47.0, 2.0, 23.3, 90.0, 195.0, 125.8, 54.0, 4.0, 4.3307, 73.0],
    [32.0, 2.0, 31.0, 100.0, 177.0, 96.2, 45.0, 4.0, 5.1874, 77.0],
    [43.0, 1.0, 18.5, 87.0, 163.0, 93.6, 61.0, 2.67, 3.7377, 80.0],
    [
        59.0, 2.0, 26.9, 104.0, 194.0, 126.6, 43.0, 5.0, 4.804, 106.0,
    ],
    [
        53.0, 1.0, 28.3, 101.0, 179.0, 107.0, 48.0, 4.0, 4.7875, 101.0,
    ],
    [60.0, 1.0, 25.7, 103.0, 158.0, 84.6, 64.0, 2.0, 3.8501, 97.0],
    [
        54.0, 2.0, 36.1, 115.0, 163.0, 98.4, 43.0, 4.0, 4.6821, 101.0,
    ],
    [35.0, 2.0, 24.1, 94.67, 155.0, 97.4, 32.0, 4.84, 4.852, 94.0],
    [49.0, 2.0, 25.8, 89.0, 182.0, 118.6, 39.0, 5.0, 4.804, 115.0],
    [
        58.0, 1.0, 22.8, 91.0, 196.0, 118.8, 48.0, 4.0, 4.9836, 115.0,
    ],
    [
        36.0, 2.0, 39.1, 90.0, 219.0, 135.8, 38.0, 6.0, 5.4205, 103.0,
    ],
    [46.0, 2.0, 42.2, 99.0, 211.0, 137.0, 44.0, 5.0, 5.0106, 99.0],
    [
        44.0, 2.0, 26.6, 99.0, 205.0, 109.0, 43.0, 5.0, 5.5797, 111.0,
    ],
    [46.0, 1.0, 29.9, 83.0, 171.0, 113.0, 38.0, 4.5, 4.585, 98.0],
    [54.0, 1.0, 21.0, 78.0, 188.0, 107.4, 70.0, 3.0, 3.9703, 73.0],
    [
        63.0, 2.0, 25.5, 109.0, 226.0, 103.2, 46.0, 5.0, 5.9506, 87.0,
    ],
    [41.0, 2.0, 24.2, 90.0, 199.0, 123.6, 57.0, 4.0, 4.5218, 86.0],
    [28.0, 1.0, 25.4, 93.0, 141.0, 79.0, 49.0, 3.0, 4.1744, 91.0],
    [19.0, 1.0, 23.2, 75.0, 143.0, 70.4, 52.0, 3.0, 4.6347, 72.0],
    [
        61.0, 2.0, 26.1, 126.0, 215.0, 129.8, 57.0, 4.0, 4.9488, 96.0,
    ],
    [
        48.0, 1.0, 32.7, 93.0, 276.0, 198.6, 43.0, 6.42, 5.1475, 91.0,
    ],
    [
        54.0, 2.0, 27.3, 100.0, 200.0, 144.0, 33.0, 6.0, 4.7449, 76.0,
    ],
    [53.0, 2.0, 26.6, 93.0, 185.0, 122.4, 36.0, 5.0, 4.8903, 82.0],
    [48.0, 1.0, 22.8, 101.0, 110.0, 41.6, 56.0, 2.0, 4.1271, 97.0],
    [
        53.0, 1.0, 28.8, 111.67, 145.0, 87.2, 46.0, 3.15, 4.0775, 85.0,
    ],
    [29.0, 2.0, 18.1, 73.0, 158.0, 99.0, 41.0, 4.0, 4.4998, 78.0],
    [62.0, 1.0, 32.0, 88.0, 172.0, 69.0, 38.0, 4.0, 5.7838, 100.0],
    [50.0, 2.0, 23.7, 92.0, 166.0, 97.0, 52.0, 3.0, 4.4427, 93.0],
    [58.0, 2.0, 23.6, 96.0, 257.0, 171.0, 59.0, 4.0, 4.9053, 82.0],
    [55.0, 2.0, 24.6, 109.0, 143.0, 76.4, 51.0, 3.0, 4.3567, 88.0],
    [54.0, 1.0, 22.6, 90.0, 183.0, 104.2, 64.0, 3.0, 4.3041, 92.0],
    [36.0, 1.0, 27.8, 73.0, 153.0, 104.4, 42.0, 4.0, 3.4965, 73.0],
    [
        63.0, 2.0, 24.1, 111.0, 184.0, 112.2, 44.0, 4.0, 4.9345, 82.0,
    ],
    [47.0, 2.0, 26.5, 70.0, 181.0, 104.8, 63.0, 3.0, 4.1897, 70.0],
    [
        51.0, 2.0, 32.8, 112.0, 202.0, 100.6, 37.0, 5.0, 5.7746, 109.0,
    ],
    [42.0, 1.0, 19.9, 76.0, 146.0, 83.2, 55.0, 3.0, 3.6636, 79.0],
    [
        37.0, 2.0, 23.6, 94.0, 205.0, 138.8, 53.0, 4.0, 4.1897, 107.0,
    ],
    [28.0, 1.0, 22.1, 82.0, 168.0, 100.6, 54.0, 3.0, 4.2047, 86.0],
    [58.0, 1.0, 28.1, 111.0, 198.0, 80.6, 31.0, 6.0, 6.0684, 93.0],
    [32.0, 1.0, 26.5, 86.0, 184.0, 101.6, 53.0, 4.0, 4.9904, 78.0],
    [25.0, 2.0, 23.5, 88.0, 143.0, 80.8, 55.0, 3.0, 3.5835, 83.0],
    [63.0, 1.0, 26.0, 85.67, 155.0, 78.2, 46.0, 3.37, 5.037, 97.0],
    [52.0, 1.0, 27.8, 85.0, 219.0, 136.0, 49.0, 4.0, 5.1358, 75.0],
    [
        65.0, 2.0, 28.5, 109.0, 201.0, 123.0, 46.0, 4.0, 5.0752, 96.0,
    ],
    [42.0, 1.0, 30.6, 121.0, 176.0, 92.8, 69.0, 3.0, 4.2627, 89.0],
    [53.0, 1.0, 22.2, 78.0, 164.0, 81.0, 70.0, 2.0, 4.1744, 101.0],
    [
        79.0, 2.0, 23.3, 88.0, 186.0, 128.4, 33.0, 6.0, 4.8122, 102.0,
    ],
    [
        43.0, 1.0, 35.4, 93.0, 185.0, 100.2, 44.0, 4.0, 5.3181, 101.0,
    ],
    [44.0, 1.0, 31.4, 115.0, 165.0, 97.6, 52.0, 3.0, 4.3438, 89.0],
    [62.0, 2.0, 37.8, 119.0, 113.0, 51.0, 31.0, 4.0, 5.0434, 84.0],
    [33.0, 1.0, 18.9, 70.0, 162.0, 91.8, 59.0, 3.0, 4.0254, 58.0],
    [
        56.0, 1.0, 35.0, 79.33, 195.0, 140.8, 42.0, 4.64, 4.1109, 96.0,
    ],
    [
        66.0, 1.0, 21.7, 126.0, 212.0, 127.8, 45.0, 4.71, 5.2781, 101.0,
    ],
    [
        34.0, 2.0, 25.3, 111.0, 230.0, 162.0, 39.0, 6.0, 4.9767, 90.0,
    ],
    [46.0, 2.0, 23.8, 97.0, 224.0, 139.2, 42.0, 5.0, 5.366, 81.0],
    [50.0, 1.0, 31.8, 82.0, 136.0, 69.2, 55.0, 2.0, 4.0775, 85.0],
    [
        69.0, 1.0, 34.3, 113.0, 200.0, 123.8, 54.0, 4.0, 4.7095, 112.0,
    ],
    [34.0, 1.0, 26.3, 87.0, 197.0, 120.0, 63.0, 3.0, 4.2485, 96.0],
    [
        71.0, 2.0, 27.0, 93.33, 269.0, 190.2, 41.0, 6.56, 5.2417, 93.0,
    ],
    [47.0, 1.0, 27.2, 80.0, 208.0, 145.6, 38.0, 6.0, 4.804, 92.0],
    [
        41.0, 1.0, 33.8, 123.33, 187.0, 127.0, 45.0, 4.16, 4.3175, 100.0,
    ],
    [
        34.0, 1.0, 33.0, 73.0, 178.0, 114.6, 51.0, 3.49, 4.1271, 92.0,
    ],
    [51.0, 1.0, 24.1, 87.0, 261.0, 175.6, 69.0, 4.0, 4.4067, 93.0],
    [43.0, 1.0, 21.3, 79.0, 141.0, 78.8, 53.0, 3.0, 3.8286, 90.0],
    [
        55.0, 1.0, 23.0, 94.67, 190.0, 137.6, 38.0, 5.0, 4.2767, 106.0,
    ],
    [
        59.0, 2.0, 27.9, 101.0, 218.0, 144.2, 38.0, 6.0, 5.1874, 95.0,
    ],
    [
        27.0, 2.0, 33.6, 110.0, 246.0, 156.6, 57.0, 4.0, 5.0876, 89.0,
    ],
    [
        51.0, 2.0, 22.7, 103.0, 217.0, 162.4, 30.0, 7.0, 4.8122, 80.0,
    ],
    [49.0, 2.0, 27.4, 89.0, 177.0, 113.0, 37.0, 5.0, 4.9053, 97.0],
    [27.0, 1.0, 22.6, 71.0, 116.0, 43.4, 56.0, 2.0, 4.4188, 79.0],
    [
        57.0, 2.0, 23.2, 107.33, 231.0, 159.4, 41.0, 5.63, 5.0304, 112.0,
    ],
    [39.0, 2.0, 26.9, 93.0, 136.0, 75.4, 48.0, 3.0, 4.1431, 99.0],
    [
        62.0, 2.0, 34.6, 120.0, 215.0, 129.2, 43.0, 5.0, 5.366, 123.0,
    ],
    [37.0, 1.0, 23.3, 88.0, 223.0, 142.0, 65.0, 3.4, 4.3567, 82.0],
    [46.0, 1.0, 21.1, 80.0, 205.0, 144.4, 42.0, 5.0, 4.5326, 87.0],
    [68.0, 2.0, 23.5, 101.0, 162.0, 85.4, 59.0, 3.0, 4.4773, 91.0],
    [
        51.0, 1.0, 31.5, 93.0, 231.0, 144.0, 49.0, 4.7, 5.2523, 117.0,
    ],
    [41.0, 1.0, 20.8, 86.0, 223.0, 128.2, 83.0, 3.0, 4.0775, 89.0],
    [53.0, 1.0, 26.5, 97.0, 193.0, 122.4, 58.0, 3.0, 4.1431, 99.0],
    [45.0, 1.0, 24.2, 83.0, 177.0, 118.4, 45.0, 4.0, 4.2195, 82.0],
    [33.0, 1.0, 19.5, 80.0, 171.0, 85.4, 75.0, 2.0, 3.9703, 80.0],
    [
        60.0, 2.0, 28.2, 112.0, 185.0, 113.8, 42.0, 4.0, 4.9836, 93.0,
    ],
    [
        47.0, 2.0, 24.9, 75.0, 225.0, 166.0, 42.0, 5.0, 4.4427, 102.0,
    ],
    [
        60.0, 2.0, 24.9, 99.67, 162.0, 106.6, 43.0, 3.77, 4.1271, 95.0,
    ],
    [
        36.0, 1.0, 30.0, 95.0, 201.0, 125.2, 42.0, 4.79, 5.1299, 85.0,
    ],
    [36.0, 1.0, 19.6, 71.0, 250.0, 133.2, 97.0, 3.0, 4.5951, 92.0],
];

const DIABETES_TARGET: [f64; 442] = [
    151.0, 75.0, 141.0, 206.0, 135.0, 97.0, 138.0, 63.0, 110.0, 310.0, 101.0, 69.0, 179.0, 185.0,
    118.0, 171.0, 166.0, 144.0, 97.0, 168.0, 68.0, 49.0, 68.0, 245.0, 184.0, 202.0, 137.0, 85.0,
    131.0, 283.0, 129.0, 59.0, 341.0, 87.0, 65.0, 102.0, 265.0, 276.0, 252.0, 90.0, 100.0, 55.0,
    61.0, 92.0, 259.0, 53.0, 190.0, 142.0, 75.0, 142.0, 155.0, 225.0, 59.0, 104.0, 182.0, 128.0,
    52.0, 37.0, 170.0, 170.0, 61.0, 144.0, 52.0, 128.0, 71.0, 163.0, 150.0, 97.0, 160.0, 178.0,
    48.0, 270.0, 202.0, 111.0, 85.0, 42.0, 170.0, 200.0, 252.0, 113.0, 143.0, 51.0, 52.0, 210.0,
    65.0, 141.0, 55.0, 134.0, 42.0, 111.0, 98.0, 164.0, 48.0, 96.0, 90.0, 162.0, 150.0, 279.0,
    92.0, 83.0, 128.0, 102.0, 302.0, 198.0, 95.0, 53.0, 134.0, 144.0, 232.0, 81.0, 104.0, 59.0,
    246.0, 297.0, 258.0, 229.0, 275.0, 281.0, 179.0, 200.0, 200.0, 173.0, 180.0, 84.0, 121.0,
    161.0, 99.0, 109.0, 115.0, 268.0, 274.0, 158.0, 107.0, 83.0, 103.0, 272.0, 85.0, 280.0, 336.0,
    281.0, 118.0, 317.0, 235.0, 60.0, 174.0, 259.0, 178.0, 128.0, 96.0, 126.0, 288.0, 88.0, 292.0,
    71.0, 197.0, 186.0, 25.0, 84.0, 96.0, 195.0, 53.0, 217.0, 172.0, 131.0, 214.0, 59.0, 70.0,
    220.0, 268.0, 152.0, 47.0, 74.0, 295.0, 101.0, 151.0, 127.0, 237.0, 225.0, 81.0, 151.0, 107.0,
    64.0, 138.0, 185.0, 265.0, 101.0, 137.0, 143.0, 141.0, 79.0, 292.0, 178.0, 91.0, 116.0, 86.0,
    122.0, 72.0, 129.0, 142.0, 90.0, 158.0, 39.0, 196.0, 222.0, 277.0, 99.0, 196.0, 202.0, 155.0,
    77.0, 191.0, 70.0, 73.0, 49.0, 65.0, 263.0, 248.0, 296.0, 214.0, 185.0, 78.0, 93.0, 252.0,
    150.0, 77.0, 208.0, 77.0, 108.0, 160.0, 53.0, 220.0, 154.0, 259.0, 90.0, 246.0, 124.0, 67.0,
    72.0, 257.0, 262.0, 275.0, 177.0, 71.0, 47.0, 187.0, 125.0, 78.0, 51.0, 258.0, 215.0, 303.0,
    243.0, 91.0, 150.0, 310.0, 153.0, 346.0, 63.0, 89.0, 50.0, 39.0, 103.0, 308.0, 116.0, 145.0,
    74.0, 45.0, 115.0, 264.0, 87.0, 202.0, 127.0, 182.0, 241.0, 66.0, 94.0, 283.0, 64.0, 102.0,
    200.0, 265.0, 94.0, 230.0, 181.0, 156.0, 233.0, 60.0, 219.0, 80.0, 68.0, 332.0, 248.0, 84.0,
    200.0, 55.0, 85.0, 89.0, 31.0, 129.0, 83.0, 275.0, 65.0, 198.0, 236.0, 253.0, 124.0, 44.0,
    172.0, 114.0, 142.0, 109.0, 180.0, 144.0, 163.0, 147.0, 97.0, 220.0, 190.0, 109.0, 191.0,
    122.0, 230.0, 242.0, 248.0, 249.0, 192.0, 131.0, 237.0, 78.0, 135.0, 244.0, 199.0, 270.0,
    164.0, 72.0, 96.0, 306.0, 91.0, 214.0, 95.0, 216.0, 263.0, 178.0, 113.0, 200.0, 139.0, 139.0,
    88.0, 148.0, 88.0, 243.0, 71.0, 77.0, 109.0, 272.0, 60.0, 54.0, 221.0, 90.0, 311.0, 281.0,
    182.0, 321.0, 58.0, 262.0, 206.0, 233.0, 242.0, 123.0, 167.0, 63.0, 197.0, 71.0, 168.0, 140.0,
    217.0, 121.0, 235.0, 245.0, 40.0, 52.0, 104.0, 132.0, 88.0, 69.0, 219.0, 72.0, 201.0, 110.0,
    51.0, 277.0, 63.0, 118.0, 69.0, 273.0, 258.0, 43.0, 198.0, 242.0, 232.0, 175.0, 93.0, 168.0,
    275.0, 293.0, 281.0, 72.0, 140.0, 189.0, 181.0, 209.0, 136.0, 261.0, 113.0, 131.0, 174.0,
    257.0, 55.0, 84.0, 42.0, 146.0, 212.0, 233.0, 91.0, 111.0, 152.0, 120.0, 67.0, 310.0, 94.0,
    183.0, 66.0, 173.0, 72.0, 49.0, 64.0, 48.0, 178.0, 104.0, 132.0, 220.0, 57.0,
];

/// Loads the Diabetes dataset.
///
/// Returns a [`Dataset`] with 442 samples, 10 features, and a continuous
/// regression target (disease progression). `n_classes()` returns 0 — this
/// is a regression dataset, not classification.
pub fn load() -> Dataset {
    let data: Vec<Vec<f64>> = DIABETES_DATA.iter().map(|r| r.to_vec()).collect();
    let target = DIABETES_TARGET.to_vec();
    Dataset::from_const(data, target, &FEATURE_NAMES, &TARGET_NAMES)
}

#[cfg(test)]
mod tests {
    use super::*;

    #[test]
    fn diabetes_dimensions() {
        let d = load();
        assert_eq!(d.n_samples(), 442);
        assert_eq!(d.n_features(), 10);
    }

    #[test]
    fn diabetes_is_regression() {
        let d = load();
        assert_eq!(d.n_classes(), 0); // regression, no class names
        assert_eq!(d.target_names().len(), 0);
    }

    #[test]
    fn diabetes_features_matrix() {
        let d = load();
        let x = d.features();
        assert_eq!(x.nrows(), 442);
        assert_eq!(x.ncols(), 10);
    }

    #[test]
    fn diabetes_target_range() {
        let d = load();
        let y = d.targets();
        // Targets range from 25 to 346 (disease progression measure).
        let min_y = y.iter().cloned().fold(f64::INFINITY, f64::min);
        let max_y = y.iter().cloned().fold(f64::NEG_INFINITY, f64::max);
        assert!(min_y >= 20.0 && max_y <= 350.0);
    }
}