test_geo_lookup.cpp
366 KB
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
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
1441
1442
1443
1444
1445
1446
1447
1448
1449
1450
1451
1452
1453
1454
1455
1456
1457
1458
1459
1460
1461
1462
1463
1464
1465
1466
1467
1468
1469
1470
1471
1472
1473
1474
1475
1476
1477
1478
1479
1480
1481
1482
1483
1484
1485
1486
1487
1488
1489
1490
1491
1492
1493
1494
1495
1496
1497
1498
1499
1500
1501
1502
1503
1504
1505
1506
1507
1508
1509
1510
1511
1512
1513
1514
1515
1516
1517
1518
1519
1520
1521
1522
1523
1524
1525
1526
1527
1528
1529
1530
1531
1532
1533
1534
1535
1536
1537
1538
1539
1540
1541
1542
1543
1544
1545
1546
1547
1548
1549
1550
1551
1552
1553
1554
1555
1556
1557
1558
1559
1560
1561
1562
1563
1564
1565
1566
1567
1568
1569
1570
1571
1572
1573
1574
1575
1576
1577
1578
1579
1580
1581
1582
1583
1584
1585
1586
1587
1588
1589
1590
1591
1592
1593
1594
1595
1596
1597
1598
1599
1600
1601
1602
1603
1604
1605
1606
1607
1608
1609
1610
1611
1612
1613
1614
1615
1616
1617
1618
1619
1620
1621
1622
1623
1624
1625
1626
1627
1628
1629
1630
1631
1632
1633
1634
1635
1636
1637
1638
1639
1640
1641
1642
1643
1644
1645
1646
1647
1648
1649
1650
1651
1652
1653
1654
1655
1656
1657
1658
1659
1660
1661
1662
1663
1664
1665
1666
1667
1668
1669
1670
1671
1672
1673
1674
1675
1676
1677
1678
1679
1680
1681
1682
1683
1684
1685
1686
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703
1704
1705
1706
1707
1708
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230
2231
2232
2233
2234
2235
2236
2237
2238
2239
2240
2241
2242
2243
2244
2245
2246
2247
2248
2249
2250
2251
2252
2253
2254
2255
2256
2257
2258
2259
2260
2261
2262
2263
2264
2265
2266
2267
2268
2269
2270
2271
2272
2273
2274
2275
2276
2277
2278
2279
2280
2281
2282
2283
2284
2285
2286
2287
2288
2289
2290
2291
2292
2293
2294
2295
2296
2297
2298
2299
2300
2301
2302
2303
2304
2305
2306
2307
2308
2309
2310
2311
2312
2313
2314
2315
2316
2317
2318
2319
2320
2321
2322
2323
2324
2325
2326
2327
2328
2329
2330
2331
2332
2333
2334
2335
2336
2337
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364
2365
2366
2367
2368
2369
2370
2371
2372
2373
2374
2375
2376
2377
2378
2379
2380
2381
2382
2383
2384
2385
2386
2387
2388
2389
2390
2391
2392
2393
2394
2395
2396
2397
2398
2399
2400
2401
2402
2403
2404
2405
2406
2407
2408
2409
2410
2411
2412
2413
2414
2415
2416
2417
2418
2419
2420
2421
2422
2423
2424
2425
2426
2427
2428
2429
2430
2431
2432
2433
2434
2435
2436
2437
2438
2439
2440
2441
2442
2443
2444
2445
2446
2447
2448
2449
2450
2451
2452
2453
2454
2455
2456
2457
2458
2459
2460
2461
2462
2463
2464
2465
2466
2467
2468
2469
2470
2471
2472
2473
2474
2475
2476
2477
2478
2479
2480
2481
2482
2483
2484
2485
2486
2487
2488
2489
2490
2491
2492
2493
2494
2495
2496
2497
2498
2499
2500
2501
2502
2503
2504
2505
2506
2507
2508
2509
2510
2511
2512
2513
2514
2515
2516
2517
2518
2519
2520
2521
2522
2523
2524
2525
2526
2527
2528
2529
2530
2531
2532
2533
2534
2535
2536
2537
2538
2539
2540
2541
2542
2543
2544
2545
2546
2547
2548
2549
2550
2551
2552
2553
2554
2555
2556
2557
2558
2559
2560
2561
2562
2563
2564
2565
2566
2567
2568
2569
2570
2571
2572
2573
2574
2575
2576
2577
2578
2579
2580
2581
2582
2583
2584
2585
2586
2587
2588
2589
2590
2591
2592
2593
2594
2595
2596
2597
2598
2599
2600
2601
2602
2603
2604
2605
2606
2607
2608
2609
2610
2611
2612
2613
2614
2615
2616
2617
2618
2619
2620
2621
2622
2623
2624
2625
2626
2627
2628
2629
2630
2631
2632
2633
2634
2635
2636
2637
2638
2639
2640
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666
2667
2668
2669
2670
2671
2672
2673
2674
2675
2676
2677
2678
2679
2680
2681
2682
2683
2684
2685
2686
2687
2688
2689
2690
2691
2692
2693
2694
2695
2696
2697
2698
2699
2700
2701
2702
2703
2704
2705
2706
2707
2708
2709
2710
2711
2712
2713
2714
2715
2716
2717
2718
2719
2720
2721
2722
2723
2724
2725
2726
2727
2728
2729
2730
2731
2732
2733
2734
2735
2736
2737
2738
2739
2740
2741
2742
2743
2744
2745
2746
2747
2748
2749
2750
2751
2752
2753
2754
2755
2756
2757
2758
2759
2760
2761
2762
2763
2764
2765
2766
2767
2768
2769
2770
2771
2772
2773
2774
2775
2776
2777
2778
2779
2780
2781
2782
2783
2784
2785
2786
2787
2788
2789
2790
2791
2792
2793
2794
2795
2796
2797
2798
2799
2800
2801
2802
2803
2804
2805
2806
2807
2808
2809
2810
2811
2812
2813
2814
2815
2816
2817
2818
2819
2820
2821
2822
2823
2824
2825
2826
2827
2828
2829
2830
2831
2832
2833
2834
2835
2836
2837
2838
2839
2840
2841
2842
2843
2844
2845
2846
2847
2848
2849
2850
2851
2852
2853
2854
2855
2856
2857
2858
2859
2860
2861
2862
2863
2864
2865
2866
2867
2868
2869
2870
2871
2872
2873
2874
2875
2876
2877
2878
2879
2880
2881
2882
2883
2884
2885
2886
2887
2888
2889
2890
2891
2892
2893
2894
2895
2896
2897
2898
2899
2900
2901
2902
2903
2904
2905
2906
2907
2908
2909
2910
2911
2912
2913
2914
2915
2916
2917
2918
2919
2920
2921
2922
2923
2924
2925
2926
2927
2928
2929
2930
2931
2932
2933
2934
2935
2936
2937
2938
2939
2940
2941
2942
2943
2944
2945
2946
2947
2948
2949
2950
2951
2952
2953
2954
2955
2956
2957
2958
2959
2960
2961
2962
2963
2964
2965
2966
2967
2968
2969
2970
2971
2972
2973
2974
2975
2976
2977
2978
2979
2980
2981
2982
2983
2984
2985
2986
2987
2988
2989
2990
2991
2992
2993
2994
2995
2996
2997
2998
2999
3000
3001
3002
3003
3004
3005
3006
3007
3008
3009
3010
3011
3012
3013
3014
3015
3016
3017
3018
3019
3020
3021
3022
3023
3024
3025
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054
3055
3056
3057
3058
3059
3060
3061
3062
3063
3064
3065
3066
3067
3068
3069
3070
3071
3072
3073
3074
3075
3076
3077
3078
3079
3080
3081
3082
3083
3084
3085
3086
3087
3088
3089
3090
3091
3092
3093
3094
3095
3096
3097
3098
3099
3100
3101
3102
3103
3104
3105
3106
3107
3108
3109
3110
3111
3112
3113
3114
3115
3116
3117
3118
3119
3120
3121
3122
3123
3124
3125
3126
3127
3128
3129
3130
3131
3132
3133
3134
3135
3136
3137
3138
3139
3140
3141
3142
3143
3144
3145
3146
3147
3148
3149
3150
3151
3152
3153
3154
3155
3156
3157
3158
3159
3160
3161
3162
3163
3164
3165
3166
3167
3168
3169
3170
3171
3172
3173
3174
3175
3176
3177
3178
3179
3180
3181
3182
3183
3184
3185
3186
3187
3188
3189
3190
3191
3192
3193
3194
3195
3196
3197
3198
3199
3200
3201
3202
3203
3204
3205
3206
3207
3208
3209
3210
3211
3212
3213
3214
3215
3216
3217
3218
3219
3220
3221
3222
3223
3224
3225
3226
3227
3228
3229
3230
3231
3232
3233
3234
3235
3236
3237
3238
3239
3240
3241
3242
3243
3244
3245
3246
3247
3248
3249
3250
3251
3252
3253
3254
3255
3256
3257
3258
3259
3260
3261
3262
3263
3264
3265
3266
3267
3268
3269
3270
3271
3272
3273
3274
3275
3276
3277
3278
3279
3280
3281
3282
3283
3284
3285
3286
3287
3288
3289
3290
3291
3292
3293
3294
3295
3296
3297
3298
3299
3300
3301
3302
3303
3304
3305
3306
3307
3308
3309
3310
3311
3312
3313
3314
3315
3316
3317
3318
3319
3320
3321
3322
3323
3324
3325
3326
3327
3328
3329
3330
3331
3332
3333
3334
3335
3336
3337
3338
3339
3340
3341
3342
3343
3344
3345
3346
3347
3348
3349
3350
3351
3352
3353
3354
3355
3356
3357
3358
3359
3360
3361
3362
3363
3364
3365
3366
3367
3368
3369
3370
3371
3372
3373
3374
3375
3376
3377
3378
3379
3380
3381
3382
3383
3384
3385
3386
3387
3388
3389
3390
3391
3392
3393
3394
3395
3396
3397
3398
3399
3400
3401
3402
3403
3404
3405
3406
3407
3408
3409
3410
3411
3412
3413
3414
3415
3416
3417
3418
3419
3420
3421
3422
3423
3424
3425
3426
3427
3428
3429
3430
3431
3432
3433
3434
3435
3436
3437
3438
3439
3440
3441
3442
3443
3444
3445
3446
3447
3448
3449
3450
3451
3452
3453
3454
3455
3456
3457
3458
3459
3460
3461
3462
3463
3464
3465
3466
3467
3468
3469
3470
3471
3472
3473
3474
3475
3476
3477
3478
3479
3480
3481
3482
3483
3484
3485
3486
3487
3488
3489
3490
3491
3492
3493
3494
3495
3496
3497
3498
3499
3500
3501
3502
3503
3504
3505
3506
3507
3508
3509
3510
3511
3512
3513
3514
3515
3516
3517
3518
3519
3520
3521
3522
3523
3524
3525
3526
3527
3528
3529
3530
3531
3532
3533
3534
3535
3536
3537
3538
3539
3540
3541
3542
3543
3544
3545
3546
3547
3548
3549
3550
3551
3552
3553
3554
3555
3556
3557
3558
3559
3560
3561
3562
3563
3564
3565
3566
3567
3568
3569
3570
3571
3572
3573
3574
3575
3576
3577
3578
3579
3580
3581
3582
3583
3584
3585
3586
3587
3588
3589
3590
3591
3592
3593
3594
3595
3596
3597
3598
3599
3600
3601
3602
3603
3604
3605
3606
3607
3608
3609
3610
3611
3612
3613
3614
3615
3616
3617
3618
3619
3620
3621
3622
3623
3624
3625
3626
3627
3628
3629
3630
3631
3632
3633
3634
3635
3636
3637
3638
3639
3640
3641
3642
3643
3644
3645
3646
3647
3648
3649
3650
3651
3652
3653
3654
3655
3656
3657
3658
3659
3660
3661
3662
3663
3664
3665
3666
3667
3668
3669
3670
3671
3672
3673
3674
3675
3676
3677
3678
3679
3680
3681
3682
3683
3684
3685
3686
3687
3688
3689
3690
3691
3692
3693
3694
3695
3696
3697
3698
3699
3700
3701
3702
3703
3704
3705
3706
3707
3708
3709
3710
3711
3712
3713
3714
3715
3716
3717
3718
3719
3720
3721
3722
3723
3724
3725
3726
3727
3728
3729
3730
3731
3732
3733
3734
3735
3736
3737
3738
3739
3740
3741
3742
3743
3744
3745
3746
3747
3748
3749
3750
3751
3752
3753
3754
3755
3756
3757
3758
3759
3760
3761
3762
3763
3764
3765
3766
3767
3768
3769
3770
3771
3772
3773
3774
3775
3776
3777
3778
3779
3780
3781
3782
3783
3784
3785
3786
3787
3788
3789
3790
3791
3792
3793
3794
3795
3796
3797
3798
3799
3800
3801
3802
3803
3804
3805
3806
3807
3808
3809
3810
3811
3812
3813
3814
3815
3816
3817
3818
3819
3820
3821
3822
3823
3824
3825
3826
3827
3828
3829
3830
3831
3832
3833
3834
3835
3836
3837
3838
3839
3840
3841
3842
3843
3844
3845
3846
3847
3848
3849
3850
3851
3852
3853
3854
3855
3856
3857
3858
3859
3860
3861
3862
3863
3864
3865
3866
3867
3868
3869
3870
3871
3872
3873
3874
3875
3876
3877
3878
3879
3880
3881
3882
3883
3884
3885
3886
3887
3888
3889
3890
3891
3892
3893
3894
3895
3896
3897
3898
3899
3900
3901
3902
3903
3904
3905
3906
3907
3908
3909
3910
3911
3912
3913
3914
3915
3916
3917
3918
3919
3920
3921
3922
3923
3924
3925
3926
3927
3928
3929
3930
3931
3932
3933
3934
3935
3936
3937
3938
3939
3940
3941
3942
3943
3944
3945
3946
3947
3948
3949
3950
3951
3952
3953
3954
3955
3956
3957
3958
3959
3960
3961
3962
3963
3964
3965
3966
3967
3968
3969
3970
3971
3972
3973
3974
3975
3976
3977
3978
3979
3980
3981
3982
3983
3984
3985
3986
3987
3988
3989
3990
3991
3992
3993
3994
3995
3996
3997
3998
3999
4000
4001
4002
4003
4004
4005
4006
4007
4008
4009
4010
4011
4012
4013
4014
4015
4016
4017
4018
4019
4020
4021
4022
4023
4024
4025
4026
4027
4028
4029
4030
4031
4032
4033
4034
4035
4036
4037
4038
4039
4040
4041
4042
4043
4044
4045
4046
4047
4048
4049
4050
4051
4052
4053
4054
4055
4056
4057
4058
4059
4060
4061
4062
4063
4064
4065
4066
4067
4068
4069
4070
4071
4072
4073
4074
4075
4076
4077
4078
4079
4080
4081
4082
4083
4084
4085
4086
4087
4088
4089
4090
4091
4092
4093
4094
4095
4096
4097
4098
4099
4100
4101
4102
4103
4104
4105
4106
4107
4108
4109
4110
4111
4112
4113
4114
4115
4116
4117
4118
4119
4120
4121
4122
4123
4124
4125
4126
4127
4128
4129
4130
4131
4132
4133
4134
4135
4136
4137
4138
4139
4140
4141
4142
4143
4144
4145
4146
4147
4148
4149
4150
4151
4152
4153
4154
4155
4156
4157
4158
4159
4160
4161
4162
4163
4164
4165
4166
4167
4168
4169
4170
4171
4172
4173
4174
4175
4176
4177
4178
4179
4180
4181
4182
4183
4184
4185
4186
4187
4188
4189
4190
4191
4192
4193
4194
4195
4196
4197
4198
4199
4200
4201
4202
4203
4204
4205
4206
4207
4208
4209
4210
4211
4212
4213
4214
4215
4216
4217
4218
4219
4220
4221
4222
4223
4224
4225
4226
4227
4228
4229
4230
4231
4232
4233
4234
4235
4236
4237
4238
4239
4240
4241
4242
4243
4244
4245
4246
4247
4248
4249
4250
4251
4252
4253
4254
4255
4256
4257
4258
4259
4260
4261
4262
4263
4264
4265
4266
4267
4268
4269
4270
4271
4272
4273
4274
4275
4276
4277
4278
4279
4280
4281
4282
4283
4284
4285
4286
4287
4288
4289
4290
4291
4292
4293
4294
4295
4296
4297
4298
4299
4300
4301
4302
4303
4304
4305
4306
4307
4308
4309
4310
4311
4312
4313
4314
4315
4316
4317
4318
4319
4320
4321
4322
4323
4324
4325
4326
4327
4328
4329
4330
4331
4332
4333
4334
4335
4336
4337
4338
4339
4340
4341
4342
4343
4344
4345
4346
4347
4348
4349
4350
4351
4352
4353
4354
4355
4356
4357
4358
4359
4360
4361
4362
4363
4364
4365
4366
4367
4368
4369
4370
4371
4372
4373
4374
4375
4376
4377
4378
4379
4380
4381
4382
4383
4384
4385
4386
4387
4388
4389
4390
4391
4392
4393
4394
4395
4396
4397
4398
4399
4400
4401
4402
4403
4404
4405
4406
4407
4408
4409
4410
4411
4412
4413
4414
4415
4416
4417
4418
4419
4420
4421
4422
4423
4424
4425
4426
4427
4428
4429
4430
4431
4432
4433
4434
4435
4436
4437
4438
4439
4440
4441
4442
4443
4444
4445
4446
4447
4448
4449
4450
4451
4452
4453
4454
4455
4456
4457
4458
4459
4460
4461
4462
4463
4464
4465
4466
4467
4468
4469
4470
4471
4472
4473
4474
4475
4476
4477
4478
4479
4480
4481
4482
4483
4484
4485
4486
4487
4488
4489
4490
4491
4492
4493
4494
4495
4496
4497
4498
4499
4500
4501
4502
4503
4504
4505
4506
4507
4508
4509
4510
4511
4512
4513
4514
4515
4516
4517
4518
4519
4520
4521
4522
4523
4524
4525
4526
4527
4528
4529
4530
4531
4532
4533
4534
4535
4536
4537
4538
4539
4540
4541
4542
4543
4544
4545
4546
4547
4548
4549
4550
4551
4552
4553
4554
4555
4556
4557
4558
4559
4560
4561
4562
4563
4564
4565
4566
4567
4568
4569
4570
4571
4572
4573
4574
4575
4576
4577
4578
4579
4580
4581
4582
4583
4584
4585
4586
4587
4588
4589
4590
4591
4592
4593
4594
4595
4596
4597
4598
4599
4600
4601
4602
4603
4604
4605
4606
4607
4608
4609
4610
4611
4612
4613
4614
4615
4616
4617
4618
4619
4620
4621
4622
4623
4624
4625
4626
4627
4628
4629
4630
4631
4632
4633
4634
4635
4636
4637
4638
4639
4640
4641
4642
4643
4644
4645
4646
4647
4648
4649
4650
4651
4652
4653
4654
4655
4656
4657
4658
4659
4660
4661
4662
4663
4664
4665
4666
4667
4668
4669
4670
4671
4672
4673
4674
4675
4676
4677
4678
4679
4680
4681
4682
4683
4684
4685
4686
4687
4688
4689
4690
4691
4692
4693
4694
4695
4696
4697
4698
4699
4700
4701
4702
4703
4704
4705
4706
4707
4708
4709
4710
4711
4712
4713
4714
4715
4716
4717
4718
4719
4720
4721
4722
4723
4724
4725
4726
4727
4728
4729
4730
4731
4732
4733
4734
4735
4736
4737
4738
4739
4740
4741
4742
4743
4744
4745
4746
4747
4748
4749
4750
4751
4752
4753
4754
4755
4756
4757
4758
4759
4760
4761
4762
4763
4764
4765
4766
4767
4768
4769
4770
4771
4772
4773
4774
4775
4776
4777
4778
4779
4780
4781
4782
4783
4784
4785
4786
4787
4788
4789
4790
4791
4792
4793
4794
4795
4796
4797
4798
4799
4800
4801
4802
4803
4804
4805
4806
4807
4808
4809
4810
4811
4812
4813
4814
4815
4816
4817
4818
4819
4820
4821
4822
4823
4824
4825
4826
4827
4828
4829
4830
4831
4832
4833
4834
4835
4836
4837
4838
4839
4840
4841
4842
4843
4844
4845
4846
4847
4848
4849
4850
4851
4852
4853
4854
4855
4856
4857
4858
4859
4860
4861
4862
4863
4864
4865
4866
4867
4868
4869
4870
4871
4872
4873
4874
4875
4876
4877
4878
4879
4880
4881
4882
4883
4884
4885
4886
4887
4888
4889
4890
4891
4892
4893
4894
4895
4896
4897
4898
4899
4900
4901
4902
4903
4904
4905
4906
4907
4908
4909
4910
4911
4912
4913
4914
4915
4916
4917
4918
4919
4920
4921
4922
4923
4924
4925
4926
4927
4928
4929
4930
4931
4932
4933
4934
4935
4936
4937
4938
4939
4940
4941
4942
4943
4944
4945
4946
4947
4948
4949
4950
4951
4952
4953
4954
4955
4956
4957
4958
4959
4960
4961
4962
4963
4964
4965
4966
4967
4968
4969
4970
4971
4972
4973
4974
4975
4976
4977
4978
4979
4980
4981
4982
4983
4984
4985
4986
4987
4988
4989
4990
4991
4992
4993
4994
4995
4996
4997
4998
4999
5000
5001
5002
5003
5004
5005
5006
5007
5008
5009
5010
5011
5012
5013
5014
5015
5016
5017
5018
5019
5020
5021
5022
5023
5024
5025
5026
5027
5028
5029
5030
5031
5032
5033
5034
5035
5036
5037
5038
5039
5040
5041
5042
5043
5044
5045
5046
5047
5048
5049
5050
5051
5052
5053
5054
5055
5056
5057
5058
5059
5060
5061
5062
5063
5064
5065
5066
5067
5068
5069
5070
5071
5072
5073
5074
5075
5076
5077
5078
5079
5080
5081
5082
5083
5084
5085
/****************************************************************************
*
* Copyright (c) 2020 Estimation and Control Library (ECL). All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
* are met:
*
* 1. Redistributions of source code must retain the above copyright
* notice, this list of conditions and the following disclaimer.
* 2. Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in
* the documentation and/or other materials provided with the
* distribution.
* 3. Neither the name ECL nor the names of its contributors may be
* used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
* FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
* COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
* BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
* OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
* AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
* ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
* POSSIBILITY OF SUCH DAMAGE.
*
****************************************************************************/
#include <gtest/gtest.h>
#include <math.h>
#include <mathlib/mathlib.h>
#include <geo_lookup/geo_mag_declination.h>
TEST(GeoLookupTest, declination) {
EXPECT_NEAR(get_mag_declination_degrees(-50, -180), 31.22632, 0.40062 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -175), 31.43125, 0.39369 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -170), 31.45948, 0.38791 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -165), 31.35965, 0.38308 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -160), 31.17413, 0.37904 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -155), 30.94218, 0.37566 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -150), 30.70103, 0.37282 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -145), 30.48387, 0.37042 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -140), 30.31479, 0.3684 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -135), 30.20241, 0.36666 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -130), 30.1344, 0.36518 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -125), 30.07459, 0.36393 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -120), 29.96382, 0.36293 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -115), 29.72417, 0.36222 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -110), 29.26595, 0.36189 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -105), 28.49674, 0.36206 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -100), 27.33155, 0.36289 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -95), 25.70302, 0.36451 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -90), 23.57105, 0.36709 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -85), 20.93084, 0.37074 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -80), 17.81904, 0.37556 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -75), 14.3166, 0.38159 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -70), 10.54671, 0.38884 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -65), 6.66556, 0.39729 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -60), 2.84542, 0.40694 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -55), -0.74804, 0.4178 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -50), -3.97893, 0.42987 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -45), -6.75956, 0.4431 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -40), -9.05999, 0.45733 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -35), -10.9081, 0.47225 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -30), -12.38211, 0.4873 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -25), -13.59895, 0.50169 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -20), -14.70193, 0.51445 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -15), -15.84874, 0.52446 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -10), -17.19785, 0.53063 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -5), -18.89007, 0.53212 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 0), -21.02515, 0.52859 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 5), -23.64, 0.52027 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 10), -26.69905, 0.50801 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 15), -30.10306, 0.49306 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 20), -33.71351, 0.47684 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 25), -37.38188, 0.46071 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 30), -40.97281, 0.44576 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 35), -44.37557, 0.43276 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 40), -47.50516, 0.42217 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 45), -50.29733, 0.41421 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 50), -52.7019, 0.40895 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 55), -54.67675, 0.40639 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 60), -56.18302, 0.40653 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 65), -57.18072, 0.40939 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 70), -57.62356, 0.41509 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 75), -57.45223, 0.42383 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 80), -56.58685, 0.43591 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 85), -54.92077, 0.45168 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 90), -52.32019, 0.47137 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 95), -48.63641, 0.49485 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 100), -43.73928, 0.52108 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 105), -37.57814, 0.54773 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 110), -30.2617, 0.57098 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 115), -22.11535, 0.58641 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 120), -13.65199, 0.59083 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 125), -5.43631, 0.58389 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 130), 2.07839, 0.56802 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 135), 8.63511, 0.54687 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 140), 14.15725, 0.52376 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 145), 18.68449, 0.50101 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 150), 22.3122, 0.47994 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 155), 25.15328, 0.46114 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 160), 27.32, 0.44477 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 165), 28.91772, 0.43075 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 170), 30.04369, 0.41889 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 175), 30.78674, 0.40894 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 180), 31.22632, 0.40062 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -180), 26.308, 0.37409 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -175), 26.61858, 0.37022 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -170), 26.7617, 0.36698 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -165), 26.77697, 0.3643 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -160), 26.69717, 0.36207 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -155), 26.55315, 0.36026 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -150), 26.37774, 0.35881 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -145), 26.20589, 0.35769 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -140), 26.07013, 0.35687 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -135), 25.99328, 0.35635 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -130), 25.98076, 0.35609 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -125), 26.01472, 0.3561 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -120), 26.05072, 0.35638 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -115), 26.0171, 0.35695 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -110), 25.81778, 0.35787 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -105), 25.33936, 0.35922 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -100), 24.46325, 0.36114 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -95), 23.08147, 0.36382 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -90), 21.11386, 0.36744 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -85), 18.52398, 0.37219 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -80), 15.33193, 0.37817 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -75), 11.62246, 0.38544 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -70), 7.54518, 0.39395 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -65), 3.30267, 0.40366 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -60), -0.87557, 0.41456 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -55), -4.76917, 0.42671 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -50), -8.20273, 0.44025 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -45), -11.07038, 0.4553 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -40), -13.34321, 0.47191 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -35), -15.06047, 0.48998 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -30), -16.31061, 0.50912 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -25), -17.21113, 0.52865 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -20), -17.89601, 0.54748 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -15), -18.51455, 0.56406 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -10), -19.23585, 0.57648 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -5), -20.24342, 0.58283 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 0), -21.70682, 0.58173 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 5), -23.73427, 0.57286 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 10), -26.33183, 0.55714 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 15), -29.39668, 0.5365 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 20), -32.75018, 0.51338 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 25), -36.18963, 0.49012 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 30), -39.53151, 0.46857 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 35), -42.63165, 0.44991 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 40), -45.38497, 0.43476 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 45), -47.71501, 0.42327 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 50), -49.56255, 0.41536 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 55), -50.87734, 0.41079 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 60), -51.6133, 0.40931 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 65), -51.72525, 0.41066 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 70), -51.16542, 0.41461 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 75), -49.8792, 0.42093 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 80), -47.8034, 0.42936 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 85), -44.87329, 0.43948 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 90), -41.04506, 0.45055 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 95), -36.33483, 0.46139 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 100), -30.86013, 0.47048 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 105), -24.85408, 0.47636 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 110), -18.62665, 0.47816 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 115), -12.48431, 0.47591 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 120), -6.65787, 0.47038 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 125), -1.27896, 0.4626 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 130), 3.59834, 0.45349 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 135), 7.96181, 0.44372 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 140), 11.81514, 0.43376 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 145), 15.16672, 0.42396 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 150), 18.02767, 0.41455 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 155), 20.41321, 0.40575 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 160), 22.34507, 0.39769 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 165), 23.85415, 0.39047 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 170), 24.98228, 0.38415 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 175), 25.78119, 0.3787 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 180), 26.308, 0.37409 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-40, -180), 22.51027, 0.35465 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -175), 22.85602, 0.35262 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -170), 23.0537, 0.35098 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -165), 23.13675, 0.34967 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -160), 23.12769, 0.34864 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -155), 23.04478, 0.34786 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -150), 22.90952, 0.34732 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -145), 22.75012, 0.34703 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -140), 22.59904, 0.347 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -135), 22.48639, 0.34726 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -130), 22.43201, 0.34781 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -125), 22.43825, 0.34868 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -120), 22.4832, 0.34988 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -115), 22.51416, 0.3514 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -110), 22.44286, 0.35326 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -105), 22.14672, 0.35552 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -100), 21.47999, 0.35828 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -95), 20.29477, 0.36175 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -90), 18.46762, 0.36613 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -85), 15.92583, 0.37164 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -80), 12.66921, 0.37841 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -75), 8.78497, 0.38643 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -70), 4.45072, 0.39561 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -65), -0.08165, 0.40582 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -60), -4.52493, 0.41703 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -55), -8.61034, 0.42937 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -50), -12.13757, 0.4431 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -45), -15.00312, 0.45855 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -40), -17.20056, 0.47597 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -35), -18.79731, 0.49549 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -30), -19.89861, 0.51703 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -25), -20.61346, 0.54027 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -20), -21.03793, 0.56444 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -15), -21.266, 0.58804 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -10), -21.42263, 0.60868 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -5), -21.69365, 0.62321 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 0), -22.31575, 0.62853 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 5), -23.50857, 0.62279 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 10), -25.38054, 0.60625 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 15), -27.8747, 0.58125 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 20), -30.7938, 0.55143 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 25), -33.87968, 0.52053 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 30), -36.89011, 0.49158 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 35), -39.637, 0.46645 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 40), -41.9876, 0.446 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 45), -43.84869, 0.43036 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 50), -45.15055, 0.41921 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 55), -45.83768, 0.41205 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 60), -45.86562, 0.40829 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 65), -45.20006, 0.40732 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 70), -43.8151, 0.40855 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 75), -41.69088, 0.41138 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 80), -38.81637, 0.41513 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 85), -35.20564, 0.41903 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 90), -30.92941, 0.42217 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 95), -26.14619, 0.42367 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 100), -21.10168, 0.42296 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 105), -16.07603, 0.42002 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 110), -11.30161, 0.41545 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 115), -6.90468, 0.41005 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 120), -2.90421, 0.40449 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 125), 0.74543, 0.39915 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 130), 4.10308, 0.39413 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 135), 7.2074, 0.38934 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 140), 10.06793, 0.38469 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 145), 12.67268, 0.38013 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 150), 14.99993, 0.37566 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 155), 17.02704, 0.37134 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 160), 18.73631, 0.36723 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 165), 20.12071, 0.36344 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 170), 21.18959, 0.36005 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 175), 21.97145, 0.35712 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 180), 22.51027, 0.35465 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -180), 19.46112, 0.33991 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -175), 19.80007, 0.33903 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -170), 20.01391, 0.33842 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -165), 20.13465, 0.33802 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -160), 20.17729, 0.33781 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -155), 20.14725, 0.33776 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -150), 20.05139, 0.33787 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -145), 19.90536, 0.33816 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -140), 19.73406, 0.33867 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -135), 19.56698, 0.33943 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -130), 19.43181, 0.34048 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -125), 19.3478, 0.34187 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -120), 19.31708, 0.3436 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -115), 19.31226, 0.34567 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -110), 19.26276, 0.34807 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -105), 19.04743, 0.35083 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -100), 18.50231, 0.35403 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -95), 17.4459, 0.35787 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -90), 15.71585, 0.36259 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -85), 13.20679, 0.36841 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -80), 9.90202, 0.37542 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -75), 5.89503, 0.38357 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -70), 1.39386, 0.39266 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -65), -3.30216, 0.40252 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -60), -7.85749, 0.41311 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -55), -11.97234, 0.42463 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -50), -15.44282, 0.4375 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -45), -18.18721, 0.45214 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -40), -20.23506, 0.46892 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -35), -21.68862, 0.48804 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -30), -22.67083, 0.50965 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -25), -23.27767, 0.53374 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -20), -23.55556, 0.56009 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -15), -23.51902, 0.58777 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -10), -23.2073, 0.61467 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -5), -22.75425, 0.63722 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 0), -22.42088, 0.65089 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 5), -22.5393, 0.65183 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 10), -23.37389, 0.63865 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 15), -24.99092, 0.61318 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 20), -27.23599, 0.57968 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 25), -29.82196, 0.5432 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 30), -32.44488, 0.50808 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 35), -34.85496, 0.47714 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 40), -36.87137, 0.45171 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 45), -38.36792, 0.43199 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 50), -39.25624, 0.4175 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 55), -39.4773, 0.40747 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 60), -38.99963, 0.40102 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 65), -37.81816, 0.39726 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 70), -35.94885, 0.39538 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 75), -33.42092, 0.3946 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 80), -30.27677, 0.3942 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 85), -26.58975, 0.39348 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 90), -22.495, 0.3918 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 95), -18.20558, 0.3888 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 100), -13.98167, 0.38451 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 105), -10.05478, 0.37941 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 110), -6.55381, 0.37418 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 115), -3.48187, 0.36939 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 120), -0.75038, 0.36535 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 125), 1.75953, 0.36207 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 130), 4.14293, 0.35937 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 135), 6.44444, 0.35703 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 140), 8.66095, 0.35484 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 145), 10.7611, 0.35269 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 150), 12.70476, 0.35054 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 155), 14.45279, 0.34839 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 160), 15.96998, 0.34631 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 165), 17.2289, 0.34435 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 170), 18.2182, 0.34259 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 175), 18.95026, 0.3411 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 180), 19.46112, 0.33991 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -180), 16.96866, 0.32861 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -175), 17.27172, 0.32844 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -170), 17.47119, 0.32849 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -165), 17.60262, 0.32871 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -160), 17.67786, 0.32908 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -155), 17.69218, 0.32956 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -150), 17.6381, 0.33017 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -145), 17.5164, 0.3309 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -140), 17.33974, 0.3318 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -135), 17.13067, 0.33291 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -130), 16.91811, 0.33427 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -125), 16.73268, 0.33592 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -120), 16.59739, 0.33788 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -115), 16.50995, 0.34014 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -110), 16.42004, 0.34268 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -105), 16.213, 0.34552 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -100), 15.71372, 0.34875 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -95), 14.71598, 0.35256 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -90), 13.02891, 0.35719 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -85), 10.52572, 0.36285 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -80), 7.18392, 0.36957 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -75), 3.111, 0.37723 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -70), -1.45339, 0.38555 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -65), -6.17165, 0.39433 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -60), -10.67965, 0.40359 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -55), -14.67082, 0.41365 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -50), -17.95707, 0.425 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -45), -20.4861, 0.43812 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -40), -22.31903, 0.45332 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -35), -23.58162, 0.47074 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -30), -24.40325, 0.49045 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -25), -24.86209, 0.51252 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -20), -24.95978, 0.53697 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -15), -24.64319, 0.56344 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -10), -23.87303, 0.59055 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -5), -22.71597, 0.61535 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 0), -21.41232, 0.63339 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 5), -20.35488, 0.63998 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 10), -19.94994, 0.63237 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 15), -20.43348, 0.61111 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 20), -21.77577, 0.57977 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 25), -23.72993, 0.54344 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 30), -25.9575, 0.50699 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 35), -28.13505, 0.47395 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 40), -30.00273, 0.44617 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 45), -31.37107, 0.42416 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 50), -32.11451, 0.40751 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 55), -32.16616, 0.39538 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 60), -31.51379, 0.38678 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 65), -30.19049, 0.38076 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 70), -28.25623, 0.37647 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 75), -25.77747, 0.37321 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 80), -22.82163, 0.37038 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 85), -19.47825, 0.36747 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 90), -15.89459, 0.36406 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 95), -12.28788, 0.36 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 100), -8.90257, 0.35545 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 105), -5.92727, 0.35084 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 110), -3.42742, 0.34664 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 115), -1.3377, 0.34319 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 120), 0.48907, 0.34058 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 125), 2.2106, 0.33873 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 130), 3.93661, 0.3374 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 135), 5.70433, 0.33635 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 140), 7.49038, 0.3354 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 145), 9.24243, 0.33444 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 150), 10.90666, 0.33346 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 155), 12.43726, 0.33244 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 160), 13.79314, 0.33144 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 165), 14.9366, 0.33049 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 170), 15.84205, 0.32966 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 175), 16.50927, 0.32902 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 180), 16.96866, 0.32861 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -180), 14.93089, 0.32004 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -175), 15.17684, 0.32031 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -170), 15.33569, 0.32077 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -165), 15.45058, 0.32141 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -160), 15.53495, 0.32218 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -155), 15.57823, 0.32306 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -150), 15.56141, 0.32403 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -145), 15.47113, 0.32511 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -140), 15.30632, 0.32631 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -135), 15.07924, 0.32766 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -130), 14.8153, 0.3292 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -125), 14.55116, 0.33096 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -120), 14.3252, 0.33295 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -115), 14.15504, 0.33514 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -110), 14.00663, 0.33753 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -105), 13.77057, 0.34014 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -100), 13.26416, 0.3431 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -95), 12.26567, 0.34659 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -90), 10.56953, 0.35083 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -85), 8.04333, 0.35599 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -80), 4.67301, 0.36203 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -75), 0.58837, 0.36872 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -70), -3.94201, 0.37578 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -65), -8.55822, 0.383 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -60), -12.89207, 0.39052 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -55), -16.6524, 0.39874 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -50), -19.67618, 0.40822 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -45), -21.93362, 0.41939 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -40), -23.49835, 0.43246 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -35), -24.4971, 0.44739 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -30), -25.04966, 0.46399 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -25), -25.21557, 0.4821 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -20), -24.97122, 0.50162 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -15), -24.23546, 0.52233 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -10), -22.94087, 0.54342 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -5), -21.1256, 0.56295 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 0), -19.00392, 0.57778 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 5), -16.96273, 0.58436 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 10), -15.45402, 0.58017 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 15), -14.82592, 0.565 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 20), -15.19603, 0.54093 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 25), -16.43639, 0.51156 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 30), -18.25014, 0.48074 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 35), -20.27485, 0.45166 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 40), -22.16517, 0.42633 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 45), -23.64287, 0.40559 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 50), -24.52094, 0.38936 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 55), -24.71013, 0.37705 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 60), -24.21022, 0.36784 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 65), -23.08483, 0.36095 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 70), -21.42358, 0.35569 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 75), -19.30761, 0.35152 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 80), -16.80211, 0.34798 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 85), -13.98594, 0.34471 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 90), -10.99695, 0.34138 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 95), -8.04649, 0.33787 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 100), -5.37107, 0.33427 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 105), -3.14205, 0.33087 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 110), -1.3956, 0.32797 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 115), -0.02849, 0.32576 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 120), 1.14478, 0.32426 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 125), 2.30994, 0.32336 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 130), 3.58557, 0.32286 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 135), 4.99741, 0.32255 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 140), 6.49843, 0.32227 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 145), 8.01389, 0.32196 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 150), 9.478, 0.3216 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 155), 10.8431, 0.3212 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 160), 12.06866, 0.32079 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 165), 13.11257, 0.32042 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 170), 13.93892, 0.32013 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 175), 14.53655, 0.31999 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 180), 14.93089, 0.32004 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -180), 13.28954, 0.31381 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -175), 13.46461, 0.31434 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -170), 13.56174, 0.31506 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -165), 13.63469, 0.31596 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -160), 13.70279, 0.31699 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -155), 13.75423, 0.31814 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -150), 13.76228, 0.31937 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -145), 13.70193, 0.32068 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -140), 13.55932, 0.32208 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -135), 13.33594, 0.32359 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -130), 13.05173, 0.32521 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -125), 12.74556, 0.32697 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -120), 12.46508, 0.32885 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -115), 12.23974, 0.33083 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -110), 12.04345, 0.33291 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -105), 11.76696, 0.33516 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -100), 11.2214, 0.33771 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -95), 10.17868, 0.34075 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -90), 8.43341, 0.34448 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -85), 5.86409, 0.34897 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -80), 2.4784, 0.3541 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -75), -1.56675, 0.35959 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -70), -5.98165, 0.36512 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -65), -10.4031, 0.37058 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -60), -14.48024, 0.37617 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -55), -17.94961, 0.38238 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -50), -20.67051, 0.38974 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -45), -22.61975, 0.39865 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -40), -23.86138, 0.40919 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -35), -24.50359, 0.42114 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -30), -24.64909, 0.43403 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -25), -24.35118, 0.44738 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -20), -23.59631, 0.4608 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -15), -22.32956, 0.47398 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -10), -20.51716, 0.48642 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -5), -18.21788, 0.49715 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 0), -15.62813, 0.50468 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 5), -13.07283, 0.50727 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 10), -10.93612, 0.50365 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 15), -9.55742, 0.49351 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 20), -9.13682, 0.47773 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 25), -9.68396, 0.45811 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 30), -11.02032, 0.4368 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 35), -12.82788, 0.41585 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 40), -14.72829, 0.39677 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 45), -16.36946, 0.38043 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 50), -17.49427, 0.36707 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 55), -17.97388, 0.3565 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 60), -17.80138, 0.34827 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 65), -17.05171, 0.34187 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 70), -15.82449, 0.33685 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 75), -14.19776, 0.33288 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 80), -12.22096, 0.32963 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 85), -9.95352, 0.32683 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 90), -7.51919, 0.32422 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 95), -5.12432, 0.32168 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 100), -3.00658, 0.31922 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 105), -1.33749, 0.31702 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 110), -0.14455, 0.31524 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 115), 0.6962, 0.314 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 120), 1.39818, 0.3133 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 125), 2.17056, 0.31304 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 130), 3.13955, 0.31306 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 135), 4.31918, 0.31319 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 140), 5.63886, 0.31332 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 145), 7.00164, 0.31339 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 150), 8.33068, 0.3134 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 155), 9.57831, 0.31337 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 160), 10.70722, 0.31333 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 165), 11.6737, 0.31329 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 170), 12.43351, 0.31333 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 175), 12.96533, 0.31348 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 180), 13.28954, 0.31381 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -180), 12.0036, 0.30967 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -175), 12.10317, 0.31036 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -170), 12.12548, 0.31123 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -165), 12.13716, 0.31228 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -160), 12.16712, 0.31346 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -155), 12.20642, 0.31476 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -150), 12.22423, 0.31613 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -145), 12.18644, 0.31757 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -140), 12.06825, 0.31906 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -135), 11.86175, 0.3206 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -130), 11.58182, 0.32221 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -125), 11.26762, 0.32386 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -120), 10.97055, 0.32554 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -115), 10.72304, 0.32725 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -110), 10.49749, 0.32899 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -105), 10.17909, 0.33085 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -100), 9.57452, 0.333 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -95), 8.45863, 0.33561 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -90), 6.64013, 0.33883 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -85), 4.02226, 0.34264 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -80), 0.6431, 0.34683 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -75), -3.31451, 0.35106 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -70), -7.55174, 0.35506 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -65), -11.71935, 0.35878 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -60), -15.49608, 0.36249 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -55), -18.64661, 0.36668 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -50), -21.04203, 0.37184 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -45), -22.65048, 0.37829 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -40), -23.51333, 0.38605 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -35), -23.71508, 0.39476 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -30), -23.34934, 0.40384 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -25), -22.48766, 0.41257 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -20), -21.16584, 0.42039 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -15), -19.39988, 0.42694 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -10), -17.2246, 0.43203 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -5), -14.73125, 0.43547 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 0), -12.08257, 0.43696 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 5), -9.50133, 0.43608 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 10), -7.24312, 0.43243 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 15), -5.56192, 0.4258 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 20), -4.66601, 0.41639 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 25), -4.66211, 0.40482 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 30), -5.50413, 0.39204 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 35), -6.97787, 0.37901 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 40), -8.74378, 0.3666 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 45), -10.42872, 0.35542 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 50), -11.72756, 0.34581 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 55), -12.4697, 0.33782 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 60), -12.62658, 0.33132 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 65), -12.26587, 0.32609 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 70), -11.48105, 0.32191 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 75), -10.33651, 0.31859 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 80), -8.86108, 0.31594 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 85), -7.0927, 0.31379 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 90), -5.1391, 0.31194 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 95), -3.19967, 0.31028 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 100), -1.51429, 0.30878 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 105), -0.26112, 0.30751 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 110), 0.53004, 0.30659 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 115), 0.99235, 0.30607 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 120), 1.35848, 0.30593 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 125), 1.8566, 0.3061 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 130), 2.61985, 0.30647 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 135), 3.65269, 0.3069 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 140), 4.86427, 0.30731 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 145), 6.13815, 0.30765 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 150), 7.38738, 0.30793 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 155), 8.56409, 0.30816 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 160), 9.63396, 0.30837 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 165), 10.552, 0.30857 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 170), 11.26617, 0.30882 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 175), 11.7451, 0.30917 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 180), 12.0036, 0.30967 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -180), 11.03235, 0.30745 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -175), 11.06344, 0.30825 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -170), 11.00911, 0.30922 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -165), 10.95055, 0.31033 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -160), 10.92952, 0.31158 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -155), 10.94355, 0.31292 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -150), 10.96042, 0.31432 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -145), 10.93849, 0.31576 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -140), 10.84322, 0.31721 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -135), 10.65886, 0.31867 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -130), 10.39663, 0.32013 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -125), 10.09549, 0.32159 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -120), 9.80639, 0.32301 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -115), 9.55724, 0.32441 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -110), 9.31138, 0.32582 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -105), 8.94517, 0.32737 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -100), 8.26428, 0.3292 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -95), 7.05572, 0.33149 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -90), 5.1536, 0.33428 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -85), 2.4949, 0.33749 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -80), -0.84973, 0.34082 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -75), -4.67841, 0.34393 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -70), -8.69647, 0.34657 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -65), -12.58008, 0.34876 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -60), -16.03976, 0.35079 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -55), -18.86075, 0.35312 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -50), -20.91515, 0.35619 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -45), -22.15588, 0.36024 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -40), -22.60339, 0.36524 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -35), -22.32905, 0.37085 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -30), -21.43499, 0.37645 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -25), -20.03255, 0.38136 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -20), -18.2272, 0.38501 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -15), -16.11639, 0.38716 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -10), -13.79694, 0.38785 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -5), -11.37086, 0.38733 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 0), -8.94478, 0.38586 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 5), -6.63068, 0.38354 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 10), -4.55664, 0.38032 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 15), -2.88066, 0.37603 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 20), -1.78317, 0.37061 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 25), -1.41903, 0.36418 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 30), -1.84161, 0.35702 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 35), -2.94396, 0.34953 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 40), -4.46179, 0.3421 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 45), -6.04833, 0.33506 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 50), -7.38648, 0.32867 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 55), -8.27926, 0.32308 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 60), -8.67537, 0.31832 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 65), -8.62688, 0.31434 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 70), -8.21323, 0.31107 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 75), -7.48134, 0.30845 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 80), -6.43901, 0.30639 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 85), -5.10273, 0.30478 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 90), -3.56182, 0.30352 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 95), -2.0034, 0.30251 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 100), -0.66414, 0.3017 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 105), 0.27273, 0.30112 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 110), 0.77076, 0.30081 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 115), 0.9637, 0.3008 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 120), 1.09418, 0.30105 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 125), 1.40293, 0.30153 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 130), 2.02865, 0.30214 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 135), 2.96989, 0.30281 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 140), 4.12177, 0.30345 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 145), 5.35334, 0.30403 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 150), 6.56914, 0.30456 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 155), 7.71963, 0.30502 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 160), 8.77125, 0.30545 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 165), 9.67631, 0.30587 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 170), 10.37449, 0.3063 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 175), 10.82379, 0.30681 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 180), 11.03235, 0.30745 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -180), 10.32516, 0.30702 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -175), 10.30886, 0.30792 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -170), 10.19016, 0.30895 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -165), 10.06599, 0.3101 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -160), 9.99394, 0.31134 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -155), 9.98122, 0.31265 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -150), 9.99618, 0.31397 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -145), 9.99009, 0.31528 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -140), 9.91849, 0.31657 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -135), 9.75815, 0.31782 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -130), 9.51746, 0.31903 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -125), 9.23483, 0.3202 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -120), 8.95807, 0.32131 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -115), 8.70599, 0.32239 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -110), 8.42938, 0.32352 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -105), 7.99644, 0.32482 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -100), 7.21734, 0.32644 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -95), 5.89955, 0.3285 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -90), 3.91037, 0.33099 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -85), 1.22406, 0.3337 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -80), -2.05949, 0.33633 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -75), -5.72921, 0.33853 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -70), -9.50547, 0.34008 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -65), -13.09426, 0.34105 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -60), -16.23331, 0.34171 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -55), -18.71984, 0.34247 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -50), -20.42252, 0.34372 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -45), -21.28387, 0.34566 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -40), -21.31719, 0.34825 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -35), -20.59833, 0.3512 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -30), -19.25192, 0.35402 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -25), -17.43294, 0.35618 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -20), -15.30675, 0.35725 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -15), -13.03042, 0.3571 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -10), -10.73564, 0.35589 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -5), -8.51463, 0.35396 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 0), -6.4162, 0.35167 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 5), -4.46159, 0.34923 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 10), -2.68099, 0.34667 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 15), -1.1544, 0.34388 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 20), -0.02558, 0.34073 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 25), 0.53584, 0.33716 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 30), 0.41667, 0.33322 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 35), -0.35852, 0.32902 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 40), -1.60121, 0.3247 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 45), -3.01196, 0.32041 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 50), -4.28804, 0.31632 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 55), -5.22508, 0.31254 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 60), -5.75715, 0.30916 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 65), -5.9221, 0.30622 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 70), -5.78574, 0.30373 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 75), -5.37974, 0.30169 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 80), -4.69426, 0.30009 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 85), -3.72636, 0.29888 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 90), -2.54525, 0.29802 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 95), -1.31985, 0.29743 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 100), -0.27523, 0.29709 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 105), 0.4067, 0.29698 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 110), 0.68343, 0.29709 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 115), 0.68308, 0.29743 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 120), 0.64856, 0.29796 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 125), 0.82505, 0.29865 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 130), 1.35449, 0.29946 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 135), 2.23403, 0.30033 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 140), 3.35295, 0.3012 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 145), 4.57269, 0.30204 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 150), 5.79153, 0.30283 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 155), 6.95643, 0.30356 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 160), 8.03136, 0.30424 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 165), 8.96369, 0.30489 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 170), 9.68372, 0.30554 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 175), 10.13772, 0.30623 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 180), 10.32516, 0.30702 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -180), 9.81655, 0.30821 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -175), 9.78974, 0.30924 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -170), 9.63533, 0.31035 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -165), 9.466, 0.31151 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -160), 9.35745, 0.3127 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -155), 9.32958, 0.3139 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -150), 9.35308, 0.31506 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -145), 9.37202, 0.31616 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -140), 9.33086, 0.31718 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -135), 9.19769, 0.31812 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -130), 8.97724, 0.31899 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -125), 8.70634, 0.31979 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -120), 8.42785, 0.32056 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -115), 8.15021, 0.32133 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -110), 7.81267, 0.32221 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -105), 7.27969, 0.32333 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -100), 6.37266, 0.32482 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -95), 4.92627, 0.32673 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -90), 2.84509, 0.32897 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -85), 0.14009, 0.33132 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -80), -3.06563, 0.3334 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -75), -6.56065, 0.33491 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -70), -10.08621, 0.33565 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -65), -13.37704, 0.33569 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -60), -16.19228, 0.3353 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -55), -18.33769, 0.33483 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -50), -19.68309, 0.33463 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -45), -20.17383, 0.33486 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -40), -19.83324, 0.33555 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -35), -18.75499, 0.33648 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -30), -17.08763, 0.33732 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -25), -15.01486, 0.33772 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -20), -12.73334, 0.33741 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -15), -10.42739, 0.33631 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -10), -8.2405, 0.33458 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -5), -6.25118, 0.33248 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 0), -4.46713, 0.33029 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 5), -2.84907, 0.3282 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 10), -1.36103, 0.32626 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 15), -0.02566, 0.32439 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 20), 1.04871, 0.32248 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 25), 1.69621, 0.32044 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 30), 1.77352, 0.31824 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 35), 1.25012, 0.31588 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 40), 0.25296, 0.31337 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 45), -0.96742, 0.31077 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 50), -2.13412, 0.30814 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 55), -3.04783, 0.3056 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 60), -3.63645, 0.30321 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 65), -3.9288, 0.30105 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 70), -3.98201, 0.29915 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 75), -3.81882, 0.29755 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 80), -3.41831, 0.29628 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 85), -2.76253, 0.29533 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 90), -1.90084, 0.29471 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 95), -0.97927, 0.29438 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 100), -0.20299, 0.29432 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 105), 0.25586, 0.2945 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 110), 0.35244, 0.29488 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 115), 0.20575, 0.29545 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 120), 0.05015, 0.29618 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 125), 0.12678, 0.29704 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 130), 0.57811, 0.29802 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 135), 1.4045, 0.29908 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 140), 2.49826, 0.30019 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 145), 3.721, 0.3013 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 150), 4.96772, 0.3024 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 155), 6.18033, 0.30345 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 160), 7.3172, 0.30445 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 165), 8.31855, 0.30539 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 170), 9.1043, 0.30631 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 175), 9.60766, 0.30724 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 180), 9.81655, 0.30821 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -180), 9.42534, 0.31084 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -175), 9.4409, 0.31205 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -170), 9.2972, 0.31325 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -165), 9.12044, 0.31441 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -160), 9.0051, 0.31553 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -155), 8.986, 0.31658 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -150), 9.03817, 0.31752 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -145), 9.09907, 0.31833 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -140), 9.1011, 0.31902 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -135), 9.00179, 0.3196 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -130), 8.79979, 0.32008 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -125), 8.52793, 0.3205 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -120), 8.2229, 0.32092 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -115), 7.8838, 0.3214 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -110), 7.44264, 0.32206 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -105), 6.76671, 0.32304 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -100), 5.69536, 0.32442 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -95), 4.09508, 0.32621 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -90), 1.90903, 0.32825 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -85), -0.81784, 0.33028 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -80), -3.94461, 0.33194 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -75), -7.26402, 0.33292 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -70), -10.53829, 0.33308 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -65), -13.52725, 0.33246 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -60), -16.0092, 0.3313 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -55), -17.80294, 0.32992 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -50), -18.7915, 0.32862 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -45), -18.93871, 0.3276 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -40), -18.29047, 0.32689 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -35), -16.96115, 0.32641 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -30), -15.11274, 0.32595 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -25), -12.93447, 0.32532 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -20), -10.62464, 0.32435 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -15), -8.36887, 0.32297 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -10), -6.31046, 0.32128 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -5), -4.5205, 0.31942 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 0), -2.98689, 0.31759 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 5), -1.63774, 0.31592 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 10), -0.39646, 0.31444 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 15), 0.75505, 0.31312 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 20), 1.7402, 0.3119 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 25), 2.40671, 0.31069 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 30), 2.6004, 0.30944 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 35), 2.25694, 0.3081 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 40), 1.45715, 0.30663 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 45), 0.40869, 0.30502 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 50), -0.63938, 0.30332 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 55), -1.49808, 0.30157 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 60), -2.09397, 0.29985 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 65), -2.45101, 0.29823 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 70), -2.62307, 0.29675 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 75), -2.6315, 0.29545 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 80), -2.45256, 0.29439 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 85), -2.05967, 0.2936 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 90), -1.48479, 0.29311 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 95), -0.84869, 0.29291 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 100), -0.3301, 0.293 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 105), -0.08337, 0.29333 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 110), -0.15041, 0.29387 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 115), -0.42225, 0.29458 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 120), -0.67955, 0.29543 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 125), -0.69235, 0.29641 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 130), -0.32013, 0.29753 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 135), 0.44474, 0.29879 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 140), 1.50565, 0.30014 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 145), 2.73172, 0.30156 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 150), 4.01809, 0.303 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 155), 5.30092, 0.30442 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 160), 6.53073, 0.30579 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 165), 7.63934, 0.30711 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 170), 8.5361, 0.30838 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 175), 9.14032, 0.30962 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 180), 9.42534, 0.31084 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -180), 9.05883, 0.31461 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -175), 9.1827, 0.31606 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -170), 9.11323, 0.31738 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -165), 8.98446, 0.31857 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -160), 8.9071, 0.3196 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -155), 8.93134, 0.32046 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -150), 9.03871, 0.32114 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -145), 9.16225, 0.32165 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -140), 9.22321, 0.322 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -135), 9.16733, 0.32221 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -130), 8.98417, 0.32233 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -125), 8.69928, 0.32241 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -120), 8.34162, 0.32251 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -115), 7.90309, 0.32275 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -110), 7.31393, 0.32324 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -105), 6.45098, 0.3241 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -100), 5.17691, 0.32539 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -95), 3.39251, 0.32703 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -90), 1.0787, 0.32886 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -85), -1.68836, 0.33058 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -80), -4.75228, 0.33184 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -75), -7.90897, 0.33239 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -70), -10.93728, 0.3321 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -65), -13.61869, 0.33101 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -60), -15.75381, 0.32931 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -55), -17.18563, 0.3273 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -50), -17.82568, 0.32524 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -45), -17.66887, 0.32334 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -40), -16.7878, 0.3217 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -35), -15.31105, 0.32029 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -30), -13.39837, 0.31904 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -25), -11.22382, 0.31784 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -20), -8.96669, 0.31657 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -15), -6.79882, 0.31518 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -10), -4.8585, 0.31368 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -5), -3.21691, 0.31214 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 0), -1.85963, 0.31066 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 5), -0.70376, 0.30933 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 10), 0.34843, 0.30819 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 15), 1.3429, 0.30722 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 20), 2.23091, 0.3064 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 25), 2.87922, 0.30566 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 30), 3.13544, 0.30495 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 35), 2.91659, 0.3042 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 40), 2.26992, 0.30334 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 45), 1.36691, 0.30233 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 50), 0.43002, 0.30118 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 55), -0.36354, 0.29993 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 60), -0.94065, 0.29864 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 65), -1.32213, 0.29736 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 70), -1.56197, 0.29615 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 75), -1.68626, 0.29505 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 80), -1.67637, 0.29412 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 85), -1.50434, 0.2934 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 90), -1.18887, 0.29295 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 95), -0.82552, 0.29279 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 100), -0.56274, 0.29292 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 105), -0.53093, 0.29331 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 110), -0.76376, 0.29392 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 115), -1.16109, 0.29469 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 120), -1.5217, 0.2956 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 125), -1.6312, 0.29666 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 130), -1.35269, 0.29789 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 135), -0.66853, 0.2993 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 140), 0.34147, 0.30089 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 145), 1.55971, 0.3026 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 150), 2.88462, 0.3044 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 155), 4.24688, 0.30621 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 160), 5.58833, 0.30801 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 165), 6.83254, 0.30976 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 170), 7.87977, 0.31145 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 175), 8.63629, 0.31306 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 180), 9.05883, 0.31461 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -180), 8.62436, 0.3191 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -175), 8.92814, 0.32084 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -170), 9.00891, 0.32235 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -165), 8.99903, 0.32358 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -160), 9.01819, 0.32453 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -155), 9.12911, 0.32521 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -150), 9.32132, 0.32564 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -145), 9.52756, 0.32585 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -140), 9.66172, 0.32589 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -135), 9.6589, 0.32581 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -130), 9.49746, 0.32566 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -125), 9.19215, 0.32549 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -120), 8.76236, 0.3254 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -115), 8.19442, 0.3255 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -110), 7.42146, 0.32589 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -105), 6.335, 0.32668 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -100), 4.82423, 0.32787 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -95), 2.82448, 0.32936 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -90), 0.35269, 0.33093 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -85), -2.48549, 0.33229 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -80), -5.51699, 0.33313 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -75), -8.53568, 0.33324 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -70), -11.33069, 0.33254 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -65), -13.70356, 0.33106 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -60), -15.48414, 0.32899 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -55), -16.55307, 0.32657 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -50), -16.86362, 0.32404 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -45), -16.44811, 0.3216 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -40), -15.40275, 0.31938 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -35), -13.85967, 0.31743 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -30), -11.96263, 0.31572 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -25), -9.8577, 0.31421 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -20), -7.69508, 0.31283 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -15), -5.62616, 0.3115 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -10), -3.78223, 0.3102 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -5), -2.23907, 0.30894 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 0), -0.99109, 0.30776 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 5), 0.04048, 0.30671 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 10), 0.95965, 0.30581 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 15), 1.82978, 0.30508 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 20), 2.62622, 0.30451 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 25), 3.23815, 0.30407 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 30), 3.52399, 0.3037 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 35), 3.3933, 0.30332 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 40), 2.86916, 0.30284 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 45), 2.09188, 0.3022 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 50), 1.25813, 0.30138 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 55), 0.53232, 0.30041 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 60), -0.01343, 0.29936 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 65), -0.39673, 0.29828 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 70), -0.67233, 0.29721 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 75), -0.87425, 0.29621 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 80), -0.99478, 0.29532 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 85), -1.01105, 0.29462 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 90), -0.93346, 0.29415 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 95), -0.83444, 0.29397 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 100), -0.83096, 0.29407 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 105), -1.02574, 0.29444 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 110), -1.43977, 0.29504 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 115), -1.97874, 0.2958 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 120), -2.45929, 0.29671 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 125), -2.68383, 0.29779 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 130), -2.5198, 0.29908 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 135), -1.93863, 0.30061 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 140), -1.00083, 0.30237 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 145), 0.19229, 0.30433 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 150), 1.54462, 0.30643 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 155), 2.98226, 0.30862 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 160), 4.43886, 0.31082 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 165), 5.83146, 0.31301 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 170), 7.05472, 0.31514 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 175), 8.00543, 0.31719 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 180), 8.62436, 0.3191 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -180), 8.04802, 0.32387 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -175), 8.59772, 0.32591 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -170), 8.90757, 0.32762 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -165), 9.09605, 0.32894 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -160), 9.27987, 0.32984 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -155), 9.52703, 0.33037 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -150), 9.83468, 0.33059 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -145), 10.14018, 0.33058 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -140), 10.3567, 0.33042 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -135), 10.41298, 0.33017 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -130), 10.27645, 0.32991 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -125), 9.94872, 0.32968 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -120), 9.43759, 0.32957 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -115), 8.72421, 0.32969 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -110), 7.74695, 0.33013 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -105), 6.41437, 0.33094 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -100), 4.64275, 0.3321 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -95), 2.4005, 0.33344 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -90), -0.26151, 0.33472 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -85), -3.20824, 0.33565 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -80), -6.24621, 0.33598 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -75), -9.16055, 0.33558 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -70), -11.74523, 0.33441 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -65), -13.82241, 0.33255 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -60), -15.25861, 0.33019 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -55), -15.98224, 0.32751 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -50), -15.99503, 0.32474 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -45), -15.36636, 0.32204 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -40), -14.20929, 0.31953 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -35), -12.65026, 0.3173 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -30), -10.8096, 0.31537 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -25), -8.80125, 0.31372 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -20), -6.74441, 0.31231 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -15), -4.76847, 0.31107 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -10), -2.99631, 0.30995 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -5), -1.50907, 0.30893 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 0), -0.31508, 0.30799 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 5), 0.65069, 0.30717 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 10), 1.48747, 0.30648 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 15), 2.26718, 0.30594 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 20), 2.98555, 0.30557 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 25), 3.55638, 0.30535 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 30), 3.85581, 0.30521 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 35), 3.79484, 0.30509 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 40), 3.37958, 0.30486 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 45), 2.72219, 0.30445 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 50), 1.9925, 0.30382 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 55), 1.33937, 0.30298 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 60), 0.83236, 0.30202 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 65), 0.4576, 0.301 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 70), 0.16095, 0.29997 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 75), -0.09938, 0.29898 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 80), -0.32892, 0.29808 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 85), -0.51431, 0.29733 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 90), -0.66224, 0.2968 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 95), -0.82522, 0.29655 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 100), -1.08971, 0.29658 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 105), -1.52911, 0.29688 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 110), -2.14813, 0.2974 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 115), -2.85423, 0.29809 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 120), -3.47879, 0.29894 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 125), -3.83967, 0.29997 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 130), -3.80885, 0.30124 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 135), -3.34787, 0.30278 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 140), -2.49896, 0.30462 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 145), -1.34741, 0.30672 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 150), 0.01675, 0.30903 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 155), 1.51588, 0.31149 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 160), 3.07686, 0.31403 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 165), 4.6131, 0.31659 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 170), 6.01872, 0.31913 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 175), 7.18731, 0.32158 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 180), 8.04802, 0.32387 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -180), 7.29559, 0.32852 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -175), 8.13944, 0.33082 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -170), 8.74628, 0.33272 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -165), 9.20879, 0.33413 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -160), 9.62623, 0.33504 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -155), 10.06099, 0.33549 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -150), 10.51432, 0.33561 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -145), 10.93214, 0.3355 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -140), 11.23441, 0.3353 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -135), 11.35018, 0.33509 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -130), 11.23922, 0.33493 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -125), 10.88999, 0.33488 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -120), 10.29746, 0.33502 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -115), 9.43671, 0.33541 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -110), 8.25106, 0.33611 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -105), 6.66533, 0.33714 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -100), 4.62084, 0.33839 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -95), 2.11636, 0.33966 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -90), -0.76504, 0.34067 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -85), -3.85765, 0.34112 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -80), -6.94304, 0.34084 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -75), -9.79215, 0.33978 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -70), -12.20128, 0.33802 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -65), -14.01523, 0.33571 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -60), -15.14181, 0.33304 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -55), -15.56032, 0.33018 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -50), -15.31946, 0.32731 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -45), -14.51986, 0.32453 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -40), -13.28429, 0.32195 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -35), -11.72893, 0.31965 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -30), -9.95048, 0.31766 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -25), -8.03387, 0.31599 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -20), -6.07081, 0.31461 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -15), -4.16992, 0.31347 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -10), -2.4441, 0.31253 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -5), -0.97768, 0.31171 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 0), 0.20668, 0.31101 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 5), 1.15562, 0.31041 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 10), 1.95587, 0.30993 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 15), 2.68056, 0.30958 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 20), 3.34188, 0.3094 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 25), 3.87923, 0.30937 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 30), 4.19181, 0.30943 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 35), 4.19932, 0.3095 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 40), 3.89664, 0.30945 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 45), 3.36926, 0.30918 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 50), 2.75726, 0.30862 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 55), 2.18909, 0.30781 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 60), 1.72828, 0.30682 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 65), 1.36445, 0.30575 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 70), 1.0465, 0.30465 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 75), 0.72778, 0.30359 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 80), 0.39073, 0.30262 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 85), 0.03793, 0.30179 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 90), -0.33671, 0.30118 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 95), -0.76907, 0.30083 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 100), -1.31716, 0.30075 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 105), -2.02475, 0.30093 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 110), -2.87724, 0.30133 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 115), -3.77908, 0.30188 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 120), -4.57163, 0.30258 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 125), -5.08547, 0.30347 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 130), -5.19749, 0.3046 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 135), -4.86241, 0.30604 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 140), -4.10821, 0.30781 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 145), -3.00733, 0.3099 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 150), -1.645, 0.31226 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 155), -0.10198, 0.31482 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 160), 1.5436, 0.31754 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 165), 3.20474, 0.32034 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 170), 4.78065, 0.32316 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 175), 6.16932, 0.32592 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 180), 7.29559, 0.32852 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -180), 6.38632, 0.33285 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -175), 7.54618, 0.33531 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -170), 8.49285, 0.33734 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -165), 9.28539, 0.33885 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -160), 9.99311, 0.33982 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -155), 10.66109, 0.34032 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -150), 11.2887, 0.3405 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -145), 11.83113, 0.34051 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -140), 12.22052, 0.3405 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -135), 12.3928, 0.34057 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -130), 12.3051, 0.3408 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -125), 11.93522, 0.34124 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -120), 11.26564, 0.34194 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -115), 10.26435, 0.34292 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -110), 8.8774, 0.34421 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -105), 7.04264, 0.34574 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -100), 4.72257, 0.34734 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -95), 1.94296, 0.3487 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -90), -1.1819, 0.3495 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -85), -4.45361, 0.34945 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -80), -7.62495, 0.34844 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -75), -10.45014, 0.34656 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -70), -12.7284, 0.34402 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -65), -14.32961, 0.3411 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -60), -15.20334, 0.33802 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -55), -15.37556, 0.33495 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -50), -14.93368, 0.332 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -45), -14.00049, 0.32925 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -40), -12.70273, 0.32672 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -35), -11.14639, 0.32448 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -30), -9.40991, 0.32255 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -25), -7.55712, 0.32095 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -20), -5.65893, 0.31967 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -15), -3.80598, 0.31867 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -10), -2.09981, 0.31791 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -5), -0.62399, 0.31732 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 0), 0.58741, 0.31687 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 5), 1.56209, 0.31653 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 10), 2.3699, 0.31629 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 15), 3.07934, 0.31617 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 20), 3.71483, 0.31619 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 25), 4.24077, 0.31635 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 30), 4.5827, 0.31659 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 35), 4.6744, 0.31682 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 40), 4.50403, 0.31689 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 45), 4.13115, 0.31668 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 50), 3.66222, 0.31612 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 55), 3.19909, 0.31525 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 60), 2.7941, 0.31415 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 65), 2.43875, 0.31294 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 70), 2.08723, 0.31171 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 75), 1.69244, 0.31053 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 80), 1.22887, 0.30944 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 85), 0.69023, 0.30852 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 90), 0.07032, 0.3078 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 95), -0.65237, 0.30734 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 100), -1.50925, 0.30713 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 105), -2.51436, 0.30715 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 110), -3.63093, 0.30735 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 115), -4.75533, 0.30767 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 120), -5.73387, 0.30811 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 125), -6.40718, 0.30871 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 130), -6.65839, 0.30956 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 135), -6.44018, 0.31072 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 140), -5.77257, 0.31224 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 145), -4.72029, 0.31411 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 150), -3.36615, 0.31631 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 155), -1.7938, 0.31878 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 160), -0.08447, 0.32147 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 165), 1.67738, 0.3243 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 170), 3.40049, 0.32722 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 175), 4.99401, 0.33011 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 180), 6.38632, 0.33285 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -180), 5.39109, 0.33705 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -175), 6.86049, 0.3395 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -170), 8.15567, 0.34157 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -165), 9.3009, 0.34318 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -160), 10.3296, 0.3443 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -155), 11.26159, 0.34504 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -150), 12.08775, 0.34551 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -145), 12.76955, 0.34592 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -140), 13.25203, 0.3464 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -135), 13.48117, 0.34709 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -130), 13.4155, 0.34805 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -125), 13.02559, 0.34935 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -120), 12.28328, 0.351 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -115), 11.14907, 0.353 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -110), 9.56923, 0.3553 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -105), 7.49065, 0.35774 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -100), 4.89281, 0.36003 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -95), 1.82587, 0.36175 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -90), -1.56465, 0.36247 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -85), -5.0452, 0.3619 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -80), -8.33757, 0.36001 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -75), -11.17978, 0.35707 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -70), -13.37699, 0.35349 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -65), -14.82595, 0.3497 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -60), -15.51491, 0.346 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -55), -15.50774, 0.34256 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -50), -14.91901, 0.33945 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -45), -13.88392, 0.33668 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -40), -12.52906, 0.33423 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -35), -10.95289, 0.33211 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -30), -9.22353, 0.33031 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -25), -7.39346, 0.32885 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -20), -5.52069, 0.32773 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -15), -3.68175, 0.32692 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -10), -1.96583, 0.32638 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -5), -0.4516, 0.32607 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 0), 0.82037, 0.32592 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 5), 1.86136, 0.32589 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 10), 2.72318, 0.32596 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 15), 3.46564, 0.32612 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 20), 4.1208, 0.32639 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 25), 4.67537, 0.32675 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 30), 5.08152, 0.32716 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 35), 5.28984, 0.3275 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 40), 5.28479, 0.32764 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 45), 5.10063, 0.32743 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 50), 4.80714, 0.32682 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 55), 4.47379, 0.32585 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 60), 4.13596, 0.32461 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 65), 3.7841, 0.32324 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 70), 3.3786, 0.32186 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 75), 2.87618, 0.32055 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 80), 2.2488, 0.31937 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 85), 1.48566, 0.31836 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 90), 0.58245, 0.31755 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 95), -0.46796, 0.31697 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 100), -1.67083, 0.31661 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 105), -3.00944, 0.31641 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 110), -4.42156, 0.3163 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 115), -5.79069, 0.31623 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 120), -6.96387, 0.31622 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 125), -7.79061, 0.31633 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 130), -8.16314, 0.31666 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 135), -8.03842, 0.31732 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 140), -7.43582, 0.31836 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 145), -6.41815, 0.3198 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 150), -5.06841, 0.32161 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 155), -3.47275, 0.32375 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 160), -1.71367, 0.32617 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 165), 0.12901, 0.3288 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 170), 1.97583, 0.33156 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 175), 3.75073, 0.33435 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 180), 5.39109, 0.33705 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -180), 4.41079, 0.34175 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -175), 6.16002, 0.34406 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -170), 7.77869, 0.34612 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -165), 9.26172, 0.34785 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -160), 10.60918, 0.34926 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -155), 11.8143, 0.35044 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -150), 12.85519, 0.35152 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -145), 13.69429, 0.35266 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -140), 14.28521, 0.35403 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -135), 14.58203, 0.35575 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -130), 14.54501, 0.35791 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -125), 14.13934, 0.36054 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -120), 13.32776, 0.36367 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -115), 12.06326, 0.36725 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -110), 10.29035, 0.37114 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -105), 7.96186, 0.37506 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -100), 5.07175, 0.37855 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -95), 1.69425, 0.38098 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -90), -1.99143, 0.38177 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -85), -5.71333, 0.38059 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -80), -9.16127, 0.37755 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -75), -12.06005, 0.37317 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -70), -14.22514, 0.36813 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -65), -15.58149, 0.36305 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -60), -16.15128, 0.35835 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -55), -16.02662, 0.35422 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -50), -15.33825, 0.3507 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -45), -14.22566, 0.34774 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -40), -12.81259, 0.34527 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -35), -11.19316, 0.34322 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -30), -9.43253, 0.34156 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -25), -7.58045, 0.34027 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -20), -5.68938, 0.33935 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -15), -3.82571, 0.33879 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -10), -2.06638, 0.33854 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -5), -0.48166, 0.33856 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 0), 0.88659, 0.33878 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 5), 2.03772, 0.33914 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 10), 3.00699, 0.33958 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 15), 3.84325, 0.34008 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 20), 4.58139, 0.34063 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 25), 5.22526, 0.34121 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 30), 5.75023, 0.34175 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 35), 6.12292, 0.34217 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 40), 6.32519, 0.34232 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 45), 6.36735, 0.3421 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 50), 6.28198, 0.34145 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 55), 6.10299, 0.34041 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 60), 5.84407, 0.33911 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 65), 5.49048, 0.33769 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 70), 5.00761, 0.33627 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 75), 4.35819, 0.33495 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 80), 3.51658, 0.33378 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 85), 2.47295, 0.33277 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 90), 1.22924, 0.33194 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 95), -0.20439, 0.33127 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 100), -1.80462, 0.33069 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 105), -3.52086, 0.33013 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 110), -5.26118, 0.32951 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 115), -6.89199, 0.32879 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 120), -8.25873, 0.32801 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 125), -9.22098, 0.3273 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 130), -9.68498, 0.32679 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 135), -9.61919, 0.32663 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 140), -9.04968, 0.3269 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 145), -8.04253, 0.32763 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 150), -6.68295, 0.3288 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 155), -5.0589, 0.33036 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 160), -3.25237, 0.33227 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 165), -1.3377, 0.33445 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 170), 0.6172, 0.33682 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 175), 2.55072, 0.3393 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 180), 4.41079, 0.34175 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -180), 3.54019, 0.34825 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -175), 5.52652, 0.35036 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -170), 7.42074, 0.35241 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -165), 9.19784, 0.35437 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -160), 10.83345, 0.35625 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -155), 12.29932, 0.35814 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -150), 13.56034, 0.36017 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -145), 14.57493, 0.36249 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -140), 15.29834, 0.36524 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -135), 15.68641, 0.36857 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -130), 15.6972, 0.37255 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -125), 15.28861, 0.37725 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -120), 14.41329, 0.38265 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -115), 13.0153, 0.38866 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -110), 11.03514, 0.39504 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -105), 8.42954, 0.40131 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -100), 5.20711, 0.40671 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -95), 1.47013, 0.41031 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -90), -2.56146, 0.41126 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -85), -6.57082, 0.4092 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -80), -10.21445, 0.40446 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -75), -13.20824, 0.39792 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -70), -15.38366, 0.39068 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -65), -16.69568, 0.38361 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -60), -17.19671, 0.37727 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -55), -16.99957, 0.37189 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -50), -16.24347, 0.36749 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -45), -15.06712, 0.36397 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -40), -13.59022, 0.36119 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -35), -11.90492, 0.35902 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -30), -10.07811, 0.35739 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -25), -8.16234, 0.35623 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -20), -6.20943, 0.35552 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -15), -4.27897, 0.35522 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -10), -2.4365, 0.3553 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -5), -0.7419, 0.3557 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 0), 0.76599, 0.35634 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 5), 2.07952, 0.35712 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 10), 3.22049, 0.35798 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 15), 4.22599, 0.35885 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 20), 5.1288, 0.35969 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 25), 5.9425, 0.36048 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 30), 6.65852, 0.36114 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 35), 7.25501, 0.36162 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 40), 7.71072, 0.3618 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 45), 8.01453, 0.36162 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 50), 8.16506, 0.36106 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 55), 8.16158, 0.36018 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 60), 7.99359, 0.35909 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 65), 7.63652, 0.35793 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 70), 7.05658, 0.35683 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 75), 6.22127, 0.35584 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 80), 5.10955, 0.355 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 85), 3.71738, 0.35427 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 90), 2.05891, 0.3536 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 95), 0.16777, 0.35287 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 100), -1.89774, 0.35198 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 105), -4.04657, 0.3508 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 110), -6.15127, 0.34926 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 115), -8.05771, 0.34738 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 120), -9.61003, 0.3453 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 125), -10.68196, 0.34322 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 130), -11.20055, 0.34138 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 135), -11.15333, 0.33996 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 140), -10.57956, 0.33907 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 145), -9.55257, 0.33874 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 150), -8.1609, 0.33897 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 155), -6.49335, 0.33969 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 160), -4.63024, 0.34085 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 165), -2.64063, 0.34236 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 170), -0.58324, 0.34416 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 175), 1.49148, 0.34616 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 180), 3.54019, 0.34825 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -180), 2.83333, 0.35866 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -175), 5.01277, 0.36062 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -170), 7.12823, 0.36279 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -165), 9.14445, 0.36516 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -160), 11.02353, 0.36779 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -155), 12.72394, 0.37075 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -150), 14.2004, 0.37419 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -145), 15.40479, 0.37825 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -140), 16.28766, 0.38308 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -135), 16.79916, 0.38884 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -130), 16.88825, 0.39564 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -125), 16.49989, 0.40355 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -120), 15.57163, 0.41256 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -115), 14.03352, 0.42248 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -110), 11.81719, 0.43288 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -105), 8.88052, 0.44295 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -100), 5.24916, 0.45144 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -95), 1.06313, 0.45685 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -90), -3.40178, 0.45792 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -85), -7.77049, 0.45425 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -80), -11.6617, 0.4466 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -75), -14.7873, 0.43652 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -70), -17.00277, 0.42567 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -65), -18.29777, 0.41534 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -60), -18.75452, 0.40624 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -55), -18.50331, 0.39866 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -50), -17.68848, 0.39258 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -45), -16.4463, 0.38783 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -40), -14.89261, 0.38421 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -35), -13.11879, 0.38152 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -30), -11.19493, 0.37962 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -25), -9.17794, 0.37838 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -20), -7.12075, 0.37774 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -15), -5.07791, 0.37763 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -10), -3.10474, 0.37799 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -5), -1.25033, 0.37873 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 0), 0.45206, 0.37974 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 5), 1.99177, 0.38092 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 10), 3.38033, 0.38217 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 15), 4.64297, 0.38339 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 20), 5.80559, 0.38452 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 25), 6.88294, 0.38551 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 30), 7.87302, 0.38633 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 35), 8.75877, 0.38693 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 40), 9.51438, 0.3873 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 45), 10.11132, 0.38742 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 50), 10.52082, 0.38733 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 55), 10.71253, 0.3871 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 60), 10.65182, 0.38684 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 65), 10.29954, 0.38667 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 70), 9.61565, 0.38666 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 75), 8.56652, 0.38682 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 80), 7.13339, 0.38707 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 85), 5.31993, 0.38726 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 90), 3.15857, 0.38717 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 95), 0.71583, 0.38655 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 100), -1.90335, 0.38516 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 105), -4.55588, 0.38284 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 110), -7.07041, 0.37961 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 115), -9.26955, 0.37564 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 120), -10.99931, 0.37128 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 125), -12.15463, 0.36693 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 130), -12.6916, 0.36294 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 135), -12.62411, 0.35957 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 140), -12.00977, 0.35694 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 145), -10.93191, 0.3551 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 150), -9.48288, 0.35399 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 155), -7.75156, 0.35356 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 160), -5.8161, 0.35372 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 165), -3.74136, 0.35439 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 170), -1.5801, 0.35548 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 175), 0.62407, 0.35693 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 180), 2.83333, 0.35866 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -180), 2.28547, 0.3764 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -175), 4.62276, 0.37839 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -170), 6.91382, 0.38093 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -165), 9.12049, 0.38406 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -160), 11.20026, 0.38785 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -155), 13.1062, 0.39243 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -150), 14.78731, 0.39796 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -145), 16.18919, 0.40462 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -140), 17.25428, 0.41261 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -135), 17.92127, 0.42214 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -130), 18.12307, 0.4334 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -125), 17.78391, 0.44651 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -120), 16.81738, 0.46144 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -115), 15.12932, 0.47791 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -110), 12.63227, 0.49516 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -105), 9.27867, 0.51171 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -100), 5.11423, 0.52536 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -95), 0.33399, 0.53351 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -90), -4.70216, 0.53421 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -85), -9.53515, 0.52718 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -80), -13.73637, 0.51408 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -75), -17.02095, 0.49768 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -70), -19.28183, 0.4806 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -65), -20.55374, 0.46468 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -60), -20.95365, 0.45087 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -55), -20.63082, 0.43945 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -50), -19.73547, 0.43031 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -45), -18.40241, 0.42321 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -40), -16.74453, 0.41782 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -35), -14.85244, 0.41385 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -30), -12.79825, 0.41107 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -25), -10.64151, 0.40928 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -20), -8.43505, 0.40834 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -15), -6.22849, 0.40811 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -10), -4.06799, 0.40849 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -5), -1.99273, 0.40934 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 0), -0.02984, 0.41055 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 5), 1.80902, 0.41196 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 10), 3.52728, 0.41346 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 15), 5.13833, 0.41494 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 20), 6.65725, 0.41634 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 25), 8.09226, 0.41761 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 30), 9.43902, 0.41876 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 35), 10.67878, 0.4198 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 40), 11.78012, 0.4208 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 45), 12.70199, 0.42182 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 50), 13.39658, 0.42297 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 55), 13.81104, 0.42437 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 60), 13.88874, 0.42613 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 65), 13.57139, 0.42834 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 70), 12.80331, 0.43099 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 75), 11.53874, 0.43395 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 80), 9.75215, 0.43694 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 85), 7.45106, 0.43951 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 90), 4.68961, 0.44107 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 95), 1.57912, 0.44101 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 100), -1.71058, 0.43885 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 105), -4.96517, 0.43444 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 110), -7.95641, 0.42804 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 115), -10.48079, 0.42026 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 120), -12.39198, 0.41188 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 125), -13.61572, 0.40366 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 130), -14.14623, 0.39615 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 135), -14.03037, 0.38968 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 140), -13.34815, 0.3844 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 145), -12.19475, 0.38029 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 150), -10.66675, 0.37729 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 155), -8.85297, 0.37528 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 160), -6.82949, 0.37413 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 165), -4.65844, 0.37375 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 170), -2.3895, 0.37405 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 175), -0.06313, 0.37494 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 180), 2.28547, 0.3764 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -180), 1.83383, 0.40746 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -175), 4.30724, 0.40978 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -170), 6.7448, 0.41312 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -165), 9.10934, 0.41757 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -160), 11.35901, 0.42326 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -155), 13.44665, 0.43037 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -150), 15.31943, 0.43913 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -145), 16.91838, 0.44983 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -140), 18.17727, 0.46279 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -135), 19.02055, 0.47837 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -130), 19.36014, 0.49692 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -125), 19.09192, 0.51871 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -120), 18.09418, 0.54378 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -115), 16.23313, 0.57169 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -110), 13.38449, 0.60106 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -105), 9.48188, 0.62914 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -100), 4.59424, 0.65166 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -95), -0.99795, 0.6638 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -90), -6.79929, 0.66234 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -85), -12.2229, 0.64768 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -80), -16.78185, 0.62366 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -75), -20.21279, 0.59543 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -70), -22.47233, 0.56724 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -65), -23.65972, 0.54166 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -60), -23.93708, 0.51977 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -55), -23.47757, 0.50177 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -50), -22.43991, 0.48734 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -45), -20.9591, 0.47602 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -40), -19.14553, 0.46732 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -35), -17.0878, 0.46079 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -30), -14.85715, 0.45605 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -25), -12.51221, 0.45279 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -20), -10.103, 0.45076 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -15), -7.67328, 0.44975 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -10), -5.26107, 0.44958 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -5), -2.89737, 0.45006 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 0), -0.60446, 0.45103 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 5), 1.60517, 0.45235 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 10), 3.72784, 0.45388 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 15), 5.76545, 0.45553 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 20), 7.72042, 0.45724 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 25), 9.5902, 0.45903 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 30), 11.36277, 0.46093 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 35), 13.01408, 0.46306 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 40), 14.50744, 0.46555 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 45), 15.79435, 0.46858 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 50), 16.81585, 0.47236 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 55), 17.50389, 0.47709 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 60), 17.78284, 0.48295 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 65), 17.57168, 0.49003 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 70), 16.78859, 0.49826 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 75), 15.35976, 0.50733 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 80), 13.23473, 0.51655 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 85), 10.40956, 0.52481 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 90), 6.95459, 0.53067 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 95), 3.03631, 0.53259 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 100), -1.08431, 0.52955 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 105), -5.08975, 0.5214 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 110), -8.67166, 0.50911 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 115), -11.59385, 0.49428 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 120), -13.72434, 0.47866 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 125), -15.03107, 0.46364 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 130), -15.55621, 0.45012 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 135), -15.38608, 0.43853 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 140), -14.6267, 0.42895 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 145), -13.38704, 0.42131 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 150), -11.76897, 0.41543 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 155), -9.86186, 0.4111 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 160), -7.74059, 0.40814 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 165), -5.46585, 0.4064 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 170), -3.08627, 0.40575 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 175), -0.64156, 0.40611 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 180), 1.83383, 0.40746 + 1);
}
TEST(GeoLookupTest, inclination) {
EXPECT_NEAR(get_mag_inclination_degrees(-50, -180), -71.61084, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -175), -70.62874, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -170), -69.66156, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -165), -68.70996, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -160), -67.77313, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -155), -66.84867, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -150), -65.93165, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -145), -65.01326, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -140), -64.07996, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -135), -63.11352, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -130), -62.09258, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -125), -60.99525, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -120), -59.80277, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -115), -58.50354, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -110), -57.09767, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -105), -55.60145, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -100), -54.05122, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -95), -52.50565, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -90), -51.04505, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -85), -49.76644, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -80), -48.77365, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -75), -48.16244, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -70), -48.00301, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -65), -48.32392, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -60), -49.10299, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -55), -50.26916, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -50), -51.7152, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -45), -53.31692, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -40), -54.95222, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -35), -56.51501, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -30), -57.92171, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -25), -59.11145, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -20), -60.04289, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -15), -60.6911, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -10), -61.04716, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -5), -61.12106, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 0), -60.94633, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 5), -60.58335, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 10), -60.11826, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 15), -59.65548, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 20), -59.30388, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 25), -59.16, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 30), -59.29354, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 35), -59.73961, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 40), -60.49909, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 45), -61.54488, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 50), -62.83111, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 55), -64.30243, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 60), -65.90204, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 65), -67.57743, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 70), -69.28362, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 75), -70.98365, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 80), -72.64657, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 85), -74.2438, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 90), -75.74507, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 95), -77.11542, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 100), -78.31467, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 105), -79.30011, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 110), -80.03303, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 115), -80.48779, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 120), -80.65989, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 125), -80.5679, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 130), -80.24721, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 135), -79.73977, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 140), -79.08555, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 145), -78.31855, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 150), -77.46631, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 155), -76.55131, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 160), -75.59245, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 165), -74.60612, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 170), -73.60651, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 175), -72.60523, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 180), -71.61084, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -180), -68.20669, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -175), -67.22797, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -170), -66.25707, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -165), -65.29468, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -160), -64.34086, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -155), -63.39583, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -150), -62.45923, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -145), -61.52809, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -140), -60.5947, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -135), -59.64535, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -130), -58.66053, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -125), -57.61636, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -120), -56.48727, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -115), -55.25013, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -110), -53.89033, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -105), -52.40978, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -100), -50.83564, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -95), -49.22754, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -90), -47.68018, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -85), -46.31884, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -80), -45.28587, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -75), -44.71806, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -70), -44.7182, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -65), -45.3283, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -60), -46.51504, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -55), -48.17512, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -50), -50.1593, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -45), -52.30494, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -40), -54.4643, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -35), -56.52085, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -30), -58.3918, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -25), -60.02065, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -20), -61.3657, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -15), -62.39107, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -10), -63.06529, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -5), -63.36853, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 0), -63.30535, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 5), -62.91719, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 10), -62.2889, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 15), -61.54516, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 20), -60.83467, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 25), -60.30448, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 30), -60.07253, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 35), -60.20886, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 40), -60.73089, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 45), -61.61077, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 50), -62.78907, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 55), -64.18959, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 60), -65.73231, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 65), -67.34292, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 70), -68.95838, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 75), -70.52777, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 80), -72.00943, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 85), -73.36593, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 90), -74.56015, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 95), -75.55536, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 100), -76.32079, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 105), -76.84012, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 110), -77.11768, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 115), -77.17696, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 120), -77.05184, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 125), -76.77586, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 130), -76.37525, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 135), -75.86774, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 140), -75.26484, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 145), -74.57518, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 150), -73.807, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 155), -72.96982, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 160), -72.07528, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 165), -71.13721, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 170), -70.17066, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 175), -69.19, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 180), -68.20669, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -180), -64.40123, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -175), -63.40989, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -170), -62.42121, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -165), -61.43383, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -160), -60.44609, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -155), -59.45872, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -150), -58.47501, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -145), -57.49848, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -140), -56.52964, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -135), -55.56325, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -130), -54.58675, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -125), -53.57938, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -120), -52.51249, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -115), -51.35204, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -110), -50.06563, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -105), -48.63463, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -100), -47.06998, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -95), -45.42672, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -90), -43.81194, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -85), -42.38115, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -80), -41.32024, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -75), -40.81272, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -70), -40.9969, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -65), -41.92538, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -60), -43.54482, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -55), -45.70875, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -50), -48.21862, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -45), -50.87331, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -40), -53.50675, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -35), -56.00419, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -30), -58.29807, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -25), -60.35044, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -20), -62.13088, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -15), -63.59969, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -10), -64.70365, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -5), -65.38668, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 0), -65.6108, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 5), -65.37863, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 10), -64.74921, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 15), -63.84218, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 20), -62.82738, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 25), -61.89757, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 30), -61.22941, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 35), -60.94774, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 40), -61.1073, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 45), -61.69516, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 50), -62.64687, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 55), -63.86781, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 60), -65.25352, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 65), -66.70558, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 70), -68.14109, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 75), -69.49496, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 80), -70.71616, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 85), -71.76184, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 90), -72.59461, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 95), -73.18685, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 100), -73.53019, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 105), -73.64274, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 110), -73.56619, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 115), -73.35232, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 120), -73.04642, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 125), -72.67646, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 130), -72.25157, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 135), -71.76788, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 140), -71.21652, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 145), -70.58973, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 150), -69.88384, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 155), -69.10012, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 160), -68.24515, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 165), -67.33098, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 170), -66.37408, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 175), -65.3924, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 180), -64.40123, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -180), -60.05412, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -175), -59.0323, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -170), -58.01236, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -165), -56.9893, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -160), -55.95698, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -155), -54.91369, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -150), -53.86402, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -145), -52.8168, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -140), -51.7811, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -135), -50.76224, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -130), -49.7582, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -125), -48.75587, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -120), -47.72731, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -115), -46.62924, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -110), -45.41012, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -105), -44.02727, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -100), -42.47152, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -95), -40.79138, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -90), -39.10729, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -85), -37.60859, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -80), -36.52939, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -75), -36.10328, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -70), -36.50342, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -65), -37.78693, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -60), -39.8706, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -55), -42.55561, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -50), -45.58958, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -45), -48.73389, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -40), -51.8084, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -35), -54.70553, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -30), -57.37854, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -25), -59.81401, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -20), -61.9999, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -15), -63.90128, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -10), -65.45275, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -5), -66.5701, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 0), -67.17675, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 5), -67.23375, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 10), -66.76225, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 15), -65.85344, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 20), -64.66652, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 25), -63.41142, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 30), -62.31155, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 35), -61.55499, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 40), -61.25511, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 45), -61.43638, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 50), -62.04571, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 55), -62.97885, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 60), -64.11063, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 65), -65.32048, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 70), -66.50802, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 75), -67.59698, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 80), -68.52986, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 85), -69.26028, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 90), -69.75156, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 95), -69.98501, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 100), -69.97215, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 105), -69.75906, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 110), -69.41507, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 115), -69.01016, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 120), -68.59327, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 125), -68.1819, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 130), -67.7657, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 135), -67.31931, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 140), -66.81615, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 145), -66.23687, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 150), -65.57102, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 155), -64.81556, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 160), -63.97396, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 165), -63.05711, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 170), -62.08335, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 175), -61.07541, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 180), -60.05412, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -180), -55.00897, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -175), -53.93558, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -170), -52.87017, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -165), -51.80338, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -160), -50.7222, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -155), -49.61924, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -150), -48.49717, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -145), -47.36748, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -140), -46.24613, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -135), -45.14876, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -130), -44.08535, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -125), -43.05288, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -120), -42.02667, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -115), -40.95555, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -110), -39.76889, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -105), -38.39968, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -100), -36.81969, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -95), -35.07429, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -90), -33.30248, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -85), -31.7327, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -80), -30.65026, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -75), -30.33758, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -70), -30.99693, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -65), -32.68144, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -60), -35.27063, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -55), -38.50991, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -50), -42.09352, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -45), -45.74628, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -40), -49.27254, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -35), -52.56714, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -30), -55.5978, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -25), -58.37053, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -20), -60.89103, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -15), -63.13516, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -10), -65.03835, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -5), -66.50648, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 0), -67.44334, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 5), -67.78368, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 10), -67.51848, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 15), -66.70631, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 20), -65.47524, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 25), -64.01813, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 30), -62.5716, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 35), -61.37063, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 40), -60.59218, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 45), -60.31544, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 50), -60.51665, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 55), -61.09507, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 60), -61.91361, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 65), -62.83644, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 70), -63.75202, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 75), -64.57766, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 80), -65.25079, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 85), -65.71862, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 90), -65.93865, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 95), -65.89273, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 100), -65.60408, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 105), -65.14068, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 110), -64.5966, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 115), -64.05953, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 120), -63.58178, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 125), -63.16864, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 130), -62.78731, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 135), -62.38873, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 140), -61.92913, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 145), -61.38091, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 150), -60.73156, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 155), -59.97752, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 160), -59.12103, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 165), -58.17206, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 170), -57.1511, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 175), -56.08709, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 180), -55.00897, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -180), -49.10955, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -175), -47.95851, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -170), -46.83089, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -165), -45.71322, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -160), -44.58381, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -155), -43.42648, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -150), -42.23839, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -145), -41.03014, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -140), -39.82165, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -135), -38.63678, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -130), -37.4965, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -125), -36.40783, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -120), -35.34954, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -115), -34.26296, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -110), -33.0595, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -105), -31.65123, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -100), -29.99742, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -95), -28.14903, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -90), -26.27198, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -85), -24.63816, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -80), -23.58178, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -75), -23.42491, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -70), -24.38669, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -65), -26.50776, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -60), -29.63056, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -55), -33.45219, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -50), -37.62097, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -45), -41.82618, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -40), -45.8488, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -35), -49.57148, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -30), -52.95948, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -25), -56.02448, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -20), -58.78377, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -15), -61.22785, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -10), -63.30687, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -5), -64.93853, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 0), -66.03249, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 5), -66.52062, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 10), -66.38074, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 15), -65.6479, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 20), -64.41849, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 25), -62.85383, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 30), -61.17559, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 35), -59.63525, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 40), -58.45497, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 45), -57.7662, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 50), -57.58195, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 55), -57.81518, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 60), -58.32691, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 65), -58.97559, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 70), -59.64676, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 75), -60.25645, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 80), -60.73718, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 85), -61.02489, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 90), -61.06285, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 95), -60.82423, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 100), -60.33693, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 105), -59.6881, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 110), -58.99822, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 115), -58.37632, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 120), -57.8802, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 125), -57.5015, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 130), -57.18096, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 135), -56.84212, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 140), -56.42315, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 145), -55.89072, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 150), -55.23444, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 155), -54.4539, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 160), -53.55173, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 165), -52.53725, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 170), -51.43347, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 175), -50.2774, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 180), -49.10955, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -180), -42.22083, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -175), -40.96089, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -170), -39.75115, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -165), -38.5752, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -160), -37.40144, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -155), -36.20199, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -150), -34.96489, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -145), -33.69628, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -140), -32.41671, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -135), -31.15531, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -130), -29.94131, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -125), -28.78906, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -120), -27.67858, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -115), -26.54291, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -110), -25.27815, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -105), -23.78276, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -100), -22.0149, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -95), -20.04317, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -90), -18.06801, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -85), -16.40336, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -80), -15.42011, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -75), -15.4606, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -70), -16.74375, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -65), -19.29393, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -60), -22.92938, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -55), -27.31984, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -50), -32.08298, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -45), -36.87344, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -40), -41.43579, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -35), -45.61926, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -30), -49.36431, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -25), -52.67119, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -20), -55.56145, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -15), -58.04448, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -10), -60.10007, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -5), -61.68035, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 0), -62.72623, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 5), -63.18845, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 10), -63.04494, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 15), -62.31289, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 20), -61.06017, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 25), -59.41843, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 30), -57.5889, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 35), -55.82237, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 40), -54.36297, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 45), -53.37593, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 50), -52.90219, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 55), -52.86807, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 60), -53.13766, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 65), -53.57145, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 70), -54.05999, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 75), -54.52352, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 80), -54.89108, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 85), -55.08446, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 90), -55.02685, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 95), -54.67601, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 100), -54.05948, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 105), -53.28236, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 110), -52.49432, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 115), -51.83023, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 120), -51.35592, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 125), -51.04807, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 130), -50.81661, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 135), -50.55337, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 140), -50.17672, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 145), -49.64906, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 150), -48.9654, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 155), -48.13136, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 160), -47.15148, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 165), -46.03476, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 170), -44.80756, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 175), -43.51746, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 180), -42.22083, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -180), -34.2652, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -175), -32.86388, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -170), -31.55165, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -165), -30.31114, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -160), -29.1001, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -155), -27.8763, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -150), -26.61516, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -145), -25.31516, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -140), -23.99473, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -135), -22.6857, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -130), -21.42217, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -125), -20.2216, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -120), -19.06123, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -115), -17.86487, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -110), -16.51802, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -105), -14.91647, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -100), -13.03113, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -95), -10.95906, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -90), -8.93646, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -85), -7.30723, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -80), -6.45518, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -75), -6.71621, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -70), -8.29274, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -65), -11.19771, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -60), -15.25013, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -55), -20.12363, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -50), -25.42612, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -45), -30.77971, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -40), -35.87868, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -35), -40.5176, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -30), -44.5916, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -25), -48.07525, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -20), -50.98926, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -15), -53.36722, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -10), -55.23289, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -5), -56.59225, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 0), -57.4361, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 5), -57.74676, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 10), -57.50676, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 15), -56.71373, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 20), -55.40441, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 25), -53.68253, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 30), -51.73434, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 35), -49.81145, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 40), -48.17186, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 45), -46.99911, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 50), -46.34686, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 55), -46.14513, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 60), -46.25833, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 65), -46.55161, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 70), -46.92596, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 75), -47.31119, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 80), -47.63611, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 85), -47.80865, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 90), -47.72953, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 95), -47.33712, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 100), -46.65479, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 105), -45.80387, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 110), -44.96465, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 115), -44.30099, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 120), -43.88894, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 125), -43.6893, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 130), -43.57789, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 135), -43.41122, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 140), -43.08598, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 145), -42.56048, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 150), -41.83673, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 155), -40.92818, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 160), -39.84232, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 165), -38.58849, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 170), -37.19762, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 175), -35.73086, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 180), -34.2652, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -180), -25.27473, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -175), -23.70845, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -170), -22.28049, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -165), -20.9751, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -160), -19.73947, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -155), -18.51481, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -150), -17.26077, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -145), -15.96529, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -140), -14.64297, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -135), -13.32673, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -130), -12.05286, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -125), -10.83768, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -120), -9.65206, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -115), -8.41115, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -110), -6.99718, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -105), -5.31574, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -100), -3.36246, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -95), -1.26667, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -90), 0.70929, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -85), 2.21463, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -80), 2.88258, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -75), 2.40912, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -70), 0.61767, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -65), -2.50482, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -60), -6.80577, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -55), -11.99442, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -50), -17.69194, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -45), -23.49529, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -40), -29.04214, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -35), -34.05984, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -30), -38.38647, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -25), -41.96323, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -20), -44.80755, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -15), -46.98012, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -10), -48.5562, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -5), -49.6046, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 0), -50.1728, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 5), -50.27733, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 10), -49.90447, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 15), -49.02917, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 20), -47.65352, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 25), -45.85219, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 30), -43.79986, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 35), -41.755, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 40), -39.99208, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 45), -38.70836, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 50), -37.96042, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 55), -37.67198, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 60), -37.70132, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 65), -37.9165, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 70), -38.23089, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 75), -38.58793, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 80), -38.92047, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 85), -39.12556, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 90), -39.08246, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 95), -38.70896, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 100), -38.02131, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 105), -37.15381, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 110), -36.31529, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 115), -35.69833, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 120), -35.38981, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 125), -35.33506, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 130), -35.37548, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 135), -35.33142, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 140), -35.07667, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 145), -34.56438, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 150), -33.80293, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 155), -32.81363, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 160), -31.60742, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 165), -30.19482, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 170), -28.61284, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 175), -26.9389, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 180), -25.27473, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -180), -15.44634, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -175), -13.71526, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -170), -12.17612, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -165), -10.81787, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -160), -9.57864, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -155), -8.38224, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -150), -7.17015, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -145), -5.91754, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -140), -4.63394, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -135), -3.35262, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -130), -2.11051, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -125), -0.92053, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -120), 0.25357, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -115), 1.50135, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -110), 2.9347, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -105), 4.62764, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -100), 6.5549, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -95), 8.56147, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -90), 10.37815, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -85), 11.67433, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -80), 12.12606, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -75), 11.47679, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -70), 9.57724, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -65), 6.40376, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -60), 2.06341, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -55), -3.20889, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -50), -9.06787, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -45), -15.10219, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -40), -20.90353, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -35), -26.13702, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -30), -30.58508, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -25), -34.15446, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -20), -36.85584, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -15), -38.77204, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -10), -40.02463, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -5), -40.74088, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 0), -41.02157, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 5), -40.91533, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 10), -40.41144, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 15), -39.46218, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 20), -38.03479, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 25), -36.17433, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 30), -34.04395, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 35), -31.91004, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 40), -30.06434, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 45), -28.71675, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 50), -27.92364, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 55), -27.59839, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 60), -27.5893, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 65), -27.76454, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 70), -28.04923, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 75), -28.4025, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 80), -28.7657, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 85), -29.03072, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 90), -29.06033, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 95), -28.75417, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 100), -28.1197, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 105), -27.29856, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 110), -26.52067, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 115), -26.00123, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 120), -25.83595, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 125), -25.95737, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 130), -26.17754, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 135), -26.28478, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 140), -26.1308, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 145), -25.66131, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 150), -24.88781, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 155), -23.83733, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 160), -22.52394, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 165), -20.96028, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 170), -19.19064, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 175), -17.30998, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 180), -15.44634, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -180), -5.1642, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -175), -3.30434, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -170), -1.68383, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -165), -0.29959, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -160), 0.9158, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -155), 2.05399, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -150), 3.1919, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -145), 4.36839, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -140), 5.58021, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -135), 6.79449, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -130), 7.97418, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -125), 9.10928, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -120), 10.23969, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -115), 11.45239, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -110), 12.84439, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -105), 14.46402, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -100), 16.26011, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -95), 18.06651, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -90), 19.6287, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -85), 20.65752, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -80), 20.88576, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -75), 20.10833, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -70), 18.20094, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -65), 15.12731, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -60), 10.94957, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -55), 5.84512, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -50), 0.11365, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -45), -5.84963, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -40), -11.62067, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -35), -16.82895, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -30), -21.21776, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -25), -24.66363, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -20), -27.16348, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -15), -28.80749, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -10), -29.74618, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -5), -30.15044, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 0), -30.16525, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 5), -29.86856, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 10), -29.25454, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 15), -28.25718, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 20), -26.81313, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 25), -24.93968, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 30), -22.78636, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 35), -20.62161, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 40), -18.74708, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 45), -17.38008, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 50), -16.57615, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 55), -16.24083, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 60), -16.21446, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 65), -16.36458, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 70), -16.62584, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 75), -16.97269, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 80), -17.35913, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 85), -17.68042, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 90), -17.79295, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 95), -17.58523, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 100), -17.05621, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 105), -16.34675, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 110), -15.69391, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 115), -15.32238, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 120), -15.33164, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 125), -15.64693, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 130), -16.06294, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 135), -16.34661, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 140), -16.33163, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 145), -15.95348, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 150), -15.22099, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 155), -14.16242, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 160), -12.79367, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 165), -11.13008, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 170), -9.22337, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 175), -7.18423, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 180), -5.1642, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -180), 5.05582, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -175), 6.97337, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -170), 8.62321, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -165), 9.99748, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -160), 11.16322, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -155), 12.22204, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -150), 13.26608, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -145), 14.34773, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -140), 15.47108, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -135), 16.60517, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -130), 17.7131, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -125), 18.78506, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -120), 19.85821, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -115), 21.00842, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -110), 22.3114, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -105), 23.79016, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -100), 25.37692, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -95), 26.90991, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -90), 28.16509, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -85), 28.90476, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -80), 28.92027, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -75), 28.05468, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -70), 26.2075, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -65), 23.33722, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -60), 19.47651, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -55), 14.75912, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -50), 9.43795, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -45), 3.86872, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -40), -1.54891, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -35), -6.45059, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -30), -10.56989, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -25), -13.76367, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -20), -16.00804, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -15), -17.38138, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -10), -18.03932, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -5), -18.17514, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 0), -17.96459, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 5), -17.5109, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 10), -16.81732, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 15), -15.80846, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 20), -14.39962, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 25), -12.58486, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 30), -10.49614, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 35), -8.39154, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 40), -6.56698, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 45), -5.2365, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 50), -4.45412, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 55), -4.12471, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 60), -4.08821, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 65), -4.2138, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 70), -4.44258, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 75), -4.76108, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 80), -5.13839, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 85), -5.4833, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 90), -5.66018, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 95), -5.55829, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 100), -5.17061, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 105), -4.62769, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 110), -4.15527, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 115), -3.96946, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 120), -4.16616, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 125), -4.67094, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 130), -5.27839, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 135), -5.75057, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 140), -5.91091, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 145), -5.68266, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 150), -5.06489, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 155), -4.08086, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 160), -2.74575, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 165), -1.07728, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 170), 0.86729, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 175), 2.96725, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 180), 5.05582, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -180), 14.70275, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -175), 16.58812, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -170), 18.20597, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -165), 19.53545, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -160), 20.63611, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -155), 21.61096, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -150), 22.56072, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -145), 23.54838, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -140), 24.58601, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -135), 25.64668, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -130), 26.69427, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -125), 27.7161, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -120), 28.74014, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -115), 29.82422, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -110), 31.01984, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -105), 32.32858, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -100), 33.67564, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -95), 34.91433, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -90), 35.8577, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -85), 36.31918, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -80), 36.14283, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -75), 35.21419, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -70), 33.45822, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -65), 30.8409, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -60), 27.38636, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -55), 23.20411, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -50), 18.50636, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -45), 13.59435, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -40), 8.8097, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -35), 4.47003, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -30), 0.81843, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -25), -1.9994, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -20), -3.93838, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -15), -5.05085, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -10), -5.47518, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -5), -5.4034, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 0), -5.02388, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 5), -4.4575, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 10), -3.72048, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 15), -2.74029, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 20), -1.42436, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 25), 0.24953, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 30), 2.17196, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 35), 4.1111, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 40), 5.79595, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 45), 7.02837, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 50), 7.75656, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 55), 8.06761, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 60), 8.1116, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 65), 8.01326, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 70), 7.82808, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 75), 7.56303, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 80), 7.23474, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 85), 6.9128, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 90), 6.71034, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 95), 6.72381, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 100), 6.9615, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 105), 7.31107, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 110), 7.57524, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 115), 7.56371, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 120), 7.19143, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 125), 6.52535, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 130), 5.75373, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 135), 5.1014, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 140), 4.74483, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 145), 4.77258, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 150), 5.20122, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 155), 6.01877, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 160), 7.21411, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 165), 8.76892, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 170), 10.62452, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 175), 12.65906, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 180), 14.70275, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -180), 23.41542, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -175), 25.18118, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -170), 26.70977, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -165), 27.96735, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -160), 28.99979, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -155), 29.90205, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -150), 30.77463, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -145), 31.68598, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -140), 32.65556, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -135), 33.66244, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -130), 34.67262, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -125), 35.66896, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -120), 36.66612, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -115), 37.70042, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -110), 38.79938, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -105), 39.94784, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -100), 41.07047, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -95), 42.03991, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -90), 42.70507, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -85), 42.92369, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -80), 42.5836, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -75), 41.6074, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -70), 39.94844, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -65), 37.59252, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -60), 34.57262, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -55), 30.9896, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -50), 27.02194, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -45), 22.91112, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -40), 18.92357, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -35), 15.30628, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -30), 12.25499, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -25), 9.90012, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -20), 8.29966, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -15), 7.43041, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -10), 7.18515, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -5), 7.39378, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 0), 7.87537, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 5), 8.50314, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 10), 9.24692, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 15), 10.1649, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 20), 11.34293, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 25), 12.81121, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 30), 14.48616, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 35), 16.17551, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 40), 17.64892, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 45), 18.73427, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 50), 19.38277, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 55), 19.66644, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 60), 19.71631, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 65), 19.64587, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 70), 19.50883, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 75), 19.31144, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 80), 19.05992, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 85), 18.79973, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 90), 18.61266, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 95), 18.57076, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 100), 18.67836, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 105), 18.84427, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 110), 18.90904, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 115), 18.71828, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 120), 18.20254, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 125), 17.41753, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 130), 16.52327, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 135), 15.71804, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 140), 15.1681, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 145), 14.97033, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 150), 15.15888, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 155), 15.7369, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 160), 16.70037, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 165), 18.03299, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 170), 19.67973, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 175), 21.5272, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 180), 23.41542, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -180), 31.04863, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -175), 32.62416, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -170), 34.01685, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -165), 35.18293, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -160), 36.15135, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -155), 37.00119, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -150), 37.82363, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -145), 38.68592, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -140), 39.61244, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -135), 40.58916, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -130), 41.58582, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -125), 42.58124, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -120), 43.57617, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -115), 44.5857, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -110), 45.61583, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -105), 46.63872, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -100), 47.58152, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -95), 48.33537, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -90), 48.77929, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -85), 48.80601, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -80), 48.33798, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -75), 47.32998, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -70), 45.76549, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -65), 43.65736, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -60), 41.05664, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -55), 38.06323, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -50), 34.82661, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -45), 31.5305, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -40), 28.36582, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -35), 25.50527, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -30), 23.08949, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -25), 21.22219, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -20), 19.96269, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -15), 19.31042, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -10), 19.19207, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -5), 19.47159, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 0), 19.99182, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 5), 20.63245, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 10), 21.35231, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 15), 22.18857, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 20), 23.20945, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 25), 24.44511, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 30), 25.83702, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 35), 27.23814, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 40), 28.46649, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 45), 29.38163, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 50), 29.9391, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 55), 30.19296, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 60), 30.24991, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 65), 30.20795, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 70), 30.1184, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 75), 29.99023, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 80), 29.82412, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 85), 29.64439, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 90), 29.50091, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 95), 29.43795, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 100), 29.45208, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 105), 29.47098, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 110), 29.37269, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 115), 29.03985, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 120), 28.41995, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 125), 27.55772, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 130), 26.58251, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 135), 25.66065, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 140), 24.94147, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 145), 24.52457, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 150), 24.45896, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 155), 24.76278, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 160), 25.44021, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 165), 26.47912, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 170), 27.83224, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 175), 29.40202, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 180), 31.04863, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -180), 37.6458, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -175), 38.98329, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -170), 40.20596, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -165), 41.26591, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -160), 42.17586, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -155), 42.99437, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -150), 43.79577, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -145), 44.63895, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -140), 45.54896, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -135), 46.51759, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -130), 47.51932, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -125), 48.53078, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -120), 49.54126, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -115), 50.54789, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -110), 51.53928, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -105), 52.47826, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -100), 53.29515, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -95), 53.89626, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -90), 54.18353, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -85), 54.07573, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -80), 53.5219, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -75), 52.50423, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -70), 51.03494, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -65), 49.15435, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -60), 46.93219, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -55), 44.46819, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -50), 41.88595, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -45), 39.31878, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -40), 36.89322, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -35), 34.71862, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -30), 32.88606, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -25), 31.47004, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -20), 30.52223, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -15), 30.05438, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -10), 30.02152, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -5), 30.32372, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 0), 30.83553, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 5), 31.45215, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 10), 32.12666, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 15), 32.87477, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 20), 33.74244, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 25), 34.75393, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 30), 35.87125, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 35), 36.99026, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 40), 37.97719, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 45), 38.7247, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 50), 39.19471, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 55), 39.42437, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 60), 39.49502, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 65), 39.48638, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 70), 39.44508, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 75), 39.38293, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 80), 39.29864, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 85), 39.20101, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 90), 39.11334, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 95), 39.05475, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 100), 39.01276, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 105), 38.92898, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 110), 38.71249, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 115), 38.27788, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 120), 37.58845, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 125), 36.68075, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 130), 35.65751, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 135), 34.65478, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 140), 33.80244, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 145), 33.19725, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 150), 32.8973, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 155), 32.93188, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 160), 33.31225, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 165), 34.0311, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 170), 35.0509, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 175), 36.29362, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 180), 37.6458, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -180), 43.36964, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -175), 44.44644, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -170), 45.47942, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -165), 46.42345, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -160), 47.27878, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -155), 48.08263, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -150), 48.88788, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -145), 49.73904, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -140), 50.65656, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -135), 51.63511, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -130), 52.65352, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -125), 53.68821, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -120), 54.7209, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -115), 55.73596, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -110), 56.70952, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -105), 57.59829, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -100), 58.33573, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -95), 58.8396, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -90), 59.02848, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -85), 58.84, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -80), 58.24345, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -75), 57.24328, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -70), 55.87574, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -65), 54.20325, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -60), 52.30875, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -55), 50.28889, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -50), 48.24441, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -45), 46.26898, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -40), 44.44125, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -35), 42.82437, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -30), 41.4719, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -25), 40.43266, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -20), 39.74613, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -15), 39.42731, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -10), 39.45048, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -5), 39.74655, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 0), 40.22167, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 5), 40.79053, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 10), 41.4058, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 15), 42.06589, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 20), 42.79553, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 25), 43.6104, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 30), 44.48723, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 35), 45.35777, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 40), 46.13105, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 45), 46.73111, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 50), 47.12826, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 55), 47.34614, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 60), 47.4426, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 65), 47.4781, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 70), 47.49149, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 75), 47.49519, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 80), 47.48709, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 85), 47.46577, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 90), 47.43526, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 95), 47.39522, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 100), 47.32505, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 105), 47.17568, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 110), 46.87937, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 115), 46.37584, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 120), 45.64215, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 125), 44.71023, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 130), 43.66276, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 135), 42.61072, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 140), 41.66507, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 145), 40.91541, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 150), 40.42236, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 155), 40.22105, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 160), 40.32717, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 165), 40.73765, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 170), 41.4248, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 175), 42.33051, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 180), 43.36964, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -180), 48.43953, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -175), 49.25963, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -170), 50.10087, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -165), 50.92629, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -160), 51.7287, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -155), 52.5266, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -150), 53.35067, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -145), 54.22772, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -140), 55.16925, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -135), 56.16901, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -130), 57.2084, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -125), 58.26465, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -120), 59.31559, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -115), 60.338, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -110), 61.30064, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -105), 62.15717, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -100), 62.84432, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -95), 63.28877, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -90), 63.42139, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -85), 63.19386, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -80), 62.59092, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -75), 61.63394, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -70), 60.37621, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -65), 58.89377, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -60), 57.27489, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -55), 55.60941, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -50), 53.9788, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -45), 52.44858, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -40), 51.06622, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -35), 49.86566, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -30), 48.87563, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -25), 48.12524, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -20), 47.64093, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -15), 47.4349, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -10), 47.49204, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -5), 47.7658, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 0), 48.18895, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 5), 48.6954, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 10), 49.24158, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 15), 49.8146, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 20), 50.42258, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 25), 51.07287, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 30), 51.7519, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 35), 52.41889, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 40), 53.01773, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 45), 53.49994, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 50), 53.84522, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 55), 54.06773, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 60), 54.20541, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 65), 54.29994, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 70), 54.37982, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 75), 54.45473, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 80), 54.52092, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 85), 54.57018, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 90), 54.59361, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 95), 54.5775, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 100), 54.49536, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 105), 54.3047, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 110), 53.95482, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 115), 53.40483, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 120), 52.64379, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 125), 51.70225, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 130), 50.64909, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 135), 49.57581, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 140), 48.57614, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 145), 47.7297, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 150), 47.09424, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 155), 46.70571, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 160), 46.58148, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 165), 46.7218, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 170), 47.10793, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 175), 47.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 180), 48.43953, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -180), 53.08741, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -175), 53.68014, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -170), 54.34608, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -165), 55.05872, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -160), 55.80795, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -155), 56.5982, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -150), 57.44114, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -145), 58.34636, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -140), 59.31462, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -135), 60.33583, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -130), 61.39176, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -125), 62.46021, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -120), 63.51737, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -115), 64.53632, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -110), 65.48245, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -105), 66.30895, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -100), 66.9564, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -95), 67.35912, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -90), 67.45807, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -85), 67.21633, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -80), 66.6307, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -75), 65.73427, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -70), 64.58996, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -65), 63.2787, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -60), 61.8867, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -55), 60.49421, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -50), 59.16713, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -45), 57.95275, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -40), 56.88081, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -35), 55.9694, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -30), 55.23281, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -25), 54.68644, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -20), 54.34516, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -15), 54.21552, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -10), 54.28673, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -5), 54.5269, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 0), 54.88877, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 5), 55.32295, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 10), 55.79209, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 15), 56.27802, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 20), 56.77818, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 25), 57.29376, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 30), 57.81741, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 35), 58.32794, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 40), 58.79547, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 45), 59.19349, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 50), 59.5107, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 55), 59.7553, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 60), 59.94955, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 65), 60.11828, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 70), 60.27821, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 75), 60.4332, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 80), 60.57601, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 85), 60.69293, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 90), 60.76655, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 95), 60.7747, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 100), 60.68776, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 105), 60.46891, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 110), 60.08091, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 115), 59.49866, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 120), 58.72211, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 125), 57.78286, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 130), 56.74074, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 135), 55.67217, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 140), 54.6555, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 145), 53.75883, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 150), 53.03347, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 155), 52.51271, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 160), 52.21367, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 165), 52.13913, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 170), 52.27816, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 175), 52.60623, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 180), 53.08741, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -180), 57.5203, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -175), 57.9332, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -170), 58.45433, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -165), 59.06672, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -160), 59.76021, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -155), 60.53058, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -150), 61.37611, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -145), 62.29322, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -140), 63.27327, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -135), 64.30161, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -130), 65.35885, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -125), 66.42263, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -120), 67.46826, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -115), 68.46718, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -110), 69.38365, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -105), 70.17198, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -100), 70.77695, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -95), 71.14007, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -90), 71.21156, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -85), 70.96476, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -80), 70.40619, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -75), 69.57639, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -70), 68.54151, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -65), 67.38038, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -60), 66.1719, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -55), 64.98531, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -50), 63.87424, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -45), 62.8748, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -40), 62.00787, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -35), 61.28436, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -30), 60.71123, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -25), 60.29526, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -20), 60.04242, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -15), 59.95339, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -10), 60.01823, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -5), 60.21388, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 0), 60.50707, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 5), 60.8618, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 10), 61.24807, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 15), 61.64729, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 20), 62.05182, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 25), 62.45959, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 30), 62.86735, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 35), 63.26685, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 40), 63.64605, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 45), 63.99418, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 50), 64.30715, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 55), 64.58969, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 60), 64.8526, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 65), 65.10686, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 70), 65.35757, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 75), 65.60082, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 80), 65.82398, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 85), 66.0079, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 90), 66.12905, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 95), 66.16021, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 100), 66.07111, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 105), 65.83092, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 110), 65.41434, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 115), 64.81014, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 120), 64.02857, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 125), 63.10372, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 130), 62.08941, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 135), 61.05008, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 140), 60.05034, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 145), 59.14649, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 150), 58.38169, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 155), 57.7848, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 160), 57.37166, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 165), 57.14709, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 170), 57.10652, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 175), 57.23727, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 180), 57.5203, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -180), 61.88464, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -175), 62.17108, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -170), 62.58268, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -165), 63.10935, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -160), 63.74217, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -155), 64.47293, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -150), 65.29276, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -145), 66.19056, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -140), 67.15195, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -135), 68.15915, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -130), 69.19155, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -125), 70.22632, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -120), 71.23809, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -115), 72.19734, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -110), 73.06804, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -105), 73.80589, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -100), 74.35961, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -95), 74.67734, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -90), 74.71812, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -85), 74.46497, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -80), 73.93268, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -75), 73.16614, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -70), 72.23027, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -65), 71.19733, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -60), 70.13606, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -55), 69.10446, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -50), 68.14626, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -45), 67.29052, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -40), 66.55396, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -35), 65.94482, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -30), 65.46692, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -25), 65.12223, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -20), 64.91091, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -15), 64.82929, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -10), 64.8673, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -5), 65.00729, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 0), 65.22561, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 5), 65.49669, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 10), 65.798, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 15), 66.1137, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 20), 66.43544, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 25), 66.76042, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 30), 67.08817, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 35), 67.41801, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 40), 67.74844, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 45), 68.07822, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 50), 68.4079, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 55), 68.74005, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 60), 69.07776, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 65), 69.42164, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 70), 69.76689, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 75), 70.10154, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 80), 70.4065, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 85), 70.65697, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 90), 70.82434, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 95), 70.87838, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 100), 70.78994, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 105), 70.53483, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 110), 70.09918, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 115), 69.48452, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 120), 68.71069, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 125), 67.81476, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 130), 66.84611, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 135), 65.85929, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 140), 64.90686, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 145), 64.03401, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 150), 63.2756, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 155), 62.65558, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 160), 62.18815, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 165), 61.87952, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 170), 61.72974, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 175), 61.73414, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 180), 61.88464, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -180), 66.24322, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -175), 66.4494, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -170), 66.78185, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -165), 67.23442, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -160), 67.79972, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -155), 68.4688, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -150), 69.23063, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -145), 70.07174, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -140), 70.97614, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -135), 71.92545, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -130), 72.89915, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -125), 73.87455, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -120), 74.82609, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -115), 75.72377, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -110), 76.53139, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -105), 77.20565, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -100), 77.69824, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -95), 77.96281, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -90), 77.96642, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -85), 77.70124, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -80), 77.18942, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -75), 76.47826, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -70), 75.62889, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -65), 74.70479, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -60), 73.76351, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -55), 72.85222, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -50), 72.00619, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -45), 71.24926, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -40), 70.59573, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -35), 70.05285, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -30), 69.62335, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -25), 69.30703, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -20), 69.10119, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -15), 69.00011, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -10), 68.99419, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -5), 69.06982, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 0), 69.21033, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 5), 69.39826, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 10), 69.61798, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 15), 69.85796, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 20), 70.11167, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 25), 70.37716, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 30), 70.65566, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 35), 70.95005, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 40), 71.26364, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 45), 71.59952, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 50), 71.9601, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 55), 72.34635, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 60), 72.7565, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 65), 73.18441, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 70), 73.61813, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 75), 74.03901, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 80), 74.42197, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 85), 74.73673, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 90), 74.95028, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 95), 75.03026, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 100), 74.94946, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 105), 74.69061, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 110), 74.2506, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 115), 73.6425, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 120), 72.89445, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 125), 72.04597, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 130), 71.14258, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 135), 70.23038, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 140), 69.35165, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 145), 68.54187, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 150), 67.82842, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 155), 67.23065, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 160), 66.76089, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 165), 66.42592, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 170), 66.22845, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 175), 66.1683, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 180), 66.24322, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -180), 70.57639, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -175), 70.73325, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -170), 71.00594, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -165), 71.39026, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -160), 71.88018, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -155), 72.4677, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -150), 73.1426, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -145), 73.89245, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -140), 74.70269, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -135), 75.5567, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -130), 76.43577, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -125), 77.31868, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -120), 78.18076, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -115), 78.99246, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -110), 79.71781, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -105), 80.31411, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -100), 80.73487, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -95), 80.9378, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -90), 80.89703, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -85), 80.61343, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -80), 80.11598, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -75), 79.45321, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -70), 78.68102, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -65), 77.85312, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -60), 77.01578, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -55), 76.20591, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -50), 75.45105, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -45), 74.77026, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -40), 74.17555, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -35), 73.67344, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -30), 73.26634, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -25), 72.95359, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -20), 72.732, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -15), 72.59599, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -10), 72.5377, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -5), 72.54725, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 0), 72.61356, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 5), 72.72554, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 10), 72.87346, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 15), 73.05019, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 20), 73.25183, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 25), 73.47772, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 30), 73.72986, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 35), 74.01193, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 40), 74.32818, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 45), 74.68242, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 50), 75.07681, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 55), 75.51082, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 60), 75.97999, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 65), 76.47471, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 70), 76.97922, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 75), 77.47103, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 80), 77.92106, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 85), 78.29491, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 90), 78.55584, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 95), 78.66956, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 100), 78.61042, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 105), 78.36716, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 110), 77.94596, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 115), 77.36934, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 120), 76.67173, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 125), 75.89374, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 130), 75.07695, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 135), 74.26015, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 140), 73.47706, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 145), 72.75518, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 150), 72.11568, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 155), 71.57383, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 160), 71.14, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 165), 70.82066, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 170), 70.61947, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 175), 70.53803, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 180), 70.57639, 0.21 + 1.2);
}
TEST(GeoLookupTest, strength) {
EXPECT_NEAR(get_mag_strength_tesla(-50, -180) * 1e9, 58500.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -175) * 1e9, 57365.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -170) * 1e9, 56217.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -165) * 1e9, 55065.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -160) * 1e9, 53913.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -155) * 1e9, 52765.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -150) * 1e9, 51620.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -145) * 1e9, 50471, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -140) * 1e9, 49306.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -135) * 1e9, 48110.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -130) * 1e9, 46866, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -125) * 1e9, 45555.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -120) * 1e9, 44165.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -115) * 1e9, 42692, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -110) * 1e9, 41137.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -105) * 1e9, 39514.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -100) * 1e9, 37849.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -95) * 1e9, 36172.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -90) * 1e9, 34525.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -85) * 1e9, 32951.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -80) * 1e9, 31494.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -75) * 1e9, 30193.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -70) * 1e9, 29077.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -65) * 1e9, 28161.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -60) * 1e9, 27445.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -55) * 1e9, 26908.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -50) * 1e9, 26521.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -45) * 1e9, 26243.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -40) * 1e9, 26034.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -35) * 1e9, 25861.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -30) * 1e9, 25699.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -25) * 1e9, 25536.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -20) * 1e9, 25375.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -15) * 1e9, 25228.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -10) * 1e9, 25120.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -5) * 1e9, 25086, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 0) * 1e9, 25167.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 5) * 1e9, 25413.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 10) * 1e9, 25869.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 15) * 1e9, 26577.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 20) * 1e9, 27566.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 25) * 1e9, 28849.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 30) * 1e9, 30422.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 35) * 1e9, 32265.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 40) * 1e9, 34342.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 45) * 1e9, 36612.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 50) * 1e9, 39026, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 55) * 1e9, 41532.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 60) * 1e9, 44083.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 65) * 1e9, 46633.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 70) * 1e9, 49143.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 75) * 1e9, 51576.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 80) * 1e9, 53901.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 85) * 1e9, 56086.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 90) * 1e9, 58099.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 95) * 1e9, 59913.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 100) * 1e9, 61501.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 105) * 1e9, 62844.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 110) * 1e9, 63930.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 115) * 1e9, 64756.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 120) * 1e9, 65327.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 125) * 1e9, 65653.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 130) * 1e9, 65751.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 135) * 1e9, 65640, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 140) * 1e9, 65339.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 145) * 1e9, 64869.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 150) * 1e9, 64251.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 155) * 1e9, 63504.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 160) * 1e9, 62648.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 165) * 1e9, 61701.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 170) * 1e9, 60682.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 175) * 1e9, 59610.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 180) * 1e9, 58500.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -180) * 1e9, 56331, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -175) * 1e9, 55140.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -170) * 1e9, 53941.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -165) * 1e9, 52743, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -160) * 1e9, 51551, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -155) * 1e9, 50369.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -150) * 1e9, 49198.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -145) * 1e9, 48034.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -140) * 1e9, 46866, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -135) * 1e9, 45677.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -130) * 1e9, 44449.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -125) * 1e9, 43162.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -120) * 1e9, 41798.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -115) * 1e9, 40350, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -110) * 1e9, 38814.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -105) * 1e9, 37202.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -100) * 1e9, 35535.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -95) * 1e9, 33846.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -90) * 1e9, 32178, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -85) * 1e9, 30582.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -80) * 1e9, 29112.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -75) * 1e9, 27821, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -70) * 1e9, 26746.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -65) * 1e9, 25911.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -60) * 1e9, 25314.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -55) * 1e9, 24929.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -50) * 1e9, 24713.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -45) * 1e9, 24613.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -40) * 1e9, 24574.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -35) * 1e9, 24553.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -30) * 1e9, 24519, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -25) * 1e9, 24456, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -20) * 1e9, 24362.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -15) * 1e9, 24248.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -10) * 1e9, 24135.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -5) * 1e9, 24057.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 0) * 1e9, 24061, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 5) * 1e9, 24203.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 10) * 1e9, 24548.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 15) * 1e9, 25156.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 20) * 1e9, 26074.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 25) * 1e9, 27329.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 30) * 1e9, 28923.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 35) * 1e9, 30833.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 40) * 1e9, 33018.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 45) * 1e9, 35420.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 50) * 1e9, 37976.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 55) * 1e9, 40621.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 60) * 1e9, 43293, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 65) * 1e9, 45937.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 70) * 1e9, 48509.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 75) * 1e9, 50974.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 80) * 1e9, 53300.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 85) * 1e9, 55458.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 90) * 1e9, 57421.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 95) * 1e9, 59162.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 100) * 1e9, 60660.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 105) * 1e9, 61898.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 110) * 1e9, 62871.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 115) * 1e9, 63582.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 120) * 1e9, 64041.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 125) * 1e9, 64263.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 130) * 1e9, 64267.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 135) * 1e9, 64071.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 140) * 1e9, 63694.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 145) * 1e9, 63154.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 150) * 1e9, 62470, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 155) * 1e9, 61657.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 160) * 1e9, 60735.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 165) * 1e9, 59722.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 170) * 1e9, 58638.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 175) * 1e9, 57501.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 180) * 1e9, 56331, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -180) * 1e9, 53976, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -175) * 1e9, 52756.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -170) * 1e9, 51532.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -165) * 1e9, 50311.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -160) * 1e9, 49098.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -155) * 1e9, 47899.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -150) * 1e9, 46715.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -145) * 1e9, 45545, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -140) * 1e9, 44381.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -135) * 1e9, 43212, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -130) * 1e9, 42017.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -125) * 1e9, 40778.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -120) * 1e9, 39477.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -115) * 1e9, 38100.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -110) * 1e9, 36641.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -105) * 1e9, 35104.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -100) * 1e9, 33502.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -95) * 1e9, 31866.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -90) * 1e9, 30238.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -85) * 1e9, 28676, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -80) * 1e9, 27241.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -75) * 1e9, 25997.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -70) * 1e9, 24995.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -65) * 1e9, 24263.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -60) * 1e9, 23800.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -55) * 1e9, 23574.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -50) * 1e9, 23529.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -45) * 1e9, 23599.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -40) * 1e9, 23723.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -35) * 1e9, 23851.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -30) * 1e9, 23951.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -25) * 1e9, 24009.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -20) * 1e9, 24019.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -15) * 1e9, 23985, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -10) * 1e9, 23919, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -5) * 1e9, 23845.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 0) * 1e9, 23805.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 5) * 1e9, 23857.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 10) * 1e9, 24077.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 15) * 1e9, 24544.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 20) * 1e9, 25329.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 25) * 1e9, 26480.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 30) * 1e9, 28013.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 35) * 1e9, 29911, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 40) * 1e9, 32126.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 45) * 1e9, 34592.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 50) * 1e9, 37228.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 55) * 1e9, 39952.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 60) * 1e9, 42686.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 65) * 1e9, 45365.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 70) * 1e9, 47939.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 75) * 1e9, 50371.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 80) * 1e9, 52631.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 85) * 1e9, 54694.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 90) * 1e9, 56536, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 95) * 1e9, 58134.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 100) * 1e9, 59473.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 105) * 1e9, 60547.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 110) * 1e9, 61359.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 115) * 1e9, 61923.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 120) * 1e9, 62255.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 125) * 1e9, 62374, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 130) * 1e9, 62296.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 135) * 1e9, 62038.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 140) * 1e9, 61613.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 145) * 1e9, 61035.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 150) * 1e9, 60317.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 155) * 1e9, 59473.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 160) * 1e9, 58518.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 165) * 1e9, 57471.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 170) * 1e9, 56351.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 175) * 1e9, 55179.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 180) * 1e9, 53976, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -180) * 1e9, 51464.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -175) * 1e9, 50242.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -170) * 1e9, 49018.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -165) * 1e9, 47799.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -160) * 1e9, 46588.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -155) * 1e9, 45390, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -150) * 1e9, 44207.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -145) * 1e9, 43043.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -140) * 1e9, 41895.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -135) * 1e9, 40754.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -130) * 1e9, 39607, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -125) * 1e9, 38436.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -120) * 1e9, 37225.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -115) * 1e9, 35958.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -110) * 1e9, 34623.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -105) * 1e9, 33214.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -100) * 1e9, 31736.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -95) * 1e9, 30212.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -90) * 1e9, 28682.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -85) * 1e9, 27204.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -80) * 1e9, 25849, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -75) * 1e9, 24688.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -70) * 1e9, 23781.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -65) * 1e9, 23162.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -60) * 1e9, 22830.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -55) * 1e9, 22745.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -50) * 1e9, 22844.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -45) * 1e9, 23055.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -40) * 1e9, 23313.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -35) * 1e9, 23571.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -30) * 1e9, 23804.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -25) * 1e9, 23999.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -20) * 1e9, 24152.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -15) * 1e9, 24256.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -10) * 1e9, 24309.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -5) * 1e9, 24316.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 0) * 1e9, 24302.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 5) * 1e9, 24318.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 10) * 1e9, 24440.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 15) * 1e9, 24761.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 20) * 1e9, 25373.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 25) * 1e9, 26350.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 30) * 1e9, 27732.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 35) * 1e9, 29517.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 40) * 1e9, 31664.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 45) * 1e9, 34101.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 50) * 1e9, 36734.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 55) * 1e9, 39463.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 60) * 1e9, 42195.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 65) * 1e9, 44851.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 70) * 1e9, 47373.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 75) * 1e9, 49721.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 80) * 1e9, 51866.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 85) * 1e9, 53783.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 90) * 1e9, 55451.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 95) * 1e9, 56851.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 100) * 1e9, 57978.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 105) * 1e9, 58839.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 110) * 1e9, 59453.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 115) * 1e9, 59845.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 120) * 1e9, 60043, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 125) * 1e9, 60063.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 130) * 1e9, 59920.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 135) * 1e9, 59620.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 140) * 1e9, 59170.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 145) * 1e9, 58577.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 150) * 1e9, 57851.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 155) * 1e9, 57001.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 160) * 1e9, 56040.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 165) * 1e9, 54984.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 170) * 1e9, 53855, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 175) * 1e9, 52674.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 180) * 1e9, 51464.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -180) * 1e9, 48811.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -175) * 1e9, 47613.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -170) * 1e9, 46418.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -165) * 1e9, 45228.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -160) * 1e9, 44045.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -155) * 1e9, 42872.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -150) * 1e9, 41713.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -145) * 1e9, 40574.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -140) * 1e9, 39458.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -135) * 1e9, 38360.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -130) * 1e9, 37275.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -125) * 1e9, 36190.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -120) * 1e9, 35091.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -115) * 1e9, 33961.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -110) * 1e9, 32783.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -105) * 1e9, 31541.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -100) * 1e9, 30230.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -95) * 1e9, 28864.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -90) * 1e9, 27479, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -85) * 1e9, 26131.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -80) * 1e9, 24894.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -75) * 1e9, 23846.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -70) * 1e9, 23049.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -65) * 1e9, 22541.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -60) * 1e9, 22319.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -55) * 1e9, 22343.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -50) * 1e9, 22547.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -45) * 1e9, 22858.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -40) * 1e9, 23215.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -35) * 1e9, 23581.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -30) * 1e9, 23940, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -25) * 1e9, 24285.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -20) * 1e9, 24611, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -15) * 1e9, 24902.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -10) * 1e9, 25138, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -5) * 1e9, 25299.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 0) * 1e9, 25389.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 5) * 1e9, 25439.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 10) * 1e9, 25518.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 15) * 1e9, 25720.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 20) * 1e9, 26150.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 25) * 1e9, 26906.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 30) * 1e9, 28055.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 35) * 1e9, 29626.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 40) * 1e9, 31594.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 45) * 1e9, 33892.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 50) * 1e9, 36422.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 55) * 1e9, 39069.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 60) * 1e9, 41723.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 65) * 1e9, 44293.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 70) * 1e9, 46714.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 75) * 1e9, 48938.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 80) * 1e9, 50935.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 85) * 1e9, 52676.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 90) * 1e9, 54138.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 95) * 1e9, 55307.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 100) * 1e9, 56187.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 105) * 1e9, 56803.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 110) * 1e9, 57195.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 115) * 1e9, 57405.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 120) * 1e9, 57468.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 125) * 1e9, 57400.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 130) * 1e9, 57205.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 135) * 1e9, 56879.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 140) * 1e9, 56418.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 145) * 1e9, 55825.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 150) * 1e9, 55105.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 155) * 1e9, 54267, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 160) * 1e9, 53320.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 165) * 1e9, 52280.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 170) * 1e9, 51165.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 175) * 1e9, 50001.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 180) * 1e9, 48811.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -180) * 1e9, 46045.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -175) * 1e9, 44900.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -170) * 1e9, 43763.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -165) * 1e9, 42633.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -160) * 1e9, 41509.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -155) * 1e9, 40392.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -150) * 1e9, 39287.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -145) * 1e9, 38202.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -140) * 1e9, 37144.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -135) * 1e9, 36114.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -130) * 1e9, 35111.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -125) * 1e9, 34130.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -120) * 1e9, 33160.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -115) * 1e9, 32185.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -110) * 1e9, 31182.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -105) * 1e9, 30129.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -100) * 1e9, 29013, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -95) * 1e9, 27836.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -90) * 1e9, 26630.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -85) * 1e9, 25449.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -80) * 1e9, 24363, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -75) * 1e9, 23446.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -70) * 1e9, 22763.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -65) * 1e9, 22350.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -60) * 1e9, 22208.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -55) * 1e9, 22300.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -50) * 1e9, 22566, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -45) * 1e9, 22939.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -40) * 1e9, 23367.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -35) * 1e9, 23823.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -30) * 1e9, 24298.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -25) * 1e9, 24793.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -20) * 1e9, 25300.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -15) * 1e9, 25796.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -10) * 1e9, 26241.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -5) * 1e9, 26595.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 0) * 1e9, 26837.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 5) * 1e9, 26978, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 10) * 1e9, 27069, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 15) * 1e9, 27195.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 20) * 1e9, 27462.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 25) * 1e9, 27983.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 30) * 1e9, 28852.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 35) * 1e9, 30130, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 40) * 1e9, 31821.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 45) * 1e9, 33878, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 50) * 1e9, 36202.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 55) * 1e9, 38673.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 60) * 1e9, 41169.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 65) * 1e9, 43590.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 70) * 1e9, 45860, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 75) * 1e9, 47927.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 80) * 1e9, 49754.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 85) * 1e9, 51305, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 90) * 1e9, 52550.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 95) * 1e9, 53478.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 100) * 1e9, 54101.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 105) * 1e9, 54464, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 110) * 1e9, 54629.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 115) * 1e9, 54660.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 120) * 1e9, 54597.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 125) * 1e9, 54454.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 130) * 1e9, 54219.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 135) * 1e9, 53876.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 140) * 1e9, 53412.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 145) * 1e9, 52824.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 150) * 1e9, 52118.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 155) * 1e9, 51303.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 160) * 1e9, 50388, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 165) * 1e9, 49383.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 170) * 1e9, 48308.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 175) * 1e9, 47187.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 180) * 1e9, 46045.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -180) * 1e9, 43225.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -175) * 1e9, 42164.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -170) * 1e9, 41116.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -165) * 1e9, 40078.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -160) * 1e9, 39047.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -155) * 1e9, 38022.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -150) * 1e9, 37009.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -145) * 1e9, 36016.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -140) * 1e9, 35051.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -135) * 1e9, 34121.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -130) * 1e9, 33228.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -125) * 1e9, 32372.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -120) * 1e9, 31547.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -115) * 1e9, 30737, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -110) * 1e9, 29918.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -105) * 1e9, 29063.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -100) * 1e9, 28153.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -95) * 1e9, 27185.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -90) * 1e9, 26182.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -85) * 1e9, 25190.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -80) * 1e9, 24272.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -75) * 1e9, 23494.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -70) * 1e9, 22914.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -65) * 1e9, 22569.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -60) * 1e9, 22466.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -55) * 1e9, 22580.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -50) * 1e9, 22865.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -45) * 1e9, 23268.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -40) * 1e9, 23745.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -35) * 1e9, 24275.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -30) * 1e9, 24853.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -25) * 1e9, 25479.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -20) * 1e9, 26144.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -15) * 1e9, 26817.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -10) * 1e9, 27448.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -5) * 1e9, 27982.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 0) * 1e9, 28378.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 5) * 1e9, 28630.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 10) * 1e9, 28768.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 15) * 1e9, 28860.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 20) * 1e9, 29004.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 25) * 1e9, 29313.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 30) * 1e9, 29899.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 35) * 1e9, 30853.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 40) * 1e9, 32212.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 45) * 1e9, 33952.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 50) * 1e9, 35989.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 55) * 1e9, 38202.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 60) * 1e9, 40466.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 65) * 1e9, 42674.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 70) * 1e9, 44746.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 75) * 1e9, 46627.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 80) * 1e9, 48268.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 85) * 1e9, 49626.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 90) * 1e9, 50663, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 95) * 1e9, 51361.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 100) * 1e9, 51743, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 105) * 1e9, 51870.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 110) * 1e9, 51830.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 115) * 1e9, 51700.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 120) * 1e9, 51528.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 125) * 1e9, 51322.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 130) * 1e9, 51057.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 135) * 1e9, 50701.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 140) * 1e9, 50234.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 145) * 1e9, 49652.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 150) * 1e9, 48963, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 155) * 1e9, 48177.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 160) * 1e9, 47305, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 165) * 1e9, 46354.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 170) * 1e9, 45342.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 175) * 1e9, 44291.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 180) * 1e9, 43225.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -180) * 1e9, 40461.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -175) * 1e9, 39514.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -170) * 1e9, 38585.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -165) * 1e9, 37671, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -160) * 1e9, 36766.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -155) * 1e9, 35870.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -150) * 1e9, 34987.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -145) * 1e9, 34126.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -140) * 1e9, 33295.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -135) * 1e9, 32502.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -130) * 1e9, 31751.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -125) * 1e9, 31044.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -120) * 1e9, 30378.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -115) * 1e9, 29740.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -110) * 1e9, 29106.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -105) * 1e9, 28451.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -100) * 1e9, 27750.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -95) * 1e9, 26998, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -90) * 1e9, 26206.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -85) * 1e9, 25411.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -80) * 1e9, 24661.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -75) * 1e9, 24010.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -70) * 1e9, 23508.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -65) * 1e9, 23193.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -60) * 1e9, 23082.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -55) * 1e9, 23169.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -50) * 1e9, 23429.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -45) * 1e9, 23827.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -40) * 1e9, 24327.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -35) * 1e9, 24909.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -30) * 1e9, 25562.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -25) * 1e9, 26281.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -20) * 1e9, 27051.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -15) * 1e9, 27837.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -10) * 1e9, 28589, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -5) * 1e9, 29245.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 0) * 1e9, 29758.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 5) * 1e9, 30106.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 10) * 1e9, 30303.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 15) * 1e9, 30394.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 20) * 1e9, 30461.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 25) * 1e9, 30608.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 30) * 1e9, 30954.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 35) * 1e9, 31608.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 40) * 1e9, 32635.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 45) * 1e9, 34034.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 50) * 1e9, 35740.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 55) * 1e9, 37640.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 60) * 1e9, 39615.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 65) * 1e9, 41559.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 70) * 1e9, 43393.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 75) * 1e9, 45060, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 80) * 1e9, 46505.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 85) * 1e9, 47674.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 90) * 1e9, 48519.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 95) * 1e9, 49020.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 100) * 1e9, 49201.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 105) * 1e9, 49138, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 110) * 1e9, 48931.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 115) * 1e9, 48672.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 120) * 1e9, 48413.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 125) * 1e9, 48153.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 130) * 1e9, 47859.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 135) * 1e9, 47487.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 140) * 1e9, 47012.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 145) * 1e9, 46432.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 150) * 1e9, 45759.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 155) * 1e9, 45006.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 160) * 1e9, 44185.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 165) * 1e9, 43304.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 170) * 1e9, 42376.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 175) * 1e9, 41421, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 180) * 1e9, 40461.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -180) * 1e9, 37907.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -175) * 1e9, 37101.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -170) * 1e9, 36319, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -165) * 1e9, 35554.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -160) * 1e9, 34804.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -155) * 1e9, 34066.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -150) * 1e9, 33347.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -145) * 1e9, 32654.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -140) * 1e9, 31994.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -135) * 1e9, 31373.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -130) * 1e9, 30794.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -125) * 1e9, 30260.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -120) * 1e9, 29768.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -115) * 1e9, 29307.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -110) * 1e9, 28860.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -105) * 1e9, 28400.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -100) * 1e9, 27905, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -95) * 1e9, 27361.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -90) * 1e9, 26774, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -85) * 1e9, 26161.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -80) * 1e9, 25559.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -75) * 1e9, 25007.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -70) * 1e9, 24548.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -65) * 1e9, 24222.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -60) * 1e9, 24056.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -55) * 1e9, 24066.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -50) * 1e9, 24251.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -45) * 1e9, 24598.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -40) * 1e9, 25081.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -35) * 1e9, 25675.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -30) * 1e9, 26359.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -25) * 1e9, 27115.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -20) * 1e9, 27920.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -15) * 1e9, 28740.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -10) * 1e9, 29529, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -5) * 1e9, 30232.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 0) * 1e9, 30803.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 5) * 1e9, 31215.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 10) * 1e9, 31465, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 15) * 1e9, 31579.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 20) * 1e9, 31617.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 25) * 1e9, 31670.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 30) * 1e9, 31853, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 35) * 1e9, 32277.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 40) * 1e9, 33023.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 45) * 1e9, 34108.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 50) * 1e9, 35483.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 55) * 1e9, 37054.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 60) * 1e9, 38711.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 65) * 1e9, 40361.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 70) * 1e9, 41930.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 75) * 1e9, 43363.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 80) * 1e9, 44604.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 85) * 1e9, 45592.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 90) * 1e9, 46272.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 95) * 1e9, 46617.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 100) * 1e9, 46654.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 105) * 1e9, 46460.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 110) * 1e9, 46142.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 115) * 1e9, 45793.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 120) * 1e9, 45465, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 125) * 1e9, 45154.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 130) * 1e9, 44821.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 135) * 1e9, 44422, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 140) * 1e9, 43929.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 145) * 1e9, 43343.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 150) * 1e9, 42681.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 155) * 1e9, 41962.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 160) * 1e9, 41197.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 165) * 1e9, 40396.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 170) * 1e9, 39569.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 175) * 1e9, 38734, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 180) * 1e9, 37907.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -180) * 1e9, 35742.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -175) * 1e9, 35098.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -170) * 1e9, 34482.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -165) * 1e9, 33885.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -160) * 1e9, 33306.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -155) * 1e9, 32745.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -150) * 1e9, 32211.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -145) * 1e9, 31710.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -140) * 1e9, 31248.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -135) * 1e9, 30826.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -130) * 1e9, 30445.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -125) * 1e9, 30102.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -120) * 1e9, 29796.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -115) * 1e9, 29519, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -110) * 1e9, 29256.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -105) * 1e9, 28985.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -100) * 1e9, 28683.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -95) * 1e9, 28330.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -90) * 1e9, 27919.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -85) * 1e9, 27458.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -80) * 1e9, 26966, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -75) * 1e9, 26475.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -70) * 1e9, 26022.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -65) * 1e9, 25646.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -60) * 1e9, 25385.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -55) * 1e9, 25274.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -50) * 1e9, 25336.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -45) * 1e9, 25579.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -40) * 1e9, 25989.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -35) * 1e9, 26539.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -30) * 1e9, 27194, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -25) * 1e9, 27922.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -20) * 1e9, 28693.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -15) * 1e9, 29473.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -10) * 1e9, 30226.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -5) * 1e9, 30910.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 0) * 1e9, 31486.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 5) * 1e9, 31926.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 10) * 1e9, 32218.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 15) * 1e9, 32372.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 20) * 1e9, 32429.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 25) * 1e9, 32463.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 30) * 1e9, 32573.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 35) * 1e9, 32864.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 40) * 1e9, 33415.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 45) * 1e9, 34251.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 50) * 1e9, 35337.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 55) * 1e9, 36597.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 60) * 1e9, 37942.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 65) * 1e9, 39294.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 70) * 1e9, 40593.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 75) * 1e9, 41787.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 80) * 1e9, 42823.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 85) * 1e9, 43639.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 90) * 1e9, 44180.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 95) * 1e9, 44416.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 100) * 1e9, 44369.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 105) * 1e9, 44109.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 110) * 1e9, 43733.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 115) * 1e9, 43330.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 120) * 1e9, 42944.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 125) * 1e9, 42573.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 130) * 1e9, 42182.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 135) * 1e9, 41733, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 140) * 1e9, 41203.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 145) * 1e9, 40599.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 150) * 1e9, 39940.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 155) * 1e9, 39249.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 160) * 1e9, 38541.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 165) * 1e9, 37826, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 170) * 1e9, 37113.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 175) * 1e9, 36415, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 180) * 1e9, 35742.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -180) * 1e9, 34123.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -175) * 1e9, 33652.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -170) * 1e9, 33209.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -165) * 1e9, 32786.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -160) * 1e9, 32382, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -155) * 1e9, 32003.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -150) * 1e9, 31660.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -145) * 1e9, 31362.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -140) * 1e9, 31111.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -135) * 1e9, 30904.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -130) * 1e9, 30734.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -125) * 1e9, 30596.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -120) * 1e9, 30485.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -115) * 1e9, 30395.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -110) * 1e9, 30315.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -105) * 1e9, 30224.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -100) * 1e9, 30095.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -95) * 1e9, 29902.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -90) * 1e9, 29630, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -85) * 1e9, 29273.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -80) * 1e9, 28847.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -75) * 1e9, 28376.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -70) * 1e9, 27894.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -65) * 1e9, 27441, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -60) * 1e9, 27060.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -55) * 1e9, 26800.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -50) * 1e9, 26702.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -45) * 1e9, 26794.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -40) * 1e9, 27073.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -35) * 1e9, 27515.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -30) * 1e9, 28077.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -25) * 1e9, 28718.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -20) * 1e9, 29400.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -15) * 1e9, 30092.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -10) * 1e9, 30766.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -5) * 1e9, 31391.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 0) * 1e9, 31939.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 5) * 1e9, 32385.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 10) * 1e9, 32712.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 15) * 1e9, 32922, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 20) * 1e9, 33038.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 25) * 1e9, 33119.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 30) * 1e9, 33246.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 35) * 1e9, 33503.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 40) * 1e9, 33956.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 45) * 1e9, 34625.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 50) * 1e9, 35486.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 55) * 1e9, 36482.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 60) * 1e9, 37549.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 65) * 1e9, 38629.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 70) * 1e9, 39675.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 75) * 1e9, 40644.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 80) * 1e9, 41487.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 85) * 1e9, 42147.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 90) * 1e9, 42574.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 95) * 1e9, 42740.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 100) * 1e9, 42658.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 105) * 1e9, 42385.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 110) * 1e9, 41996.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 115) * 1e9, 41561, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 120) * 1e9, 41117.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 125) * 1e9, 40667.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 130) * 1e9, 40189.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 135) * 1e9, 39658.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 140) * 1e9, 39065.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 145) * 1e9, 38422.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 150) * 1e9, 37751.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 155) * 1e9, 37077.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 160) * 1e9, 36417.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 165) * 1e9, 35784.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 170) * 1e9, 35187.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 175) * 1e9, 34633.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 180) * 1e9, 34123.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -180) * 1e9, 33147.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -175) * 1e9, 32840.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -170) * 1e9, 32563.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -165) * 1e9, 32306.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -160) * 1e9, 32070.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -155) * 1e9, 31866.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -150) * 1e9, 31709.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -145) * 1e9, 31611.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -140) * 1e9, 31572.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -135) * 1e9, 31582.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -130) * 1e9, 31630.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -125) * 1e9, 31702.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -120) * 1e9, 31792.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -115) * 1e9, 31892.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -110) * 1e9, 31990.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -105) * 1e9, 32065.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -100) * 1e9, 32085.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -95) * 1e9, 32019.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -90) * 1e9, 31842.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -85) * 1e9, 31547.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -80) * 1e9, 31143, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -75) * 1e9, 30654.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -70) * 1e9, 30115.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -65) * 1e9, 29567.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -60) * 1e9, 29057.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -55) * 1e9, 28641.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -50) * 1e9, 28372.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -45) * 1e9, 28288.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -40) * 1e9, 28400.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -35) * 1e9, 28686.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -30) * 1e9, 29107.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -25) * 1e9, 29617.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -20) * 1e9, 30178.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -15) * 1e9, 30762.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -10) * 1e9, 31345.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -5) * 1e9, 31905.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 0) * 1e9, 32420.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 5) * 1e9, 32868.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 10) * 1e9, 33230.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 15) * 1e9, 33504.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 20) * 1e9, 33708.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 25) * 1e9, 33885.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 30) * 1e9, 34094.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 35) * 1e9, 34397.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 40) * 1e9, 34834.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 45) * 1e9, 35414.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 50) * 1e9, 36119.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 55) * 1e9, 36912.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 60) * 1e9, 37754.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 65) * 1e9, 38610.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 70) * 1e9, 39444.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 75) * 1e9, 40222.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 80) * 1e9, 40900.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 85) * 1e9, 41430.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 90) * 1e9, 41769.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 95) * 1e9, 41895.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 100) * 1e9, 41812.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 105) * 1e9, 41556.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 110) * 1e9, 41175.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 115) * 1e9, 40714.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 120) * 1e9, 40203, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 125) * 1e9, 39649.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 130) * 1e9, 39049.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 135) * 1e9, 38402.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 140) * 1e9, 37713.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 145) * 1e9, 37002.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 150) * 1e9, 36295.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 155) * 1e9, 35615.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 160) * 1e9, 34985.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 165) * 1e9, 34418.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 170) * 1e9, 33924, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 175) * 1e9, 33503.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 180) * 1e9, 33147.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -180) * 1e9, 32830.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -175) * 1e9, 32662.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -170) * 1e9, 32531, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -165) * 1e9, 32422.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -160) * 1e9, 32338.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -155) * 1e9, 32295.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -150) * 1e9, 32312.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -145) * 1e9, 32403, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -140) * 1e9, 32565.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -135) * 1e9, 32786.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -130) * 1e9, 33047.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -125) * 1e9, 33328.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -120) * 1e9, 33618.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -115) * 1e9, 33905.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -110) * 1e9, 34175.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -105) * 1e9, 34402, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -100) * 1e9, 34549.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -95) * 1e9, 34579.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -90) * 1e9, 34465.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -85) * 1e9, 34195.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -80) * 1e9, 33780.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -75) * 1e9, 33247, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -70) * 1e9, 32632, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -65) * 1e9, 31980.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -60) * 1e9, 31344.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -55) * 1e9, 30784.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -50) * 1e9, 30357.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -45) * 1e9, 30106.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -40) * 1e9, 30047.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -35) * 1e9, 30164.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -30) * 1e9, 30424.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -25) * 1e9, 30787.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -20) * 1e9, 31220.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -15) * 1e9, 31698.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -10) * 1e9, 32202.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -5) * 1e9, 32713.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 0) * 1e9, 33209.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 5) * 1e9, 33665.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 10) * 1e9, 34067, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 15) * 1e9, 34409.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 20) * 1e9, 34709.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 25) * 1e9, 35000.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 30) * 1e9, 35323.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 35) * 1e9, 35713.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 40) * 1e9, 36184.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 45) * 1e9, 36732.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 50) * 1e9, 37342.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 55) * 1e9, 37995.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 60) * 1e9, 38674.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 65) * 1e9, 39364.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 70) * 1e9, 40044, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 75) * 1e9, 40681.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 80) * 1e9, 41239, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 85) * 1e9, 41676.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 90) * 1e9, 41959.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 95) * 1e9, 42068.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 100) * 1e9, 42001.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 105) * 1e9, 41771.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 110) * 1e9, 41399.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 115) * 1e9, 40907.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 120) * 1e9, 40313.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 125) * 1e9, 39633.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 130) * 1e9, 38885.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 135) * 1e9, 38089.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 140) * 1e9, 37270.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 145) * 1e9, 36458.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 150) * 1e9, 35681.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 155) * 1e9, 34966.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 160) * 1e9, 34334.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 165) * 1e9, 33802.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 170) * 1e9, 33378.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 175) * 1e9, 33060.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 180) * 1e9, 32830.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -180) * 1e9, 33133.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -175) * 1e9, 33064.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -170) * 1e9, 33047.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -165) * 1e9, 33063, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -160) * 1e9, 33113.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -155) * 1e9, 33216.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -150) * 1e9, 33392.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -145) * 1e9, 33655.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -140) * 1e9, 34003.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -135) * 1e9, 34419.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -130) * 1e9, 34878.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -125) * 1e9, 35358.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -120) * 1e9, 35838.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -115) * 1e9, 36303.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -110) * 1e9, 36733.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -105) * 1e9, 37096.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -100) * 1e9, 37352.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -95) * 1e9, 37459.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -90) * 1e9, 37387.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -85) * 1e9, 37124.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -80) * 1e9, 36682.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -75) * 1e9, 36090.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -70) * 1e9, 35392, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -65) * 1e9, 34638.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -60) * 1e9, 33888.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -55) * 1e9, 33206.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -50) * 1e9, 32650.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -45) * 1e9, 32262.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -40) * 1e9, 32058.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -35) * 1e9, 32026.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -30) * 1e9, 32138.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -25) * 1e9, 32363.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -20) * 1e9, 32678.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -15) * 1e9, 33065.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -10) * 1e9, 33510.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -5) * 1e9, 33991.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 0) * 1e9, 34483.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 5) * 1e9, 34958.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 10) * 1e9, 35399.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 15) * 1e9, 35804.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 20) * 1e9, 36191, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 25) * 1e9, 36586.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 30) * 1e9, 37016.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 35) * 1e9, 37493.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 40) * 1e9, 38013.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 45) * 1e9, 38561.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 50) * 1e9, 39122.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 55) * 1e9, 39692, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 60) * 1e9, 40271, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 65) * 1e9, 40858.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 70) * 1e9, 41443.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 75) * 1e9, 41999.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 80) * 1e9, 42491.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 85) * 1e9, 42882.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 90) * 1e9, 43144.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 95) * 1e9, 43259.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 100) * 1e9, 43215.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 105) * 1e9, 43009.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 110) * 1e9, 42638.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 115) * 1e9, 42104.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 120) * 1e9, 41418.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 125) * 1e9, 40603.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 130) * 1e9, 39693.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 135) * 1e9, 38729.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 140) * 1e9, 37756.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 145) * 1e9, 36813.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 150) * 1e9, 35934.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 155) * 1e9, 35148.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 160) * 1e9, 34478.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 165) * 1e9, 33941.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 170) * 1e9, 33544.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 175) * 1e9, 33282.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 180) * 1e9, 33133.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -180) * 1e9, 33999.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -175) * 1e9, 33984.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -170) * 1e9, 34043.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -165) * 1e9, 34156.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -160) * 1e9, 34322.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -155) * 1e9, 34556.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -150) * 1e9, 34877.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -145) * 1e9, 35296.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -140) * 1e9, 35809.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -135) * 1e9, 36398, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -130) * 1e9, 37033.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -125) * 1e9, 37687.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -120) * 1e9, 38337.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -115) * 1e9, 38960.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -110) * 1e9, 39530.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -105) * 1e9, 40011.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -100) * 1e9, 40360, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -95) * 1e9, 40531.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -90) * 1e9, 40493.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -85) * 1e9, 40233.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -80) * 1e9, 39764.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -75) * 1e9, 39117.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -70) * 1e9, 38341.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -65) * 1e9, 37497.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -60) * 1e9, 36651.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -55) * 1e9, 35872.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -50) * 1e9, 35218.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -45) * 1e9, 34729.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -40) * 1e9, 34416.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -35) * 1e9, 34267.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -30) * 1e9, 34260.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -25) * 1e9, 34372.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -20) * 1e9, 34589, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -15) * 1e9, 34902, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -10) * 1e9, 35299.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -5) * 1e9, 35760.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 0) * 1e9, 36253.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 5) * 1e9, 36747.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 10) * 1e9, 37221.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 15) * 1e9, 37674.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 20) * 1e9, 38123, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 25) * 1e9, 38590.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 30) * 1e9, 39094.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 35) * 1e9, 39634.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 40) * 1e9, 40194.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 45) * 1e9, 40753.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 50) * 1e9, 41299, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 55) * 1e9, 41834.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 60) * 1e9, 42371.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 65) * 1e9, 42917.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 70) * 1e9, 43468.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 75) * 1e9, 44000.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 80) * 1e9, 44479.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 85) * 1e9, 44871.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 90) * 1e9, 45148.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 95) * 1e9, 45288.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 100) * 1e9, 45274, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 105) * 1e9, 45086.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 110) * 1e9, 44707.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 115) * 1e9, 44127.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 120) * 1e9, 43353.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 125) * 1e9, 42410.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 130) * 1e9, 41345.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 135) * 1e9, 40216.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 140) * 1e9, 39083, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 145) * 1e9, 37995.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 150) * 1e9, 36994.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 155) * 1e9, 36112.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 160) * 1e9, 35371.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 165) * 1e9, 34789.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 170) * 1e9, 34374, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 175) * 1e9, 34118, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 180) * 1e9, 33999.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -180) * 1e9, 35377.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -175) * 1e9, 35375.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -170) * 1e9, 35475, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -165) * 1e9, 35658.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -160) * 1e9, 35920.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -155) * 1e9, 36271.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -150) * 1e9, 36723.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -145) * 1e9, 37281.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -140) * 1e9, 37937.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -135) * 1e9, 38669.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -130) * 1e9, 39449, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -125) * 1e9, 40244.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -120) * 1e9, 41029.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -115) * 1e9, 41777.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -110) * 1e9, 42457.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -105) * 1e9, 43031, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -100) * 1e9, 43451.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -95) * 1e9, 43675.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -90) * 1e9, 43668, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -85) * 1e9, 43416.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -80) * 1e9, 42930.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -75) * 1e9, 42244.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -70) * 1e9, 41411.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -65) * 1e9, 40498.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -60) * 1e9, 39580, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -55) * 1e9, 38728.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -50) * 1e9, 38002.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -45) * 1e9, 37437.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -40) * 1e9, 37042, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -35) * 1e9, 36804.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -30) * 1e9, 36704.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -25) * 1e9, 36725.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -20) * 1e9, 36862.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -15) * 1e9, 37110.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -10) * 1e9, 37463, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -5) * 1e9, 37898.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 0) * 1e9, 38383.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 5) * 1e9, 38883.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 10) * 1e9, 39374.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 15) * 1e9, 39853.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 20) * 1e9, 40334, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 25) * 1e9, 40836.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 30) * 1e9, 41374.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 35) * 1e9, 41942.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 40) * 1e9, 42523, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 45) * 1e9, 43096, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 50) * 1e9, 43651.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 55) * 1e9, 44196, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 60) * 1e9, 44743, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 65) * 1e9, 45303.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 70) * 1e9, 45872.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 75) * 1e9, 46429.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 80) * 1e9, 46940.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 85) * 1e9, 47370.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 90) * 1e9, 47690.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 95) * 1e9, 47871.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 100) * 1e9, 47890.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 105) * 1e9, 47718.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 110) * 1e9, 47330.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 115) * 1e9, 46710.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 120) * 1e9, 45862.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 125) * 1e9, 44816.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 130) * 1e9, 43625.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 135) * 1e9, 42358.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 140) * 1e9, 41083.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 145) * 1e9, 39861.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 150) * 1e9, 38740.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 155) * 1e9, 37752.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 160) * 1e9, 36924.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 165) * 1e9, 36272.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 170) * 1e9, 35802.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 175) * 1e9, 35510.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 180) * 1e9, 35377.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -180) * 1e9, 37232.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -175) * 1e9, 37211.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -170) * 1e9, 37324.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -165) * 1e9, 37553.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -160) * 1e9, 37892.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -155) * 1e9, 38343.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -150) * 1e9, 38908.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -145) * 1e9, 39583.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -140) * 1e9, 40355.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -135) * 1e9, 41199.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -130) * 1e9, 42083.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -125) * 1e9, 42978.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -120) * 1e9, 43854.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -115) * 1e9, 44682.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -110) * 1e9, 45431.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -105) * 1e9, 46060.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -100) * 1e9, 46525.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -95) * 1e9, 46783.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -90) * 1e9, 46799.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -85) * 1e9, 46559.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -80) * 1e9, 46072, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -75) * 1e9, 45370.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -70) * 1e9, 44508.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -65) * 1e9, 43556.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -60) * 1e9, 42593.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -55) * 1e9, 41691.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -50) * 1e9, 40910.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -45) * 1e9, 40283.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -40) * 1e9, 39819, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -35) * 1e9, 39505.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -30) * 1e9, 39327.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -25) * 1e9, 39271.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -20) * 1e9, 39336.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -15) * 1e9, 39521.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -10) * 1e9, 39821.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -5) * 1e9, 40215.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 0) * 1e9, 40671.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 5) * 1e9, 41155.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 10) * 1e9, 41640.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 15) * 1e9, 42120, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 20) * 1e9, 42604.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 25) * 1e9, 43109.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 30) * 1e9, 43647.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 35) * 1e9, 44217, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 40) * 1e9, 44804, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 45) * 1e9, 45394, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 50) * 1e9, 45980.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 55) * 1e9, 46568.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 60) * 1e9, 47168.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 65) * 1e9, 47786.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 70) * 1e9, 48416.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 75) * 1e9, 49034.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 80) * 1e9, 49607.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 85) * 1e9, 50100, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 90) * 1e9, 50476.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 95) * 1e9, 50706.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 100) * 1e9, 50758.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 105) * 1e9, 50601.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 110) * 1e9, 50207.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 115) * 1e9, 49560.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 120) * 1e9, 48665, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 125) * 1e9, 47553.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 130) * 1e9, 46282.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 135) * 1e9, 44924, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 140) * 1e9, 43551.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 145) * 1e9, 42231.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 150) * 1e9, 41014.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 155) * 1e9, 39938.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 160) * 1e9, 39027.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 165) * 1e9, 38298.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 170) * 1e9, 37759.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 175) * 1e9, 37408.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 180) * 1e9, 37232.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -180) * 1e9, 39532.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -175) * 1e9, 39480.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -170) * 1e9, 39587.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -165) * 1e9, 39842, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -160) * 1e9, 40235.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -155) * 1e9, 40761.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -150) * 1e9, 41412, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -145) * 1e9, 42174.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -140) * 1e9, 43026.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -135) * 1e9, 43940.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -130) * 1e9, 44886, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -125) * 1e9, 45831, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -120) * 1e9, 46746.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -115) * 1e9, 47604.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -110) * 1e9, 48372.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -105) * 1e9, 49013.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -100) * 1e9, 49487.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -95) * 1e9, 49752.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -90) * 1e9, 49777.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -85) * 1e9, 49548.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -80) * 1e9, 49070.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -75) * 1e9, 48375.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -70) * 1e9, 47515, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -65) * 1e9, 46557.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -60) * 1e9, 45579.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -55) * 1e9, 44651.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -50) * 1e9, 43829.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -45) * 1e9, 43148.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -40) * 1e9, 42618.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -35) * 1e9, 42233, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -30) * 1e9, 41979.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -25) * 1e9, 41850.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -20) * 1e9, 41844.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -15) * 1e9, 41960.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -10) * 1e9, 42194.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -5) * 1e9, 42527.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 0) * 1e9, 42931.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 5) * 1e9, 43372.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 10) * 1e9, 43825.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 15) * 1e9, 44282.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 20) * 1e9, 44748, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 25) * 1e9, 45235.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 30) * 1e9, 45756, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 35) * 1e9, 46313.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 40) * 1e9, 46902.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 45) * 1e9, 47515.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 50) * 1e9, 48148.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 55) * 1e9, 48804.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 60) * 1e9, 49485.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 65) * 1e9, 50190.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 70) * 1e9, 50905.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 75) * 1e9, 51605.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 80) * 1e9, 52255.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 85) * 1e9, 52816.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 90) * 1e9, 53252.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 95) * 1e9, 53527.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 100) * 1e9, 53609.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 105) * 1e9, 53465.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 110) * 1e9, 53072, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 115) * 1e9, 52415.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 120) * 1e9, 51505, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 125) * 1e9, 50373.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 130) * 1e9, 49077.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 135) * 1e9, 47687.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 140) * 1e9, 46277.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 145) * 1e9, 44913.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 150) * 1e9, 43648.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 155) * 1e9, 42521.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 160) * 1e9, 41555.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 165) * 1e9, 40768.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 170) * 1e9, 40168.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 175) * 1e9, 39758.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 180) * 1e9, 39532.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -180) * 1e9, 42226, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -175) * 1e9, 42145, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -170) * 1e9, 42239.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -165) * 1e9, 42501.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -160) * 1e9, 42921.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -155) * 1e9, 43487.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -150) * 1e9, 44183.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -145) * 1e9, 44987.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -140) * 1e9, 45872.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -135) * 1e9, 46808.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -130) * 1e9, 47762.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -125) * 1e9, 48705, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -120) * 1e9, 49607.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -115) * 1e9, 50441.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -110) * 1e9, 51179.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -105) * 1e9, 51787.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -100) * 1e9, 52230.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -95) * 1e9, 52473.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -90) * 1e9, 52488.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -85) * 1e9, 52262.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -80) * 1e9, 51801.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -75) * 1e9, 51132, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -70) * 1e9, 50300.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -65) * 1e9, 49368.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -60) * 1e9, 48405, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -55) * 1e9, 47474.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -50) * 1e9, 46630.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -45) * 1e9, 45906.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -40) * 1e9, 45316.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -35) * 1e9, 44861.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -30) * 1e9, 44533.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -25) * 1e9, 44330.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -20) * 1e9, 44248.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -15) * 1e9, 44288.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -10) * 1e9, 44444, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -5) * 1e9, 44698.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 0) * 1e9, 45027.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 5) * 1e9, 45403.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 10) * 1e9, 45804.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 15) * 1e9, 46221, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 20) * 1e9, 46654.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 25) * 1e9, 47114.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 30) * 1e9, 47614.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 35) * 1e9, 48161.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 40) * 1e9, 48757.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 45) * 1e9, 49401.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 50) * 1e9, 50091.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 55) * 1e9, 50824, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 60) * 1e9, 51595.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 65) * 1e9, 52395, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 70) * 1e9, 53201.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 75) * 1e9, 53984, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 80) * 1e9, 54706.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 85) * 1e9, 55328.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 90) * 1e9, 55813.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 95) * 1e9, 56123.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 100) * 1e9, 56228.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 105) * 1e9, 56097.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 110) * 1e9, 55713.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 115) * 1e9, 55068.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 120) * 1e9, 54177, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 125) * 1e9, 53072.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 130) * 1e9, 51808.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 135) * 1e9, 50451.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 140) * 1e9, 49070.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 145) * 1e9, 47728.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 150) * 1e9, 46475.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 155) * 1e9, 45349.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 160) * 1e9, 44373.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 165) * 1e9, 43565.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 170) * 1e9, 42935.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 175) * 1e9, 42488.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 180) * 1e9, 42226, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -180) * 1e9, 45210.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -175) * 1e9, 45114.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -170) * 1e9, 45195, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -165) * 1e9, 45446.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -160) * 1e9, 45860.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -155) * 1e9, 46421.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -150) * 1e9, 47109.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -145) * 1e9, 47898.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -140) * 1e9, 48757.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -135) * 1e9, 49656.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -130) * 1e9, 50563.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -125) * 1e9, 51448.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -120) * 1e9, 52285.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -115) * 1e9, 53048.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -110) * 1e9, 53712.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -105) * 1e9, 54248, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -100) * 1e9, 54626.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -95) * 1e9, 54821.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -90) * 1e9, 54809.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -85) * 1e9, 54580.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -80) * 1e9, 54140.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -75) * 1e9, 53510.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -70) * 1e9, 52730.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -65) * 1e9, 51852.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -60) * 1e9, 50932.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -55) * 1e9, 50027.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -50) * 1e9, 49185.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -45) * 1e9, 48437.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -40) * 1e9, 47801.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -35) * 1e9, 47286.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -30) * 1e9, 46891, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -25) * 1e9, 46614.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -20) * 1e9, 46456.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -15) * 1e9, 46415.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -10) * 1e9, 46483.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -5) * 1e9, 46647.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 0) * 1e9, 46889.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 5) * 1e9, 47187.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 10) * 1e9, 47523.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 15) * 1e9, 47889.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 20) * 1e9, 48286.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 25) * 1e9, 48722.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 30) * 1e9, 49208.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 35) * 1e9, 49754, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 40) * 1e9, 50365.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 45) * 1e9, 51044.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 50) * 1e9, 51789.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 55) * 1e9, 52592.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 60) * 1e9, 53443.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 65) * 1e9, 54322.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 70) * 1e9, 55202.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 75) * 1e9, 56048.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 80) * 1e9, 56823.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 85) * 1e9, 57487.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 90) * 1e9, 58002, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 95) * 1e9, 58333.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 100) * 1e9, 58453, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 105) * 1e9, 58337.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 110) * 1e9, 57975.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 115) * 1e9, 57366.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 120) * 1e9, 56529.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 125) * 1e9, 55497.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 130) * 1e9, 54320.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 135) * 1e9, 53057.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 140) * 1e9, 51769.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 145) * 1e9, 50513.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 150) * 1e9, 49334.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 155) * 1e9, 48266.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 160) * 1e9, 47333.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 165) * 1e9, 46552.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 170) * 1e9, 45933.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 175) * 1e9, 45484.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 180) * 1e9, 45210.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -180) * 1e9, 48314.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -175) * 1e9, 48216.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -170) * 1e9, 48280.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -165) * 1e9, 48504.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -160) * 1e9, 48877.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -155) * 1e9, 49385.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -150) * 1e9, 50008.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -145) * 1e9, 50720, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -140) * 1e9, 51491.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -135) * 1e9, 52293.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -130) * 1e9, 53096, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -125) * 1e9, 53872.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -120) * 1e9, 54598, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -115) * 1e9, 55249.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -110) * 1e9, 55805, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -105) * 1e9, 56240.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -100) * 1e9, 56534.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -95) * 1e9, 56665.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -90) * 1e9, 56617.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -85) * 1e9, 56384.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -80) * 1e9, 55970.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -75) * 1e9, 55393.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -70) * 1e9, 54684.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -65) * 1e9, 53883.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -60) * 1e9, 53035.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -55) * 1e9, 52185.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -50) * 1e9, 51374.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -45) * 1e9, 50631.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -40) * 1e9, 49977.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -35) * 1e9, 49424, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -30) * 1e9, 48976.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -25) * 1e9, 48638.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -20) * 1e9, 48410.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -15) * 1e9, 48290.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -10) * 1e9, 48272.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -5) * 1e9, 48346.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 0) * 1e9, 48499.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 5) * 1e9, 48716.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 10) * 1e9, 48987, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 15) * 1e9, 49303.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 20) * 1e9, 49667.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 25) * 1e9, 50084.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 30) * 1e9, 50565, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 35) * 1e9, 51116.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 40) * 1e9, 51746.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 45) * 1e9, 52456.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 50) * 1e9, 53241.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 55) * 1e9, 54092.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 60) * 1e9, 54991.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 65) * 1e9, 55914.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 70) * 1e9, 56830.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 75) * 1e9, 57704.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 80) * 1e9, 58497.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 85) * 1e9, 59172.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 90) * 1e9, 59694.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 95) * 1e9, 60032.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 100) * 1e9, 60162.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 105) * 1e9, 60068.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 110) * 1e9, 59745.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 115) * 1e9, 59200.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 120) * 1e9, 58452.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 125) * 1e9, 57534.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 130) * 1e9, 56492.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 135) * 1e9, 55375.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 140) * 1e9, 54235.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 145) * 1e9, 53119.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 150) * 1e9, 52067.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 155) * 1e9, 51109.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 160) * 1e9, 50268.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 165) * 1e9, 49558.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 170) * 1e9, 48990.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 175) * 1e9, 48573.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 180) * 1e9, 48314.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -180) * 1e9, 51302, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -175) * 1e9, 51207.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -170) * 1e9, 51250, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -165) * 1e9, 51425.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -160) * 1e9, 51727, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -155) * 1e9, 52140.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -150) * 1e9, 52649.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -145) * 1e9, 53231.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -140) * 1e9, 53861.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -135) * 1e9, 54515.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -130) * 1e9, 55166.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -125) * 1e9, 55792.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -120) * 1e9, 56371.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -115) * 1e9, 56883.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -110) * 1e9, 57310.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -105) * 1e9, 57632, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -100) * 1e9, 57832.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -95) * 1e9, 57896.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -90) * 1e9, 57814.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -85) * 1e9, 57582.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -80) * 1e9, 57203.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -75) * 1e9, 56691.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -70) * 1e9, 56069.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -65) * 1e9, 55365.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -60) * 1e9, 54615.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -55) * 1e9, 53851.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -50) * 1e9, 53105, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -45) * 1e9, 52403.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -40) * 1e9, 51766.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -35) * 1e9, 51207.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -30) * 1e9, 50737.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -25) * 1e9, 50360.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -20) * 1e9, 50080.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -15) * 1e9, 49896.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -10) * 1e9, 49806.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -5) * 1e9, 49803.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 0) * 1e9, 49879.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 5) * 1e9, 50026.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 10) * 1e9, 50239.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 15) * 1e9, 50513, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 20) * 1e9, 50849.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 25) * 1e9, 51253.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 30) * 1e9, 51730.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 35) * 1e9, 52287.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 40) * 1e9, 52927, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 45) * 1e9, 53648.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 50) * 1e9, 54444.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 55) * 1e9, 55303.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 60) * 1e9, 56203.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 65) * 1e9, 57120.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 70) * 1e9, 58022.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 75) * 1e9, 58876.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 80) * 1e9, 59646.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 85) * 1e9, 60298.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 90) * 1e9, 60802.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 95) * 1e9, 61132.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 100) * 1e9, 61272.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 105) * 1e9, 61210.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 110) * 1e9, 60946.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 115) * 1e9, 60491.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 120) * 1e9, 59865.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 125) * 1e9, 59098.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 130) * 1e9, 58227.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 135) * 1e9, 57294.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 140) * 1e9, 56340.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 145) * 1e9, 55404.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 150) * 1e9, 54517.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 155) * 1e9, 53707, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 160) * 1e9, 52990.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 165) * 1e9, 52383.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 170) * 1e9, 51894.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 175) * 1e9, 51532.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 180) * 1e9, 51302, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -180) * 1e9, 53916.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -175) * 1e9, 53822.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -170) * 1e9, 53833.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -165) * 1e9, 53946, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -160) * 1e9, 54153.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -155) * 1e9, 54447, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -150) * 1e9, 54811.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -145) * 1e9, 55231.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -140) * 1e9, 55688.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -135) * 1e9, 56163.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -130) * 1e9, 56635.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -125) * 1e9, 57087.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -120) * 1e9, 57501.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -115) * 1e9, 57861, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -110) * 1e9, 58151, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -105) * 1e9, 58357.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -100) * 1e9, 58467.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -95) * 1e9, 58472.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -90) * 1e9, 58364, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -85) * 1e9, 58140.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -80) * 1e9, 57806.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -75) * 1e9, 57370.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -70) * 1e9, 56847.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -65) * 1e9, 56258, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -60) * 1e9, 55625, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -55) * 1e9, 54972.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -50) * 1e9, 54324.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -45) * 1e9, 53701.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -40) * 1e9, 53121.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -35) * 1e9, 52598.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -30) * 1e9, 52142.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -25) * 1e9, 51762.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -20) * 1e9, 51462.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -15) * 1e9, 51244.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -10) * 1e9, 51109, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -5) * 1e9, 51054.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 0) * 1e9, 51077, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 5) * 1e9, 51174.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 10) * 1e9, 51343.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 15) * 1e9, 51584.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 20) * 1e9, 51897.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 25) * 1e9, 52285.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 30) * 1e9, 52751.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 35) * 1e9, 53297, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 40) * 1e9, 53921.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 45) * 1e9, 54621.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 50) * 1e9, 55386.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 55) * 1e9, 56202.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 60) * 1e9, 57049.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 65) * 1e9, 57903.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 70) * 1e9, 58737.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 75) * 1e9, 59520.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 80) * 1e9, 60223.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 85) * 1e9, 60819.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 90) * 1e9, 61282.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 95) * 1e9, 61595.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 100) * 1e9, 61744.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 105) * 1e9, 61723.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 110) * 1e9, 61537.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 115) * 1e9, 61194.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 120) * 1e9, 60714.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 125) * 1e9, 60122, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 130) * 1e9, 59446.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 135) * 1e9, 58719, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 140) * 1e9, 57972, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 145) * 1e9, 57234.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 150) * 1e9, 56532, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 155) * 1e9, 55885, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 160) * 1e9, 55309.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 165) * 1e9, 54817.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 170) * 1e9, 54417.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 175) * 1e9, 54115.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 180) * 1e9, 53916.7, 145 + 500);
}