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.20877, 0.40062 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -175), 31.41463, 0.39369 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -170), 31.44403, 0.38791 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -165), 31.34561, 0.38308 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -160), 31.1617, 0.37904 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -155), 30.93146, 0.37565 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -150), 30.69204, 0.37281 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -145), 30.47654, 0.37041 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -140), 30.309, 0.36838 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -135), 30.19806, 0.36664 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -130), 30.13136, 0.36516 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -125), 30.0728, 0.36391 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -120), 29.96327, 0.3629 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -115), 29.72488, 0.36218 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -110), 29.26797, 0.36185 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -105), 28.50018, 0.36202 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -100), 27.33653, 0.36284 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -95), 25.70967, 0.36445 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -90), 23.57944, 0.36702 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -85), 20.94096, 0.37067 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -80), 17.8307, 0.37548 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -75), 14.32939, 0.3815 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -70), 10.55998, 0.38873 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -65), 6.67844, 0.39717 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -60), 2.85687, 0.40681 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -55), -0.73909, 0.41765 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -50), -3.97346, 0.4297 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -45), -6.75832, 0.44292 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -40), -9.06334, 0.45714 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -35), -10.91599, 0.47205 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -30), -12.394, 0.48709 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -25), -13.61386, 0.50149 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -20), -14.71845, 0.51427 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -15), -15.86512, 0.5243 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -10), -17.21216, 0.53051 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, -5), -18.90041, 0.53205 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 0), -21.02996, 0.52856 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 5), -23.63836, 0.52029 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 10), -26.69077, 0.50806 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 15), -30.0887, 0.49313 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 20), -33.69414, 0.47693 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 25), -37.35886, 0.4608 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 30), -40.94751, 0.44585 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 35), -44.34927, 0.43284 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 40), -47.47895, 0.42224 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 45), -50.27211, 0.41426 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 50), -52.6784, 0.40898 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 55), -54.65555, 0.40641 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 60), -56.1646, 0.40653 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 65), -57.16548, 0.40938 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 70), -57.61176, 0.41506 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 75), -57.44404, 0.42378 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 80), -56.58231, 0.43585 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 85), -54.91977, 0.45161 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 90), -52.32253, 0.4713 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 95), -48.64186, 0.49476 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 100), -43.7476, 0.52099 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 105), -37.58912, 0.54763 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 110), -30.27503, 0.57089 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 115), -22.13059, 0.58632 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 120), -13.66855, 0.59075 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 125), -5.45363, 0.58382 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 130), 2.06064, 0.56796 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 135), 8.61702, 0.54682 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 140), 14.13878, 0.52372 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 145), 18.66562, 0.50098 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 150), 22.29301, 0.47992 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 155), 25.13393, 0.46112 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 160), 27.30067, 0.44475 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 165), 28.89859, 0.43074 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 170), 30.02492, 0.41889 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 175), 30.76849, 0.40893 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-50, 180), 31.20877, 0.40062 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -180), 26.29315, 0.37408 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -175), 26.60424, 0.37021 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -170), 26.74821, 0.36698 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -165), 26.76466, 0.36429 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -160), 26.68632, 0.36207 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -155), 26.54391, 0.36025 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -150), 26.37016, 0.3588 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -145), 26.19989, 0.35767 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -140), 26.06558, 0.35685 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -135), 25.99003, 0.35632 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -130), 25.97869, 0.35607 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -125), 26.01376, 0.35607 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -120), 26.05083, 0.35635 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -115), 26.0183, 0.35692 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -110), 25.82014, 0.35783 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -105), 25.34306, 0.35917 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -100), 24.46851, 0.36109 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -95), 23.08858, 0.36376 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -90), 21.12309, 0.36738 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -85), 18.53547, 0.37211 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -80), 15.34558, 0.37809 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -75), 11.63785, 0.38534 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -70), 7.56153, 0.39383 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -65), 3.31885, 0.40353 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -60), -0.8609, 0.41442 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -55), -4.7574, 0.42655 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -50), -8.19507, 0.44006 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -45), -11.06771, 0.45508 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -40), -13.34596, 0.47168 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -35), -15.06859, 0.48972 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -30), -16.32366, 0.50884 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -25), -17.22828, 0.52837 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -20), -17.91603, 0.5472 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -15), -18.5358, 0.56379 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -10), -19.25615, 0.57626 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, -5), -20.26019, 0.58267 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 0), -21.71751, 0.58165 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 5), -23.737, 0.57285 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 10), -26.32589, 0.55719 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 15), -29.38268, 0.5366 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 20), -32.72969, 0.5135 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 25), -36.16473, 0.49025 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 30), -39.50429, 0.46869 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 35), -42.60392, 0.45002 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 40), -45.35817, 0.43485 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 45), -47.69026, 0.42334 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 50), -49.54068, 0.4154 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 55), -50.85902, 0.41081 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 60), -51.59904, 0.40931 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 65), -51.71549, 0.41064 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 70), -51.16042, 0.41458 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 75), -49.87898, 0.42089 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 80), -47.80771, 0.42931 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 85), -44.8815, 0.43943 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 90), -41.05621, 0.45051 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 95), -36.34777, 0.46136 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 100), -30.87371, 0.47047 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 105), -24.86739, 0.47636 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 110), -18.63912, 0.47816 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 115), -12.49574, 0.47591 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 120), -6.66834, 0.47038 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 125), -1.28877, 0.4626 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 130), 3.58873, 0.45348 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 135), 7.95188, 0.4437 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 140), 11.80444, 0.43374 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 145), 15.155, 0.42393 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 150), 18.01489, 0.41453 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 155), 20.39952, 0.40573 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 160), 22.33069, 0.39767 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 165), 23.83933, 0.39046 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 170), 24.96723, 0.38413 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 175), 25.76611, 0.37869 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-45, 180), 26.29315, 0.37408 + 2);
EXPECT_NEAR(get_mag_declination_degrees(-40, -180), 22.49742, 0.35464 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -175), 22.84343, 0.35261 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -170), 23.04179, 0.35098 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -165), 23.12594, 0.34966 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -160), 23.11832, 0.34863 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -155), 23.03705, 0.34785 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -150), 22.90346, 0.34731 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -145), 22.74562, 0.34702 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -140), 22.59596, 0.34699 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -135), 22.48455, 0.34724 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -130), 22.43129, 0.34779 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -125), 22.43855, 0.34866 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -120), 22.48447, 0.34985 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -115), 22.51636, 0.35136 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -110), 22.44602, 0.35322 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -105), 22.15103, 0.35547 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -100), 21.48578, 0.35823 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -95), 20.30251, 0.36169 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -90), 18.47782, 0.36606 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -85), 15.93883, 0.37157 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -80), 12.68506, 0.37832 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -75), 8.80325, 0.38633 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -70), 4.47048, 0.39549 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -65), -0.06182, 0.40568 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -60), -4.5067, 0.41688 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -55), -8.59536, 0.42919 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -50), -12.12719, 0.4429 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -45), -14.99819, 0.45832 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -40), -17.20141, 0.47571 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -35), -18.8038, 0.49519 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -30), -19.91031, 0.51669 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -25), -20.62983, 0.5399 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -20), -21.05831, 0.56405 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -15), -21.28938, 0.58766 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -10), -21.44719, 0.60833 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, -5), -21.71646, 0.62292 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 0), -22.33312, 0.62834 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 5), -23.51711, 0.62271 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 10), -25.37839, 0.60627 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 15), -27.86217, 0.58136 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 20), -30.77299, 0.55158 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 25), -33.8536, 0.5207 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 30), -36.86176, 0.49174 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 35), -39.60884, 0.46659 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 40), -41.96145, 0.44611 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 45), -43.8258, 0.43044 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 50), -45.13177, 0.41926 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 55), -45.82361, 0.41208 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 60), -45.8567, 0.40829 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 65), -45.1966, 0.40731 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 70), -43.81716, 0.40853 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 75), -41.69815, 0.41135 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 80), -38.82802, 0.4151 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 85), -35.22029, 0.41901 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 90), -30.94531, 0.42217 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 95), -26.1616, 0.42369 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 100), -21.11529, 0.42298 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 105), -16.08725, 0.42006 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 110), -11.31045, 0.41548 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 115), -6.91154, 0.41007 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 120), -2.90961, 0.40451 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 125), 0.74089, 0.39916 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 130), 4.09876, 0.39413 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 135), 7.20263, 0.38933 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 140), 10.06215, 0.38468 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 145), 12.66554, 0.38012 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 150), 14.99135, 0.37565 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 155), 17.01716, 0.37132 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 160), 18.72537, 0.36722 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 165), 20.10894, 0.36343 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 170), 21.17722, 0.36004 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 175), 21.9587, 0.35711 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-40, 180), 22.49742, 0.35464 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -180), 19.44955, 0.33991 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -175), 19.78862, 0.33902 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -170), 20.00307, 0.33841 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -165), 20.12494, 0.33802 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -160), 20.16911, 0.3378 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -155), 20.14081, 0.33775 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -150), 20.04671, 0.33786 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -145), 19.9023, 0.33815 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -140), 19.73243, 0.33866 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -135), 19.5666, 0.33941 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -130), 19.43255, 0.34046 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -125), 19.34956, 0.34185 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -120), 19.31976, 0.34357 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -115), 19.31575, 0.34564 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -110), 19.26699, 0.34803 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -105), 19.05255, 0.35078 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -100), 18.50872, 0.35398 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -95), 17.45426, 0.35782 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -90), 15.72694, 0.36253 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -85), 13.22122, 0.36833 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -80), 9.92001, 0.37533 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -75), 5.91615, 0.38347 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -70), 1.41699, 0.39255 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -65), -3.27874, 0.40239 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -60), -7.83577, 0.41296 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -55), -11.95418, 0.42446 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -50), -15.42962, 0.43729 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -45), -18.17974, 0.4519 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -40), -20.23343, 0.46864 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -35), -21.69249, 0.48772 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -30), -22.67973, 0.50928 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -25), -23.29132, 0.53334 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -20), -23.57395, 0.55964 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -15), -23.54205, 0.58729 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -10), -23.23401, 0.6142 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, -5), -22.78198, 0.6368 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 0), -22.44517, 0.65057 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 5), -22.5551, 0.65165 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 10), -23.37762, 0.63861 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 15), -24.982, 0.61326 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 20), -27.21674, 0.57983 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 25), -29.79632, 0.54339 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 30), -32.41686, 0.50826 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 35), -34.82779, 0.47731 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 40), -36.84724, 0.45185 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 45), -38.34815, 0.43209 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 50), -39.24161, 0.41757 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 55), -39.46821, 0.40751 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 60), -38.99631, 0.40104 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 65), -37.82064, 0.39727 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 70), -35.95684, 0.39538 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 75), -33.43368, 0.3946 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 80), -30.29293, 0.3942 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 85), -26.60743, 0.39349 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 90), -22.5121, 0.39183 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 95), -18.22034, 0.38884 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 100), -13.99313, 0.38455 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 105), -10.06286, 0.37945 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 110), -6.559, 0.37422 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 115), -3.48486, 0.36942 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 120), -0.75184, 0.36537 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 125), 1.75893, 0.36208 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 130), 4.14248, 0.35937 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 135), 6.44341, 0.35702 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 140), 8.6587, 0.35483 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 145), 10.75723, 0.35267 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 150), 12.69916, 0.35052 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 155), 14.44561, 0.34838 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 160), 15.96144, 0.34629 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 165), 17.21925, 0.34433 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 170), 18.20764, 0.34258 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 175), 18.93903, 0.34109 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-35, 180), 19.44955, 0.33991 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -180), 16.95776, 0.3286 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -175), 17.26084, 0.32843 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -170), 17.46096, 0.32848 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -165), 17.59363, 0.32871 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -160), 17.67055, 0.32908 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -155), 17.68676, 0.32956 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -150), 17.63457, 0.33016 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -145), 17.51458, 0.33089 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -140), 17.3394, 0.33179 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -135), 17.13164, 0.33289 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -130), 16.92025, 0.33425 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -125), 16.73592, 0.3359 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -120), 16.60157, 0.33786 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -115), 16.51486, 0.34011 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -110), 16.42551, 0.34265 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -105), 16.21907, 0.34548 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -100), 15.72082, 0.3487 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -95), 14.72494, 0.35251 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -90), 13.04078, 0.35713 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -85), 10.54141, 0.36278 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -80), 7.20379, 0.36949 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -75), 3.13463, 0.37713 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -70), -1.42733, 0.38545 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -65), -6.14517, 0.39421 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -60), -10.65501, 0.40345 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -55), -14.65006, 0.41349 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -50), -17.94159, 0.42481 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -45), -20.47657, 0.43789 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -40), -22.3154, 0.45305 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -35), -23.58339, 0.47044 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -30), -24.4099, 0.4901 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -25), -24.87349, 0.51212 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -20), -24.97634, 0.53653 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -15), -24.66553, 0.56296 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -10), -23.90098, 0.59005 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, -5), -22.74745, 0.61488 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 0), -21.44282, 0.633 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 5), -20.37837, 0.63972 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 10), -19.96134, 0.63225 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 15), -20.43092, 0.61113 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 20), -21.76111, 0.57989 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 25), -23.70742, 0.54361 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 30), -25.9319, 0.50718 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 35), -28.11027, 0.47412 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 40), -29.9814, 0.44632 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 45), -31.35469, 0.42428 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 50), -32.10376, 0.4076 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 55), -32.16127, 0.39544 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 60), -31.51471, 0.38682 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 65), -30.19694, 0.38079 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 70), -28.26762, 0.37649 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 75), -25.79276, 0.37323 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 80), -22.83922, 0.3704 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 85), -19.49612, 0.36749 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 90), -15.9107, 0.3641 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 95), -12.30071, 0.36004 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 100), -8.91148, 0.35549 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 105), -5.93247, 0.35087 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 110), -3.4296, 0.34667 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 115), -1.33763, 0.34321 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 120), 0.4907, 0.3406 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 125), 2.21311, 0.33874 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 130), 3.93925, 0.3374 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 135), 5.70629, 0.33635 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 140), 7.49091, 0.33539 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 145), 9.24107, 0.33443 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 150), 10.90329, 0.33344 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 155), 12.43204, 0.33243 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 160), 13.7863, 0.33142 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 165), 14.92836, 0.33048 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 170), 15.83261, 0.32965 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 175), 16.49891, 0.32901 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-30, 180), 16.95776, 0.3286 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -180), 14.92021, 0.32003 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -175), 15.16613, 0.3203 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -170), 15.3257, 0.32077 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -165), 15.44198, 0.32141 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -160), 15.52821, 0.32218 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -155), 15.57356, 0.32306 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -150), 15.55875, 0.32403 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -145), 15.47028, 0.3251 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -140), 15.30703, 0.3263 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -135), 15.08133, 0.32765 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -130), 14.81867, 0.32919 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -125), 14.55575, 0.33094 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -120), 14.33084, 0.33292 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -115), 14.16144, 0.33511 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -110), 14.01347, 0.3375 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -105), 13.77777, 0.34011 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -100), 13.27213, 0.34306 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -95), 12.27536, 0.34654 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -90), 10.58221, 0.35078 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -85), 8.06013, 0.35593 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -80), 4.69443, 0.36195 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -75), 0.61395, 0.36864 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -70), -3.91381, 0.37568 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -65), -8.52966, 0.3829 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -60), -12.86561, 0.3904 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -55), -16.63015, 0.3986 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -50), -19.65957, 0.40805 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -45), -21.92327, 0.41919 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -40), -23.49418, 0.43223 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -35), -24.49857, 0.44712 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -30), -25.05619, 0.46369 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -25), -25.22705, 0.48176 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -20), -24.98817, 0.50125 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -15), -24.25867, 0.52193 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -10), -22.97042, 0.543 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, -5), -21.15977, 0.56254 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 0), -19.03859, 0.57743 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 5), -16.99214, 0.58409 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 10), -15.47285, 0.58003 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 15), -14.83145, 0.56496 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 20), -15.18902, 0.54099 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 25), -16.42029, 0.51168 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 30), -18.22947, 0.48089 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 35), -20.2538, 0.45181 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 40), -22.14683, 0.42647 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 45), -23.6291, 0.40571 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 50), -24.51261, 0.38946 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 55), -24.70745, 0.37712 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 60), -24.21298, 0.3679 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 65), -23.09256, 0.361 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 70), -21.43552, 0.35572 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 75), -19.32266, 0.35155 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 80), -16.8187, 0.34801 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 85), -14.00219, 0.34474 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 90), -11.01101, 0.34141 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 95), -8.05704, 0.3379 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 100), -5.37764, 0.3343 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 105), -3.14491, 0.3309 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 110), -1.39544, 0.328 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 115), -0.02603, 0.32578 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 120), 1.14891, 0.32428 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 125), 2.31506, 0.32337 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 130), 3.59086, 0.32286 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 135), 5.00191, 0.32255 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 140), 6.5013, 0.32227 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 145), 8.01458, 0.32195 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 150), 9.47638, 0.32158 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 155), 10.83935, 0.32118 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 160), 12.06302, 0.32078 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 165), 13.10525, 0.32041 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 170), 13.93012, 0.32012 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 175), 14.52657, 0.31998 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-25, 180), 14.92021, 0.32003 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -180), 13.27884, 0.31381 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -175), 13.45385, 0.31433 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -170), 13.55177, 0.31506 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -165), 13.62625, 0.31596 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -160), 13.69637, 0.31699 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -155), 13.75001, 0.31813 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -150), 13.76019, 0.31936 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -145), 13.70173, 0.32068 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -140), 13.56076, 0.32208 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -135), 13.33885, 0.32358 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -130), 13.05607, 0.3252 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -125), 12.7513, 0.32695 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -120), 12.47207, 0.32883 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -115), 12.24761, 0.3308 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -110), 12.05177, 0.33289 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -105), 11.77551, 0.33513 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -100), 11.23054, 0.33767 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -95), 10.1894, 0.3407 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -90), 8.44708, 0.34443 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -85), 5.88196, 0.34891 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -80), 2.50102, 0.35404 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -75), -1.53996, 0.35951 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -70), -5.95239, 0.36504 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -65), -10.3738, 0.37049 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -60), -14.45342, 0.37607 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -55), -17.92738, 0.38227 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -50), -20.6543, 0.38961 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -45), -22.61024, 0.39849 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -40), -23.85857, 0.409 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -35), -24.50696, 0.42092 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -30), -24.65801, 0.43379 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -25), -24.36534, 0.44712 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -20), -23.61592, 0.46053 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -15), -22.35504, 0.4737 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -10), -20.54827, 0.48613 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, -5), -18.25294, 0.49688 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 0), -15.66372, 0.50444 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 5), -13.10442, 0.50709 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 10), -10.95949, 0.50353 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 15), -9.57, 0.49346 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 20), -9.13831, 0.47774 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 25), -9.67621, 0.45817 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 30), -11.00656, 0.4369 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 35), -12.81178, 0.41596 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 40), -14.71311, 0.39687 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 45), -16.35758, 0.38052 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 50), -17.487, 0.36716 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 55), -17.97165, 0.35657 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 60), -17.80402, 0.34833 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 65), -17.05869, 0.34191 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 70), -15.83504, 0.33689 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 75), -14.21083, 0.33291 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 80), -12.23518, 0.32966 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 85), -9.96724, 0.32686 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 90), -7.53079, 0.32425 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 95), -5.13262, 0.32171 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 100), -3.01115, 0.31925 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 105), -1.33851, 0.31704 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 110), -0.14258, 0.31526 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 115), 0.70057, 0.31402 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 120), 1.40439, 0.31331 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 125), 2.17793, 0.31305 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 130), 3.14717, 0.31306 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 135), 4.32594, 0.31319 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 140), 5.64375, 0.31332 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 145), 7.00404, 0.31338 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 150), 8.33047, 0.31339 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 155), 9.57567, 0.31336 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 160), 10.70243, 0.31331 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 165), 11.66698, 0.31328 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 170), 12.42505, 0.31332 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 175), 12.95545, 0.31348 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-20, 180), 13.27884, 0.31381 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -180), 11.99278, 0.30967 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -175), 12.09229, 0.31036 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -170), 12.11547, 0.31123 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -165), 12.12879, 0.31227 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -160), 12.16086, 0.31346 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -155), 12.20243, 0.31475 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -150), 12.22244, 0.31612 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -145), 12.18659, 0.31756 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -140), 12.07011, 0.31905 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -135), 11.86518, 0.32059 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -130), 11.58682, 0.32219 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -125), 11.27425, 0.32385 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -120), 10.97869, 0.32553 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -115), 10.73231, 0.32722 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -110), 10.50736, 0.32896 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -105), 10.18921, 0.33082 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -100), 9.58513, 0.33296 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -95), 8.47068, 0.33557 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -90), 6.65497, 0.33878 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -85), 4.04114, 0.34259 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -80), 0.66646, 0.34677 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -75), -3.28737, 0.351 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -70), -7.52265, 0.35499 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -65), -11.69074, 0.35871 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -60), -15.47043, 0.36242 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -55), -18.62593, 0.36659 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -50), -21.02775, 0.37174 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -45), -22.64337, 0.37817 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -40), -23.51349, 0.38591 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -35), -23.72202, 0.39461 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -30), -23.36227, 0.40367 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -25), -22.50583, 0.4124 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -20), -21.18883, 0.42022 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -15), -19.4274, 0.42677 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -10), -17.25594, 0.43187 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, -5), -14.76481, 0.43532 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 0), -12.11586, 0.43683 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 5), -9.53146, 0.43598 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 10), -7.26744, 0.43236 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 15), -5.57856, 0.42576 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 20), -4.67413, 0.41638 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 25), -4.66205, 0.40485 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 30), -5.49747, 0.39209 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 35), -6.96722, 0.37908 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 40), -8.73213, 0.36667 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 45), -10.41871, 0.35549 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 50), -11.72099, 0.34587 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 55), -12.46734, 0.33788 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 60), -12.6284, 0.33137 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 65), -12.27137, 0.32613 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 70), -11.48951, 0.32195 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 75), -10.34701, 0.31862 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 80), -8.87247, 0.31597 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 85), -7.10361, 0.31382 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 90), -5.14818, 0.31197 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 95), -3.20586, 0.3103 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 100), -1.51713, 0.3088 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 105), -0.26068, 0.30753 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 110), 0.53342, 0.30661 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 115), 0.99826, 0.30608 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 120), 1.36645, 0.30594 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 125), 1.86595, 0.30611 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 130), 2.62953, 0.30647 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 135), 3.66144, 0.3069 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 140), 4.87093, 0.3073 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 145), 6.14202, 0.30765 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 150), 7.38832, 0.30792 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 155), 8.56234, 0.30815 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 160), 9.62981, 0.30836 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 165), 10.54568, 0.30856 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 170), 11.25788, 0.30881 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 175), 11.73521, 0.30916 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-15, 180), 11.99278, 0.30967 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -180), 11.02147, 0.30745 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -175), 11.05251, 0.30825 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -170), 10.9991, 0.30921 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -165), 10.94224, 0.31033 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -160), 10.92336, 0.31158 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -155), 10.93967, 0.31292 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -150), 10.95872, 0.31432 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -145), 10.93874, 0.31575 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -140), 10.84522, 0.3172 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -135), 10.66253, 0.31866 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -130), 10.40205, 0.32012 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -125), 10.10277, 0.32157 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -120), 9.81549, 0.323 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -115), 9.56779, 0.32439 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -110), 9.32277, 0.3258 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -105), 8.95695, 0.32733 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -100), 8.27653, 0.32917 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -95), 7.06923, 0.33145 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -90), 5.16963, 0.33424 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -85), 2.51453, 0.33744 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -80), -0.8262, 0.34077 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -75), -4.65183, 0.34387 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -70), -8.66868, 0.34652 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -65), -12.55342, 0.34871 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -60), -16.01651, 0.35074 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -55), -18.84281, 0.35307 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -50), -20.90391, 0.35612 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -45), -22.15217, 0.36016 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -40), -22.60736, 0.36515 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -35), -22.34013, 0.37075 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -30), -21.45209, 0.37635 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -25), -20.05439, 0.38125 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -20), -18.25268, 0.38492 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -15), -16.14456, 0.38707 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -10), -13.82682, 0.38777 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, -5), -11.40117, 0.38727 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 0), -8.97402, 0.3858 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 5), -6.65739, 0.38349 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 10), -4.57953, 0.38028 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 15), -2.89859, 0.37601 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 20), -1.79514, 0.37061 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 25), -1.42443, 0.36419 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 30), -1.84073, 0.35705 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 35), -2.93829, 0.34957 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 40), -4.45374, 0.34214 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 45), -6.04054, 0.3351 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 50), -7.38099, 0.32872 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 55), -8.2771, 0.32313 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 60), -8.67664, 0.31836 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 65), -8.63112, 0.31437 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 70), -8.21976, 0.3111 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 75), -7.48939, 0.30848 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 80), -6.44767, 0.30641 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 85), -5.11094, 0.30481 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 90), -3.56848, 0.30354 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 95), -2.00763, 0.30252 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 100), -0.66546, 0.30172 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 105), 0.2744, 0.30114 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 110), 0.77529, 0.30083 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 115), 0.97087, 0.30081 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 120), 1.10362, 0.30106 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 125), 1.41396, 0.30153 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 130), 2.04012, 0.30214 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 135), 2.98036, 0.3028 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 140), 4.12994, 0.30344 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 145), 5.35844, 0.30403 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 150), 6.57104, 0.30455 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 155), 7.7186, 0.30502 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 160), 8.76763, 0.30545 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 165), 9.67032, 0.30586 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 170), 10.36635, 0.3063 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 175), 10.81392, 0.30681 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-10, 180), 11.02147, 0.30745 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -180), 10.31438, 0.30701 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -175), 10.29803, 0.30792 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -170), 10.18029, 0.30895 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -165), 10.05783, 0.3101 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -160), 9.9879, 0.31134 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -155), 9.9774, 0.31264 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -150), 9.9945, 0.31396 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -145), 9.99033, 0.31527 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -140), 9.9205, 0.31656 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -135), 9.7619, 0.31781 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -130), 9.5231, 0.31902 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -125), 9.24257, 0.32018 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -120), 8.96792, 0.32129 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -115), 8.71762, 0.32237 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -110), 8.44214, 0.32349 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -105), 8.00976, 0.32479 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -100), 7.23114, 0.32641 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -95), 5.91443, 0.32847 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -90), 3.92735, 0.33094 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -85), 1.24401, 0.33366 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -80), -2.03645, 0.33629 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -75), -5.70401, 0.33849 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -70), -9.47987, 0.34005 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -65), -13.07041, 0.34101 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -60), -16.21325, 0.34168 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -55), -18.70532, 0.34244 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -50), -20.41487, 0.34368 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -45), -21.28389, 0.34561 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -40), -21.32495, 0.34819 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -35), -20.61308, 0.35114 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -30), -19.27226, 0.35397 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -25), -17.45715, 0.35612 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -20), -15.33324, 0.3572 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -15), -13.05791, 0.35706 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -10), -10.76311, 0.35586 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, -5), -8.5412, 0.35393 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 0), -6.44119, 0.35164 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 5), -4.48453, 0.34921 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 10), -2.70152, 0.34665 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 15), -1.17193, 0.34387 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 20), -0.03919, 0.34073 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 25), 0.52722, 0.33716 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 30), 0.41354, 0.33323 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 35), -0.35679, 0.32904 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 40), -1.59645, 0.32473 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 45), -3.00657, 0.32044 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 50), -4.28409, 0.31635 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 55), -5.22371, 0.31257 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 60), -5.7585, 0.30919 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 65), -5.92569, 0.30625 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 70), -5.7909, 0.30376 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 75), -5.38581, 0.30172 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 80), -4.70056, 0.30011 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 85), -3.73214, 0.2989 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 90), -2.54969, 0.29804 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 95), -1.32226, 0.29745 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 100), -0.27516, 0.2971 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 105), 0.40946, 0.29699 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 110), 0.68894, 0.2971 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 115), 0.69129, 0.29743 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 120), 0.6592, 0.29796 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 125), 0.83743, 0.29866 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 130), 1.36738, 0.29947 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 135), 2.24588, 0.30033 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 140), 3.36235, 0.3012 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 145), 4.57881, 0.30203 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 150), 5.79425, 0.30282 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 155), 6.95605, 0.30355 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 160), 8.02824, 0.30424 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 165), 8.95807, 0.30489 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 170), 9.67582, 0.30554 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 175), 10.128, 0.30623 + 1);
EXPECT_NEAR(get_mag_declination_degrees(-5, 180), 10.31438, 0.30701 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -180), 9.80615, 0.30821 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -175), 9.77929, 0.30924 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -170), 9.62583, 0.31034 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -165), 9.45818, 0.3115 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -160), 9.35168, 0.31269 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -155), 9.32594, 0.31389 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -150), 9.35147, 0.31505 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -145), 9.37227, 0.31614 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -140), 9.33286, 0.31716 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -135), 9.20148, 0.3181 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -130), 8.98304, 0.31897 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -125), 8.71441, 0.31977 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -120), 8.43829, 0.32053 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -115), 8.16269, 0.3213 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -110), 7.82652, 0.32218 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -105), 7.29425, 0.3233 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -100), 6.38769, 0.32478 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -95), 4.94214, 0.32669 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -90), 2.86257, 0.32894 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -85), 0.15983, 0.33128 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -80), -3.04368, 0.33337 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -75), -6.53744, 0.33488 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -70), -10.06337, 0.33563 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -65), -13.35647, 0.33568 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -60), -16.1758, 0.33529 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -55), -18.32688, 0.33482 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -50), -19.67915, 0.33461 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -45), -20.17741, 0.33484 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -40), -19.84424, 0.33552 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -35), -18.77244, 0.33645 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -30), -17.1099, 0.33729 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -25), -15.04004, 0.33769 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -20), -12.75967, 0.33739 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -15), -10.45351, 0.3363 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -10), -8.26548, 0.33457 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, -5), -6.27447, 0.33247 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 0), -4.48855, 0.33029 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 5), -2.86875, 0.3282 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 10), -1.37915, 0.32625 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 15), -0.04205, 0.32438 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 20), 1.03483, 0.32248 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 25), 1.68602, 0.32044 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 30), 1.76792, 0.31825 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 35), 1.249, 0.31589 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 40), 0.25496, 0.31339 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 45), -0.96438, 0.31078 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 50), -2.13198, 0.30816 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 55), -3.04769, 0.30562 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 60), -3.63842, 0.30324 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 65), -3.93234, 0.30107 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 70), -3.9864, 0.29917 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 75), -3.82347, 0.29757 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 80), -3.42272, 0.29629 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 85), -2.76622, 0.29535 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 90), -1.90329, 0.29472 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 95), -0.98, 0.29439 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 100), -0.2016, 0.29433 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 105), 0.25964, 0.2945 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 110), 0.35881, 0.29489 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 115), 0.21481, 0.29546 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 120), 0.06171, 0.29618 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 125), 0.14015, 0.29704 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 130), 0.592, 0.29802 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 135), 1.4173, 0.29908 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 140), 2.50854, 0.30019 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 145), 3.72792, 0.3013 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 150), 4.97114, 0.3024 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 155), 6.18057, 0.30345 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 160), 7.31462, 0.30445 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 165), 8.31342, 0.30539 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 170), 9.09685, 0.30631 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 175), 9.59834, 0.30724 + 1);
EXPECT_NEAR(get_mag_declination_degrees(0, 180), 9.80615, 0.30821 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -180), 9.41571, 0.31084 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -175), 9.43121, 0.31205 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -170), 9.28843, 0.31324 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -165), 9.11327, 0.31441 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -160), 8.99986, 0.31552 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -155), 8.98274, 0.31656 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -150), 9.0368, 0.3175 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -145), 9.09946, 0.31831 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -140), 9.10319, 0.319 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -135), 9.00568, 0.31957 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -130), 8.80575, 0.32006 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -125), 8.53629, 0.32048 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -120), 8.23377, 0.32089 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -115), 7.89686, 0.32137 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -110), 7.45724, 0.32203 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -105), 6.78211, 0.32301 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -100), 5.71118, 0.32439 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -95), 4.11148, 0.32617 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -90), 1.92652, 0.32822 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -85), -0.79884, 0.33025 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -80), -3.92425, 0.33191 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -75), -7.24321, 0.3329 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -70), -10.5185, 0.33306 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -65), -13.51017, 0.33245 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -60), -15.99646, 0.3313 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -55), -17.7959, 0.32992 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -50), -18.79115, 0.32862 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -45), -18.94546, 0.32759 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -40), -18.30397, 0.32688 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -35), -16.98028, 0.3264 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -30), -15.1358, 0.32595 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -25), -12.95959, 0.32531 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -20), -10.65016, 0.32434 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -15), -8.39352, 0.32297 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -10), -6.33341, 0.32128 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, -5), -4.54136, 0.31943 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 0), -3.00572, 0.3176 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 5), -1.65497, 0.31592 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 10), -0.41256, 0.31444 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 15), 0.73998, 0.31312 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 20), 1.72674, 0.3119 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 25), 2.39597, 0.31069 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 30), 2.59339, 0.30944 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 35), 2.25382, 0.3081 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 40), 1.45695, 0.30664 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 45), 0.40962, 0.30504 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 50), -0.63906, 0.30333 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 55), -1.49937, 0.30158 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 60), -2.09688, 0.29987 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 65), -2.45491, 0.29824 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 70), -2.62719, 0.29676 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 75), -2.63524, 0.29547 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 80), -2.45556, 0.29441 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 85), -2.06166, 0.29362 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 90), -1.4855, 0.29312 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 95), -0.84784, 0.29292 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 100), -0.32742, 0.293 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 105), -0.07857, 0.29334 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 110), -0.14321, 0.29388 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 115), -0.41249, 0.29459 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 120), -0.66737, 0.29544 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 125), -0.67843, 0.29642 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 130), -0.30573, 0.29754 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 135), 0.45804, 0.29879 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 140), 1.51643, 0.30014 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 145), 2.73919, 0.30156 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 150), 4.02211, 0.303 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 155), 5.30179, 0.30442 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 160), 6.52883, 0.3058 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 165), 7.63492, 0.30712 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 170), 8.52939, 0.30838 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 175), 9.13175, 0.30962 + 1);
EXPECT_NEAR(get_mag_declination_degrees(5, 180), 9.41571, 0.31084 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -180), 9.05049, 0.31461 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -175), 9.17429, 0.31605 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -170), 9.10566, 0.31738 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -165), 8.97836, 0.31856 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -160), 8.90275, 0.31959 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -155), 8.92878, 0.32044 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -150), 9.03785, 0.32112 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -145), 9.16299, 0.32163 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -140), 9.22555, 0.32197 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -135), 9.17143, 0.32218 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -130), 8.99035, 0.3223 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -125), 8.70787, 0.32238 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -120), 8.35275, 0.32248 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -115), 7.91647, 0.32272 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -110), 7.32891, 0.32321 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -105), 6.4668, 0.32407 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -100), 5.19307, 0.32535 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -95), 3.40898, 0.327 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -90), 1.09577, 0.32884 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -85), -1.67046, 0.33055 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -80), -4.7338, 0.33182 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -75), -7.89078, 0.33238 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -70), -10.92072, 0.3321 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -65), -13.60526, 0.33101 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -60), -15.7449, 0.32932 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -55), -17.18235, 0.32731 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -50), -17.82873, 0.32525 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -45), -17.67835, 0.32335 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -40), -16.80314, 0.3217 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -35), -15.33105, 0.32029 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -30), -13.42144, 0.31905 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -25), -11.24832, 0.31784 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -20), -8.99118, 0.31657 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -15), -6.8222, 0.31518 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -10), -4.88, 0.31368 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, -5), -3.23619, 0.31214 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 0), -1.87681, 0.31067 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 5), -0.71935, 0.30934 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 10), 0.33381, 0.30819 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 15), 1.32899, 0.30722 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 20), 2.21809, 0.3064 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 25), 2.86843, 0.30566 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 30), 3.12764, 0.30495 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 35), 2.91208, 0.3042 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 40), 2.26798, 0.30335 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 45), 1.36603, 0.30234 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 50), 0.42867, 0.30119 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 55), -0.36621, 0.29994 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 60), -0.94458, 0.29865 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 65), -1.32662, 0.29737 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 70), -1.56616, 0.29616 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 75), -1.68952, 0.29506 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 80), -1.67839, 0.29413 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 85), -1.50499, 0.29341 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 90), -1.18809, 0.29296 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 95), -0.82322, 0.2928 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 100), -0.55878, 0.29293 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 105), -0.52508, 0.29332 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 110), -0.75577, 0.29392 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 115), -1.15075, 0.29469 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 120), -1.50916, 0.2956 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 125), -1.61712, 0.29666 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 130), -1.33826, 0.29789 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 135), -0.65522, 0.29931 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 140), 0.35237, 0.3009 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 145), 1.56747, 0.30261 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 150), 2.88911, 0.3044 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 155), 4.24839, 0.30622 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 160), 5.58723, 0.30802 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 165), 6.82907, 0.30977 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 170), 7.87415, 0.31145 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 175), 8.62894, 0.31307 + 1);
EXPECT_NEAR(get_mag_declination_degrees(10, 180), 9.05049, 0.31461 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -180), 8.61791, 0.3191 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -175), 8.92164, 0.32084 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -170), 9.00313, 0.32234 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -165), 8.99451, 0.32357 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -160), 9.01517, 0.32451 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -155), 9.12761, 0.32519 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -150), 9.32129, 0.32561 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -145), 9.52893, 0.32582 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -140), 9.66454, 0.32586 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -135), 9.66336, 0.32578 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -130), 9.50391, 0.32562 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -125), 9.20092, 0.32546 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -120), 8.77359, 0.32537 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -115), 8.20785, 0.32546 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -110), 7.43648, 0.32586 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -105), 6.35085, 0.32665 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -100), 4.84035, 0.32784 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -95), 2.84069, 0.32934 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -90), 0.36906, 0.33091 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -85), -2.46892, 0.33227 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -80), -5.50058, 0.33312 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -75), -8.52028, 0.33324 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -70), -11.31752, 0.33254 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -65), -13.69393, 0.33107 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -60), -15.47918, 0.32901 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -55), -16.55358, 0.32659 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -50), -16.86991, 0.32406 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -45), -16.45997, 0.32162 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -40), -15.41945, 0.3194 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -35), -13.88004, 0.31744 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -30), -11.98532, 0.31573 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -25), -9.88138, 0.31422 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -20), -7.71858, 0.31283 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -15), -5.64856, 0.31151 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -10), -3.80281, 0.31021 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, -5), -2.25748, 0.30895 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 0), -1.00739, 0.30777 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 5), 0.02579, 0.30671 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 10), 0.94595, 0.30581 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 15), 1.81668, 0.30509 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 20), 2.61394, 0.30452 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 25), 3.22745, 0.30408 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 30), 3.51569, 0.3037 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 35), 3.38774, 0.30332 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 40), 2.8658, 0.30284 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 45), 2.08948, 0.30221 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 50), 1.25537, 0.30139 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 55), 0.52846, 0.30042 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 60), -0.0183, 0.29937 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 65), -0.40186, 0.29828 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 70), -0.6768, 0.29722 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 75), -0.87737, 0.29622 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 80), -0.9962, 0.29533 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 85), -1.01071, 0.29463 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 90), -0.93144, 0.29416 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 95), -0.83081, 0.29397 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 100), -0.82575, 0.29408 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 105), -1.01883, 0.29445 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 110), -1.43097, 0.29504 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 115), -1.96793, 0.2958 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 120), -2.44662, 0.29672 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 125), -2.66993, 0.2978 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 130), -2.50575, 0.29909 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 135), -1.92571, 0.30061 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 140), -0.99015, 0.30238 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 145), 0.20009, 0.30434 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 150), 1.54947, 0.30644 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 155), 2.98443, 0.30863 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 160), 4.43869, 0.31084 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 165), 5.82921, 0.31302 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 170), 7.05062, 0.31515 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 175), 7.99984, 0.31719 + 1);
EXPECT_NEAR(get_mag_declination_degrees(15, 180), 8.61791, 0.3191 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -180), 8.04408, 0.32387 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -175), 8.59377, 0.32591 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -170), 8.9042, 0.32761 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -165), 9.09367, 0.32892 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -160), 9.27867, 0.32982 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -155), 9.52704, 0.33034 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -150), 9.83584, 0.33055 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -145), 10.1425, 0.33054 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -140), 10.36026, 0.33038 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -135), 10.41799, 0.33013 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -130), 10.28326, 0.32986 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -125), 9.95764, 0.32964 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -120), 9.44877, 0.32953 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -115), 8.73744, 0.32965 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -110), 7.76169, 0.33009 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -105), 6.42994, 0.33091 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -100), 4.65855, 0.33207 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -95), 2.41621, 0.33342 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -90), -0.24602, 0.3347 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -85), -3.19315, 0.33564 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -80), -6.23202, 0.33598 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -75), -9.14813, 0.33558 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -70), -11.73569, 0.33442 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -65), -13.81682, 0.33257 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -60), -15.25776, 0.33021 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -55), -15.98652, 0.32754 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -50), -16.0044, 0.32476 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -45), -15.38035, 0.32206 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -40), -14.22707, 0.31955 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -35), -12.6708, 0.31732 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -30), -10.83183, 0.31538 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -25), -8.82417, 0.31373 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -20), -6.76714, 0.31232 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -15), -4.79024, 0.31108 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -10), -3.01646, 0.30996 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, -5), -1.52719, 0.30894 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 0), -0.33116, 0.308 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 5), 0.63625, 0.30718 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 10), 1.47408, 0.30648 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 15), 2.25444, 0.30595 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 20), 2.97354, 0.30558 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 25), 3.54565, 0.30535 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 30), 3.84707, 0.30522 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 35), 3.7884, 0.30509 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 40), 3.37506, 0.30487 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 45), 2.71855, 0.30446 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 50), 1.98861, 0.30382 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 55), 1.33457, 0.30299 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 60), 0.82674, 0.30203 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 65), 0.45188, 0.30101 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 70), 0.15608, 0.29997 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 75), -0.1026, 0.29898 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 80), -0.33006, 0.29808 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 85), -0.51329, 0.29733 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 90), -0.65921, 0.29681 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 95), -0.82039, 0.29655 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 100), -1.08325, 0.29658 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 105), -1.52108, 0.29688 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 110), -2.13849, 0.2974 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 115), -2.84298, 0.29809 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 120), -3.46612, 0.29894 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 125), -3.82616, 0.29998 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 130), -3.79543, 0.30124 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 135), -3.33561, 0.30279 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 140), -2.48875, 0.30463 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 145), -1.33974, 0.30674 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 150), 0.02185, 0.30905 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 155), 1.5187, 0.3115 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 160), 3.07774, 0.31404 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 165), 4.61232, 0.3166 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 170), 6.01652, 0.31914 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 175), 7.184, 0.32159 + 1);
EXPECT_NEAR(get_mag_declination_degrees(20, 180), 8.04408, 0.32387 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -180), 7.29469, 0.32852 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -175), 8.13861, 0.33082 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -170), 8.74588, 0.33271 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -165), 9.20908, 0.33411 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -160), 9.62733, 0.33501 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -155), 10.06291, 0.33546 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -150), 10.51708, 0.33557 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -145), 10.93577, 0.33546 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -140), 11.23902, 0.33526 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -135), 11.35599, 0.33504 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -130), 11.24655, 0.33488 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -125), 10.89912, 0.33484 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -120), 10.30853, 0.33497 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -115), 9.4496, 0.33536 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -110), 8.26533, 0.33607 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -105), 6.68039, 0.33711 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -100), 4.63611, 0.33837 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -95), 2.13137, 0.33964 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -90), -0.75062, 0.34065 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -85), -3.84425, 0.34111 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -80), -6.93132, 0.34084 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -75), -9.78301, 0.33979 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -70), -12.19565, 0.33804 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -65), -14.01388, 0.33573 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -60), -15.14516, 0.33306 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -55), -15.56835, 0.33021 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -50), -15.33179, 0.32734 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -45), -14.53582, 0.32456 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -40), -13.30307, 0.32198 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -35), -11.7497, 0.31967 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -30), -9.97245, 0.31768 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -25), -8.05635, 0.316 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -20), -6.09314, 0.31462 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -15), -4.19146, 0.31349 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -10), -2.46425, 0.31254 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, -5), -0.996, 0.31173 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 0), 0.19027, 0.31102 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 5), 1.14085, 0.31042 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 10), 1.94223, 0.30994 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 15), 2.66766, 0.30959 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 20), 3.32973, 0.3094 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 25), 3.86824, 0.30937 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 30), 4.18255, 0.30944 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 35), 4.19207, 0.30951 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 40), 3.89111, 0.30946 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 45), 3.36462, 0.30918 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 50), 2.7525, 0.30862 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 55), 2.1836, 0.30781 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 60), 1.72211, 0.30683 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 65), 1.35825, 0.30575 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 70), 1.04123, 0.30466 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 75), 0.72432, 0.3036 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 80), 0.38964, 0.30262 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 85), 0.03939, 0.3018 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 90), -0.33285, 0.30118 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 95), -0.76313, 0.30083 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 100), -1.30946, 0.30075 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 105), -2.01555, 0.30094 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 110), -2.86669, 0.30133 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 115), -3.76732, 0.30188 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 120), -4.55895, 0.30259 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 125), -5.0724, 0.30347 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 130), -5.1848, 0.30461 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 135), -4.85091, 0.30605 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 140), -4.09858, 0.30783 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 145), -2.99988, 0.30991 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 150), -1.63968, 0.31227 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 155), -0.09848, 0.31484 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 160), 1.54565, 0.31755 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 165), 3.20567, 0.32035 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 170), 4.78069, 0.32317 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 175), 6.16873, 0.32593 + 1);
EXPECT_NEAR(get_mag_declination_degrees(25, 180), 7.29469, 0.32852 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -180), 6.38883, 0.33285 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -175), 7.54889, 0.3353 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -170), 8.49587, 0.33732 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -165), 9.28879, 0.33882 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -160), 9.99693, 0.33979 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -155), 10.66535, 0.34029 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -150), 11.29344, 0.34046 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -145), 11.83644, 0.34047 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -140), 12.22653, 0.34045 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -135), 12.39972, 0.34053 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -130), 12.31318, 0.34076 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -125), 11.9447, 0.3412 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -120), 11.27667, 0.34189 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -115), 10.27687, 0.34288 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -110), 8.8911, 0.34418 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -105), 7.05704, 0.34571 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -100), 4.73709, 0.34732 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -95), 1.95704, 0.34869 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -90), -1.16886, 0.3495 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -85), -4.44227, 0.34945 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -80), -7.61612, 0.34846 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -75), -10.44468, 0.34658 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -70), -12.72701, 0.34405 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -65), -14.33269, 0.34113 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -60), -15.21091, 0.33805 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -55), -15.38724, 0.33498 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -50), -14.94885, 0.33204 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -45), -14.0184, 0.32928 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -40), -12.72265, 0.32675 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -35), -11.16768, 0.32451 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -30), -9.43204, 0.32258 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -25), -7.57964, 0.32097 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -20), -5.68134, 0.31969 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -15), -3.82777, 0.31869 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -10), -2.1204, 0.31792 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, -5), -0.64297, 0.31734 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 0), 0.57019, 0.31688 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 5), 1.54646, 0.31654 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 10), 2.35546, 0.3163 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 15), 3.06576, 0.31617 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 20), 3.70209, 0.3162 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 25), 4.22919, 0.31635 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 30), 4.57273, 0.3166 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 35), 4.6663, 0.31683 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 40), 4.49757, 0.31689 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 45), 4.12564, 0.31668 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 50), 3.65677, 0.31612 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 55), 3.1931, 0.31525 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 60), 2.78753, 0.31415 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 65), 2.43219, 0.31294 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 70), 2.08161, 0.31171 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 75), 1.68874, 0.31053 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 80), 1.22778, 0.30944 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 85), 0.69205, 0.30852 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 90), 0.07495, 0.3078 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 95), -0.6453, 0.30733 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 100), -1.50022, 0.30713 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 105), -2.50383, 0.30715 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 110), -3.61929, 0.30735 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 115), -4.74291, 0.30767 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 120), -5.72103, 0.30811 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 125), -6.39444, 0.30872 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 130), -6.64634, 0.30956 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 135), -6.42941, 0.31073 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 140), -5.7635, 0.31225 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 145), -4.71306, 0.31413 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 150), -3.36059, 0.31633 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 155), -1.78955, 0.3188 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 160), -0.08112, 0.32148 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 165), 1.6802, 0.32432 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 170), 3.40303, 0.32723 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 175), 4.99646, 0.33011 + 1);
EXPECT_NEAR(get_mag_declination_degrees(30, 180), 6.38883, 0.33285 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -180), 5.39723, 0.33705 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -175), 6.86698, 0.33949 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -170), 8.1624, 0.34156 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -165), 9.30776, 0.34315 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -160), 10.33653, 0.34428 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -155), 11.26858, 0.345 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -150), 12.09486, 0.34548 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -145), 12.77691, 0.34587 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -140), 13.25977, 0.34635 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -135), 13.48949, 0.34704 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -130), 13.4246, 0.34801 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -125), 13.03567, 0.3493 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -120), 12.29446, 0.35096 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -115), 11.16134, 0.35296 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -110), 9.58239, 0.35527 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -105), 7.50429, 0.35772 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -100), 4.90637, 0.36002 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -95), 1.83864, 0.36175 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -90), -1.55347, 0.36248 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -85), -5.03651, 0.36192 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -80), -8.33223, 0.36004 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -75), -11.1785, 0.3571 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -70), -13.38017, 0.35353 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -65), -14.8336, 0.34974 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -60), -15.52666, 0.34604 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -55), -15.52297, 0.3426 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -50), -14.93697, 0.33949 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -45), -13.90388, 0.33671 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -40), -12.5504, 0.33427 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -35), -10.97516, 0.33214 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -30), -9.2464, 0.33034 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -25), -7.41661, 0.32888 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -20), -5.54378, 0.32775 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -15), -3.70431, 0.32694 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -10), -1.98737, 0.3264 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, -5), -0.47172, 0.32609 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 0), 0.80186, 0.32594 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 5), 1.84436, 0.32591 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 10), 2.70743, 0.32597 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 15), 3.45088, 0.32613 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 20), 4.10702, 0.32639 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 25), 4.66282, 0.32676 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 30), 5.07058, 0.32717 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 35), 5.28073, 0.32751 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 40), 5.27732, 0.32764 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 45), 5.0942, 0.32743 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 50), 4.80099, 0.32682 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 55), 4.46732, 0.32585 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 60), 4.12909, 0.32461 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 65), 3.77732, 0.32324 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 70), 3.37282, 0.32186 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 75), 2.8724, 0.32055 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 80), 2.24786, 0.31936 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 85), 1.48799, 0.31835 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 90), 0.58802, 0.31754 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 95), -0.45957, 0.31697 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 100), -1.66024, 0.3166 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 105), -2.99733, 0.3164 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 110), -4.40856, 0.31629 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 115), -5.77734, 0.31623 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 120), -6.95066, 0.31622 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 125), -7.778, 0.31633 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 130), -8.15159, 0.31667 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 135), -8.02827, 0.31733 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 140), -7.42726, 0.31837 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 145), -6.4111, 0.31981 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 150), -5.06258, 0.32162 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 155), -3.46769, 0.32377 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 160), -1.7089, 0.32618 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 165), 0.13388, 0.32881 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 170), 1.98106, 0.33157 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 175), 3.75643, 0.33436 + 1);
EXPECT_NEAR(get_mag_declination_degrees(35, 180), 5.39723, 0.33705 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -180), 4.42072, 0.34175 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -175), 6.17051, 0.34405 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -170), 7.78941, 0.3461 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -165), 9.27238, 0.34783 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -160), 10.6196, 0.34923 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -155), 11.82443, 0.3504 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -150), 12.86508, 0.35148 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -145), 13.70405, 0.35262 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -140), 14.29501, 0.35399 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -135), 14.59203, 0.3557 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -130), 14.55539, 0.35786 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -125), 14.15025, 0.3605 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -120), 13.33931, 0.36364 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -115), 12.07545, 0.36722 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -110), 10.30303, 0.37112 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -105), 7.97464, 0.37505 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -100), 5.08403, 0.37855 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -95), 1.70518, 0.381 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -90), -1.98285, 0.3818 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -85), -5.7081, 0.38063 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -80), -9.16019, 0.3776 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -75), -12.06357, 0.37322 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -70), -14.23329, 0.36819 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -65), -15.59389, 0.36311 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -60), -16.16727, 0.35841 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -55), -16.04543, 0.35427 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -50), -15.35911, 0.35075 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -45), -14.24793, 0.34779 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -40), -12.8358, 0.34531 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -35), -11.217, 0.34325 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -30), -9.45679, 0.34159 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -25), -7.60491, 0.3403 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -20), -5.71375, 0.33938 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -15), -3.8496, 0.33881 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -10), -2.08936, 0.33856 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, -5), -0.50336, 0.33858 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 0), 0.86635, 0.3388 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 5), 2.01892, 0.33915 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 10), 2.98946, 0.33959 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 15), 3.82683, 0.34009 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 20), 4.5661, 0.34064 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 25), 5.21132, 0.34121 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 30), 5.73794, 0.34176 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 35), 6.11245, 0.34217 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 40), 6.31639, 0.34232 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 45), 6.35972, 0.34209 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 50), 6.27488, 0.34144 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 55), 6.0959, 0.34041 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 60), 5.83688, 0.33911 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 65), 5.48362, 0.33768 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 70), 5.00193, 0.33626 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 75), 4.35472, 0.33494 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 80), 3.51622, 0.33376 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 85), 2.4762, 0.33275 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 90), 1.23614, 0.33193 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 95), -0.19428, 0.33125 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 100), -1.79208, 0.33067 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 105), -3.5068, 0.33011 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 110), -5.24649, 0.3295 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 115), -6.87744, 0.32878 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 120), -8.24492, 0.32801 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 125), -9.20836, 0.3273 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 130), -9.67384, 0.3268 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 135), -9.60963, 0.32664 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 140), -9.04162, 0.32691 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 145), -8.03567, 0.32764 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 150), -6.67683, 0.32881 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 155), -5.05294, 0.33038 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 160), -3.24606, 0.33228 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 165), -1.33061, 0.33446 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 170), 0.62528, 0.33683 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 175), 2.55981, 0.3393 + 1);
EXPECT_NEAR(get_mag_declination_degrees(40, 180), 4.42072, 0.34175 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -180), 3.55419, 0.34825 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -175), 5.5413, 0.35035 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -170), 7.43582, 0.3524 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -165), 9.21276, 0.35435 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -160), 10.84791, 0.35622 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -155), 12.31315, 0.35811 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -150), 13.57353, 0.36014 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -145), 14.58759, 0.36245 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -140), 15.31059, 0.3652 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -135), 15.69843, 0.36853 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -130), 15.70914, 0.37251 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -125), 15.30061, 0.37721 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -120), 14.42543, 0.38262 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -115), 13.02756, 0.38865 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -110), 11.04734, 0.39504 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -105), 8.44124, 0.40132 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -100), 5.21761, 0.40674 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -95), 1.47842, 0.41036 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -90), -2.55649, 0.41133 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -85), -6.57016, 0.40929 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -80), -10.21868, 0.40455 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -75), -13.21742, 0.39801 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -70), -15.39738, 0.39076 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -65), -16.71323, 0.38369 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -60), -17.21724, 0.37734 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -55), -17.02226, 0.37196 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -50), -16.26763, 0.36755 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -45), -15.09221, 0.36402 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -40), -13.61591, 0.36124 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -35), -11.93101, 0.35907 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -30), -10.10445, 0.35743 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -25), -8.18876, 0.35627 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -20), -6.23569, 0.35555 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -15), -4.30472, 0.35525 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -10), -2.46139, 0.35532 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, -5), -0.76561, 0.35572 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 0), 0.74362, 0.35635 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 5), 2.05852, 0.35713 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 10), 3.20076, 0.35799 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 15), 4.20746, 0.35886 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 20), 5.11152, 0.3597 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 25), 5.92665, 0.36048 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 30), 6.64433, 0.36114 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 35), 7.24262, 0.36161 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 40), 7.70001, 0.36179 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 45), 8.00515, 0.36161 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 50), 8.15653, 0.36105 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 55), 8.15353, 0.36017 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 60), 7.98596, 0.35908 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 65), 7.6297, 0.35792 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 70), 7.05135, 0.3568 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 75), 6.21862, 0.35581 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 80), 5.11038, 0.35497 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 85), 3.72223, 0.35424 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 90), 2.06781, 0.35356 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 95), 0.18022, 0.35284 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 100), -1.8827, 0.35195 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 105), -4.0301, 0.35077 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 110), -6.13456, 0.34924 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 115), -8.04176, 0.34737 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 120), -9.59554, 0.34529 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 125), -10.66932, 0.34322 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 130), -11.18986, 0.34138 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 135), -11.14442, 0.33996 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 140), -10.57204, 0.33908 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 145), -9.54589, 0.33876 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 150), -8.1544, 0.33898 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 155), -6.48636, 0.33971 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 160), -4.62217, 0.34086 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 165), -2.63108, 0.34237 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 170), -0.57205, 0.34417 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 175), 1.50423, 0.34616 + 1);
EXPECT_NEAR(get_mag_declination_degrees(45, 180), 3.55419, 0.34825 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -180), 2.85191, 0.35866 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -175), 5.03243, 0.36062 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -170), 7.14831, 0.36278 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -165), 9.16436, 0.36514 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -160), 11.04282, 0.36776 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -155), 12.74232, 0.37072 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -150), 14.21775, 0.37416 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -145), 15.42112, 0.37821 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -140), 16.30307, 0.38305 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -135), 16.81379, 0.38881 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -130), 16.90225, 0.39562 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -125), 16.51336, 0.40354 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -120), 15.58462, 0.41255 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -115), 14.04595, 0.42249 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -110), 11.82878, 0.43292 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -105), 8.8907, 0.44301 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -100), 5.25703, 0.45153 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -95), 1.06753, 0.45697 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -90), -3.40199, 0.45806 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -85), -7.77608, 0.4544 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -80), -11.67283, 0.44675 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -75), -14.8035, 0.43666 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -70), -17.02318, 0.4258 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -65), -18.32139, 0.41545 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -60), -18.7804, 0.40634 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -55), -18.53066, 0.39875 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -50), -17.71671, 0.39265 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -45), -16.47503, 0.3879 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -40), -14.92161, 0.38427 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -35), -13.14792, 0.38157 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -30), -11.22408, 0.37966 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -25), -9.20698, 0.37842 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -20), -7.14946, 0.37778 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -15), -5.10602, 0.37766 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -10), -3.13196, 0.37801 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, -5), -1.27644, 0.37875 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 0), 0.42721, 0.37976 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 5), 1.9682, 0.38094 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 10), 3.35801, 0.38218 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 15), 4.62189, 0.38339 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 20), 5.78579, 0.38451 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 25), 6.86457, 0.3855 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 30), 7.85625, 0.38632 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 35), 8.74373, 0.38692 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 40), 9.50103, 0.38729 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 45), 10.09947, 0.38741 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 50), 10.51023, 0.38731 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 55), 10.703, 0.38708 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 60), 10.64345, 0.38682 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 65), 10.29272, 0.38664 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 70), 9.61111, 0.38662 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 75), 8.56516, 0.38677 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 80), 7.13605, 0.38701 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 85), 5.32713, 0.38719 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 90), 3.17027, 0.3871 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 95), 0.73138, 0.38648 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 100), -1.88517, 0.3851 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 105), -4.53656, 0.3828 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 110), -7.05145, 0.37957 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 115), -9.25216, 0.37562 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 120), -10.98421, 0.37127 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 125), -12.14208, 0.36692 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 130), -12.68142, 0.36294 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 135), -12.61582, 0.35957 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 140), -12.00266, 0.35695 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 145), -10.92517, 0.35511 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 150), -9.47567, 0.35401 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 155), -7.74312, 0.35358 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 160), -5.8058, 0.35374 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 165), -3.72884, 0.3544 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 170), -1.56528, 0.35549 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 175), 0.64099, 0.35693 + 1);
EXPECT_NEAR(get_mag_declination_degrees(50, 180), 2.85191, 0.35866 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -180), 2.30959, 0.3764 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -175), 4.64827, 0.37839 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -170), 6.93998, 0.38092 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -165), 9.14656, 0.38404 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -160), 11.22565, 0.38783 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -155), 13.13048, 0.39241 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -150), 14.8102, 0.39794 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -145), 16.21058, 0.4046 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -140), 17.27418, 0.41259 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -135), 17.93973, 0.42213 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -130), 18.14017, 0.4334 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -125), 17.79971, 0.44653 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -120), 16.83183, 0.46148 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -115), 15.14221, 0.47799 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -110), 12.64309, 0.49527 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -105), 9.28657, 0.51187 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -100), 5.11802, 0.52556 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -95), 0.33236, 0.53375 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -90), -4.71019, 0.53447 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -85), -9.54983, 0.52744 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -80), -13.7571, 0.51433 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -75), -17.04655, 0.49789 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -70), -19.31096, 0.48079 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -65), -20.58519, 0.46484 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -60), -20.98644, 0.45101 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -55), -20.66426, 0.43956 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -50), -19.76911, 0.43041 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -45), -18.436, 0.42329 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -40), -16.77793, 0.41789 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -35), -14.88557, 0.41392 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -30), -12.83105, 0.41113 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -25), -10.67387, 0.40933 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -20), -8.46683, 0.40838 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -15), -6.25948, 0.40815 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -10), -4.09802, 0.40852 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, -5), -2.02164, 0.40936 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 0), -0.05756, 0.41056 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 5), 1.78251, 0.41197 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 10), 3.50197, 0.41346 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 15), 5.11422, 0.41494 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 20), 6.63437, 0.41633 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 25), 8.07073, 0.41759 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 30), 9.41897, 0.41874 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 35), 10.66035, 0.41978 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 40), 11.76337, 0.42077 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 45), 12.68693, 0.42178 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 50), 13.38321, 0.42293 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 55), 13.79942, 0.42432 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 60), 13.87911, 0.42607 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 65), 13.56422, 0.42827 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 70), 12.79934, 0.4309 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 75), 11.53881, 0.43385 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 80), 9.75705, 0.43683 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 85), 7.46121, 0.43939 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 90), 4.70485, 0.44095 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 95), 1.59851, 0.4409 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 100), -1.68863, 0.43876 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 105), -4.94259, 0.43437 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 110), -7.93502, 0.42799 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 115), -10.46192, 0.42023 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 120), -12.37626, 0.41187 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 125), -13.60316, 0.40365 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 130), -14.13629, 0.39614 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 135), -14.02223, 0.38968 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 140), -13.3408, 0.3844 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 145), -12.18714, 0.3803 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 150), -10.65791, 0.3773 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 155), -8.84208, 0.37529 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 160), -6.81596, 0.37414 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 165), -4.64198, 0.37376 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 170), -2.3701, 0.37405 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 175), -0.04111, 0.37494 + 1);
EXPECT_NEAR(get_mag_declination_degrees(55, 180), 2.30959, 0.3764 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -180), 1.865, 0.40745 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -175), 4.34016, 0.40977 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -170), 6.77865, 0.41311 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -165), 9.14332, 0.41756 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -160), 11.39241, 0.42325 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -155), 13.47889, 0.43036 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -150), 15.35009, 0.43913 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -145), 16.94716, 0.44984 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -140), 18.20402, 0.46281 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -135), 19.04518, 0.47841 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -130), 19.38257, 0.49699 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -125), 19.112, 0.51881 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -120), 18.11162, 0.54393 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -115), 16.24736, 0.5719 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -110), 13.39452, 0.60135 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -105), 9.48629, 0.62951 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -100), 4.59135, 0.6521 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -95), -1.00953, 0.66429 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -90), -6.81996, 0.66284 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -85), -12.25174, 0.64814 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -80), -16.81695, 0.62406 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -75), -20.25198, 0.59577 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -70), -22.51376, 0.56751 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -65), -23.70203, 0.54188 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -60), -23.97939, 0.51996 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -55), -23.51939, 0.50192 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -50), -22.48096, 0.48746 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -45), -20.99929, 0.47613 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -40), -19.18484, 0.46741 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -35), -17.12623, 0.46087 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -30), -14.8947, 0.45611 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -25), -12.54886, 0.45285 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -20), -10.13868, 0.45081 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -15), -7.70791, 0.44979 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -10), -5.29457, 0.4496 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, -5), -2.9297, 0.45008 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 0), -0.6356, 0.45104 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 5), 1.5752, 0.45235 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 10), 3.69901, 0.45387 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 15), 5.73775, 0.45551 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 20), 7.69388, 0.45722 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 25), 9.56489, 0.459 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 30), 11.33883, 0.4609 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 35), 12.99165, 0.46301 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 40), 14.48668, 0.46549 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 45), 15.77543, 0.46852 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 50), 16.79897, 0.47228 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 55), 17.48936, 0.477 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 60), 17.77107, 0.48284 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 65), 17.5633, 0.4899 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 70), 16.78441, 0.4981 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 75), 15.36068, 0.50715 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 80), 13.24157, 0.51635 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 85), 10.42273, 0.5246 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 90), 6.97375, 0.53046 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 95), 3.06018, 0.53241 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 100), -1.05787, 0.5294 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 105), -5.06324, 0.5213 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 110), -8.64725, 0.50904 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 115), -11.5729, 0.49424 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 120), -13.70725, 0.47864 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 125), -15.01747, 0.46363 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 130), -15.54518, 0.45012 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 135), -15.37647, 0.43852 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 140), -14.61726, 0.42895 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 145), -13.37662, 0.42131 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 150), -11.75653, 0.41543 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 155), -9.84662, 0.4111 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 160), -7.72201, 0.40814 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 165), -5.44372, 0.4064 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 170), -3.06068, 0.40575 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 175), -0.61288, 0.40611 + 1);
EXPECT_NEAR(get_mag_declination_degrees(60, 180), 1.865, 0.40745 + 1);
}
TEST(GeoLookupTest, inclination) {
EXPECT_NEAR(get_mag_inclination_degrees(-50, -180), -71.61251, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -175), -70.63087, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -170), -69.66415, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -165), -68.71295, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -160), -67.77646, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -155), -66.85225, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -150), -65.93538, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -145), -65.01706, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -140), -64.08375, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -135), -63.11727, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -130), -62.09624, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -125), -60.9988, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -120), -59.80617, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -115), -58.50674, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -110), -57.10059, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -105), -55.60397, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -100), -54.05316, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -95), -52.50677, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -90), -51.04501, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -85), -49.76486, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -80), -48.7701, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -75), -48.15656, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -70), -47.99457, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -65), -48.31292, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -60), -49.08972, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -55), -50.25419, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -50), -51.69929, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -45), -53.30094, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -40), -54.93704, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -35), -56.50141, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -30), -57.91037, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -25), -59.10292, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -20), -60.03759, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -15), -60.68933, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -10), -61.04905, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -5), -61.12654, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 0), -60.95507, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 5), -60.59471, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 10), -60.13132, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 15), -59.66912, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 20), -59.31693, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 25), -59.17141, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 30), -59.30252, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 35), -59.74573, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 40), -60.50225, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 45), -61.54525, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 50), -62.82906, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 55), -64.29845, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 60), -65.89665, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 65), -67.57116, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 70), -69.27695, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 75), -70.97698, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 80), -72.64021, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 85), -74.23796, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 90), -75.73984, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 95), -77.11084, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 100), -78.31071, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 105), -79.29671, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 110), -80.03013, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 115), -80.48532, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 120), -80.65781, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 125), -80.56612, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 130), -80.24566, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 135), -79.73841, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 140), -79.08438, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 145), -78.3176, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 150), -77.46563, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 155), -76.55095, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 160), -75.59244, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 165), -74.6065, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 170), -73.6073, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 175), -72.60644, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 180), -71.61251, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -180), -68.20757, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -175), -67.22943, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -170), -66.25911, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -165), -65.29726, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -160), -64.3439, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -155), -63.3992, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -150), -62.4628, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -145), -61.53172, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -140), -60.59829, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -135), -59.64884, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -130), -58.66387, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -125), -57.6195, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -120), -56.49016, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -115), -55.25272, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -110), -53.89257, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -105), -52.41158, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -100), -50.83685, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -95), -49.2279, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -90), -47.67929, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -85), -46.31616, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -80), -45.28076, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -75), -44.70993, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -70), -44.70667, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -65), -45.31335, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -60), -46.49707, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -55), -48.15493, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -50), -50.13792, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -45), -52.28344, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -40), -54.44369, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -35), -56.50196, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -30), -58.37526, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -25), -60.00699, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -20), -61.35539, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -15), -62.38456, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -10), -63.063, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -5), -63.3707, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 0), -63.31193, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 5), -62.92768, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 10), -62.30234, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 15), -61.56016, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 20), -60.84962, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 25), -60.31783, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 30), -60.08307, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 35), -60.2159, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 40), -60.73426, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 45), -61.61071, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 50), -62.78612, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 55), -64.18443, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 60), -65.72566, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 65), -67.33549, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 70), -68.95081, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 75), -70.52062, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 80), -72.00312, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 85), -73.36071, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 90), -74.5561, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 95), -75.55241, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 100), -76.31874, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 105), -76.83873, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 110), -77.11668, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 115), -77.17616, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 120), -77.05108, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 125), -76.775, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 130), -76.37423, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 135), -75.86654, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 140), -75.26352, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 145), -74.57382, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 150), -73.80573, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 155), -72.96874, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 160), -72.07447, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 165), -71.13673, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 170), -70.17057, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 175), -69.19036, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 180), -68.20757, 0.21 + 2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -180), -64.40154, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -175), -63.41096, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -170), -62.42307, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -165), -61.43644, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -160), -60.44931, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -155), -59.46237, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -150), -58.47889, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -145), -57.5024, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -140), -56.53346, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -135), -55.56689, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -130), -54.59011, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -125), -53.5824, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -120), -52.51509, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -115), -51.35419, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -110), -50.06731, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -105), -48.63583, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -100), -47.07063, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -95), -45.4266, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -90), -43.81057, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -85), -42.37779, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -80), -41.31397, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -75), -40.80265, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -70), -40.98243, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -65), -41.90642, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -60), -43.52194, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -55), -45.68305, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -50), -48.19145, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -45), -50.846, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -40), -53.48042, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -35), -55.97963, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -30), -58.27583, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -25), -60.33092, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -20), -62.11451, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -15), -63.58703, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -10), -64.6954, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -5), -65.38349, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 0), -65.61302, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 5), -65.38609, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 10), -64.76108, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 15), -63.857, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 20), -62.8432, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 25), -61.91235, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 30), -61.24144, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 35), -60.95593, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 40), -61.11129, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 45), -61.69521, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 50), -62.64363, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 55), -63.86212, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 60), -65.2463, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 65), -66.6977, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 70), -68.13336, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 75), -69.48807, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 80), -70.71062, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 85), -71.75793, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 90), -72.59235, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 95), -73.18599, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 100), -73.53032, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 105), -73.64342, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 110), -73.56702, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 115), -73.35302, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 120), -73.04679, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 125), -72.67637, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 130), -72.25096, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 135), -71.76677, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 140), -71.21499, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 145), -70.58794, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 150), -69.88197, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 155), -69.09832, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 160), -68.24354, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 165), -67.32968, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 170), -66.3732, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 175), -65.39205, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 180), -64.40154, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -180), -60.05399, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -175), -59.03322, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -170), -58.01437, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -165), -56.99232, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -160), -55.96081, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -155), -54.91806, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -150), -53.86865, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -145), -52.82145, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -140), -51.78559, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -135), -50.76642, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -130), -49.76198, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -125), -48.75913, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -120), -47.72994, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -115), -46.6312, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -110), -45.41144, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -105), -44.02807, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -100), -42.47185, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -95), -40.7911, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -90), -39.10586, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -85), -37.60504, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -80), -36.52244, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -75), -36.09161, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -70), -36.48614, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -65), -37.76389, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -60), -39.84256, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -55), -42.52402, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -50), -45.5562, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -45), -48.70035, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -40), -51.77599, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -35), -54.67506, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -30), -57.35043, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -25), -59.78851, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -20), -61.97733, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -15), -63.88224, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -10), -65.4381, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -5), -66.56082, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 0), -67.17354, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 5), -67.23678, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 10), -66.77093, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 15), -65.86642, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 20), -64.68185, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 25), -63.42681, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 30), -62.32485, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 35), -61.56465, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 40), -61.26043, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 45), -61.43749, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 50), -62.04326, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 55), -62.97378, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 60), -64.10396, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 65), -65.31321, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 70), -66.50107, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 75), -67.59116, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 80), -68.52574, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 85), -69.25814, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 90), -69.75134, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 95), -69.98631, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 100), -69.97441, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 105), -69.7617, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 110), -69.41761, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 115), -69.01226, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 120), -68.5947, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 125), -68.18251, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 130), -67.76541, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 135), -67.31815, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 140), -66.81426, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 145), -66.23447, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 150), -65.56836, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 155), -64.81286, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 160), -63.97142, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 165), -63.05488, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 170), -62.08162, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 175), -61.07438, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 180), -60.05399, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -180), -55.00845, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -175), -53.93651, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -170), -52.87259, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -165), -51.80715, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -160), -50.72703, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -155), -49.62475, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -150), -48.50298, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -145), -47.37328, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -140), -46.25169, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -135), -45.15393, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -130), -44.08998, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -125), -43.0568, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -120), -42.02972, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -115), -40.95766, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -110), -39.77013, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -105), -38.40029, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -100), -36.8199, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -95), -35.07405, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -90), -33.3012, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -85), -31.72917, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -80), -30.64277, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -75), -30.32436, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -70), -30.97674, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -65), -32.65405, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -60), -35.23702, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -55), -38.47195, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -50), -42.05341, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -45), -45.70604, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -40), -49.23369, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -35), -52.53061, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -30), -55.56398, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -25), -58.33956, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -20), -60.86311, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -15), -63.11081, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -10), -65.01843, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -5), -66.49206, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 0), -67.4353, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 5), -67.78234, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 10), -67.52345, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 15), -66.7165, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 20), -65.48892, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 25), -64.03316, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 30), -62.58571, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 35), -61.38192, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 40), -60.59955, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 45), -60.31868, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 50), -60.51625, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 55), -61.09193, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 60), -61.90878, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 65), -62.83096, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 70), -63.74686, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 75), -64.57368, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 80), -65.2486, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 85), -65.71852, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 90), -65.94055, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 95), -65.89616, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 100), -65.6084, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 105), -65.14523, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 110), -64.60081, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 115), -64.06302, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 120), -63.58426, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 125), -63.16989, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 130), -62.78722, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 135), -62.38734, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 140), -61.92663, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 145), -61.37761, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 150), -60.7278, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 155), -59.97363, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 160), -59.11726, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 165), -58.16867, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 170), -57.14837, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 175), -56.08532, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 180), -55.00845, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -180), -49.10863, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -175), -47.95956, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -170), -46.83393, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -165), -45.71801, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -160), -44.58995, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -155), -43.43348, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -150), -42.24575, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -145), -41.0375, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -140), -39.82873, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -135), -38.6434, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -130), -37.50249, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -125), -36.41294, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -120), -35.35352, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -115), -34.26566, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -110), -33.06101, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -105), -31.65188, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -100), -29.99759, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -95), -28.14878, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -90), -26.27069, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -85), -24.63438, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -80), -23.57341, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -75), -23.40974, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -70), -24.36317, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -65), -26.47563, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -60), -29.59102, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -55), -33.40747, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -50), -37.57375, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -45), -41.77892, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -40), -45.80337, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -35), -49.52904, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -30), -52.92052, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -25), -55.98912, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -20), -58.75207, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -15), -61.20014, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -10), -63.28384, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -5), -64.92109, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 0), -66.02144, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 5), -66.51626, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 10), -66.38276, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 15), -65.65544, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 20), -64.43023, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 25), -62.86801, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 30), -61.19014, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 35), -59.64816, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 40), -58.46476, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 45), -57.77226, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 50), -57.58448, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 55), -57.81494, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 60), -58.32489, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 65), -58.97281, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 70), -59.64417, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 75), -60.2549, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 80), -60.73732, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 85), -61.02705, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 90), -61.06696, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 95), -60.82981, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 100), -60.34331, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 105), -59.69457, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 110), -59.00417, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 115), -58.38128, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 120), -57.88377, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 125), -57.50338, 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.84027, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 140), -56.41972, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 145), -55.88614, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 150), -55.22921, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 155), -54.44845, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 160), -53.54642, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 165), -52.53243, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 170), -51.42953, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 175), -50.27478, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 180), -49.10863, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -180), -42.21949, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -175), -40.9621, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -170), -39.75491, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -165), -38.58118, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -160), -37.40911, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -155), -36.21073, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -150), -34.97411, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -145), -33.70555, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -140), -32.42572, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -135), -31.16386, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -130), -29.94918, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -125), -28.79593, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -120), -27.68407, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -115), -26.54673, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -110), -25.28032, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -105), -23.78365, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -100), -22.015, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -95), -20.04264, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -90), -18.06621, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -85), -16.39868, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -80), -15.41014, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -75), -15.44285, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -70), -16.7165, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -65), -19.25689, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -60), -22.88391, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -55), -27.26847, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -50), -32.02877, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -45), -36.81932, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -40), -41.38408, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -35), -45.57151, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -30), -49.32123, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -25), -52.63291, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -20), -55.52788, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -15), -58.01566, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -10), -60.07635, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -5), -61.66228, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 0), -62.71428, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 5), -63.18277, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 10), -63.04529, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 15), -62.31871, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 20), -61.07055, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 25), -59.43202, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 30), -57.60394, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 35), -55.83685, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 40), -54.37517, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 45), -53.38489, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 50), -52.90785, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 55), -52.87104, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 60), -53.13885, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 65), -53.57181, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 70), -54.06042, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 75), -54.52481, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 80), -54.89387, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 85), -55.0891, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 90), -55.03329, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 95), -54.68383, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 100), -54.06802, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 105), -53.29088, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 110), -52.50216, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 115), -51.83679, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 120), -51.36069, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 125), -51.05059, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 130), -50.8166, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 135), -50.55084, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 140), -50.17204, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 145), -49.64284, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 150), -48.95831, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 155), -48.124, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 160), -47.14431, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 165), -46.02825, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 170), -44.80222, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 175), -43.51386, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 180), -42.21949, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -180), -34.26339, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -175), -32.86526, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -170), -31.55616, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -165), -30.31835, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -160), -29.10935, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -155), -27.88685, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -150), -26.62637, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -145), -25.32651, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -140), -24.00591, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -135), -22.69648, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -130), -21.43229, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -125), -20.23064, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -120), -19.06866, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -115), -17.87022, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -110), -16.52117, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -105), -14.91774, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -100), -13.03106, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -95), -10.95787, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -90), -8.93354, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -85), -7.30089, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -80), -6.44294, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -75), -6.69551, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -70), -8.26183, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -65), -11.15631, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -60), -15.19958, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -55), -20.06656, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -50), -25.36585, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -45), -30.71961, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -40), -35.82164, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -35), -40.46562, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -30), -44.54571, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -25), -48.03562, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -20), -50.95563, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -15), -53.33925, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -10), -55.21045, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -5), -56.57537, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 0), -57.42485, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 5), -57.74111, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 10), -57.50659, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 15), -56.7188, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 20), -55.41424, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 25), -53.69617, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 30), -51.7502, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 35), -49.82753, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 40), -48.18626, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 45), -47.01065, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 50), -46.35535, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 55), -46.15111, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 60), -46.26268, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 65), -46.55523, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 70), -46.92963, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 75), -47.31559, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 80), -47.64181, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 85), -47.81598, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 90), -47.73848, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 95), -47.34733, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 100), -46.66561, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 105), -45.81458, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 110), -44.97453, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 115), -44.30934, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 120), -43.89505, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 125), -43.69252, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 130), -43.5778, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 135), -43.40783, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 140), -43.07978, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 145), -42.55231, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 150), -41.82749, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 155), -40.91864, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 160), -39.83307, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 165), -38.58011, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 170), -37.19074, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 175), -35.7262, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 180), -34.26339, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -180), -25.27243, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -175), -23.70995, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -170), -22.28566, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -165), -20.9834, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -160), -19.75013, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -155), -18.52702, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -150), -17.2738, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -145), -15.97862, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -140), -14.65625, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -135), -13.33971, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -130), -12.06524, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -125), -10.84895, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -120), -9.66153, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -115), -8.41816, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -110), -7.00141, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -105), -5.31742, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -100), -3.36209, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -95), -1.26451, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -90), 0.71379, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -85), 2.22306, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -80), 2.89729, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -75), 2.43249, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -70), 0.65136, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -65), -2.46051, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -60), -6.75198, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -55), -11.93362, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -50), -17.62751, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -45), -23.43095, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -40), -28.98131, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -35), -34.00508, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -30), -38.33914, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -25), -41.92359, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -20), -44.77514, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -15), -46.95421, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -10), -48.53614, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -5), -49.58991, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 0), -50.16314, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 5), -50.2725, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 10), -49.90448, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 15), -49.03414, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 20), -47.66339, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 25), -45.86632, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 30), -43.81678, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 35), -41.77264, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 40), -40.00836, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 45), -38.72198, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 50), -37.97118, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 55), -37.68051, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 60), -37.70856, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 65), -37.9233, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 70), -38.23788, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 75), -38.59562, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 80), -38.92928, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 85), -39.13576, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 90), -39.09404, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 95), -38.72162, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 100), -38.03448, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 105), -37.16679, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 110), -36.32732, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 115), -35.70858, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 120), -35.39735, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 125), -35.33903, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 130), -35.3753, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 135), -35.3271, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 140), -35.06886, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 145), -34.55415, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 150), -33.79143, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 155), -32.80182, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 160), -31.59603, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 165), -30.18453, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 170), -28.6044, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 175), -26.93316, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 180), -25.27243, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -180), -15.44358, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -175), -13.71679, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -170), -12.18173, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -165), -10.82694, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -160), -9.59029, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -155), -8.39561, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -150), -7.18451, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -145), -5.93234, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -140), -4.64881, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -135), -3.3673, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -130), -2.12467, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -125), -0.93357, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -120), 0.24247, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -115), 1.49302, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -110), 2.92962, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -105), 4.62573, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -100), 6.55572, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -95), 8.56475, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -90), 10.38431, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -85), 11.68475, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -80), 12.14278, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -75), 11.50186, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -70), 9.61212, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -65), 6.44885, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -60), 2.11788, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -55), -3.14713, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -50), -9.002, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -45), -15.0361, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -40), -20.84108, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -35), -26.08123, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -30), -30.53767, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -25), -34.11579, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -20), -36.82532, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -15), -38.74865, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -10), -40.00729, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -5), -40.72868, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 0), -41.01383, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 5), -40.91172, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 10), -40.41204, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 15), -39.46739, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 20), -38.04491, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 25), -36.18899, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 30), -34.06177, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 35), -31.92886, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 40), -30.08197, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 45), -28.73182, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 50), -27.93606, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 55), -27.60894, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 60), -27.59905, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 65), -27.77431, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 70), -28.0595, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 75), -28.41353, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 80), -28.7777, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 85), -29.04383, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 90), -29.07453, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 95), -28.76919, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 100), -28.13507, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 105), -27.31366, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 110), -26.53471, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 115), -26.01325, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 120), -25.84484, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 125), -25.96203, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 130), -26.17727, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 135), -26.27958, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 140), -26.12147, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 145), -25.64915, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 150), -24.87421, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 155), -23.82343, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 160), -22.51061, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 165), -20.94827, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 170), -19.18082, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 175), -17.30328, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 180), -15.44358, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -180), -5.1611, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -175), -3.3058, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -170), -1.68959, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -165), -0.30892, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -160), 0.90379, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -155), 2.04018, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -150), 3.17701, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -145), 4.35296, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -140), 5.56461, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -135), 6.77899, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -130), 7.95916, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -125), 9.09537, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -120), 10.2278, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -115), 11.44344, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -110), 12.83899, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -105), 14.4622, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -100), 16.26151, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -95), 18.07084, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -90), 19.63625, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -85), 20.66938, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -80), 20.90355, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -75), 20.13375, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -70), 18.23523, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -65), 15.17094, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -60), 11.00205, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -55), 5.90484, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -50), 0.17777, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -45), -5.78486, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -40), -11.55926, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -35), -16.77421, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -30), -21.17167, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -25), -24.62671, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -20), -27.13516, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -15), -28.78662, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -10), -29.73146, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -5), -30.14066, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 0), -30.15948, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 5), -29.86631, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 10), -29.25592, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 15), -28.26274, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 20), -26.82341, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 25), -24.95452, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 30), -22.80448, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 35), -20.64085, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 40), -18.76522, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 45), -17.39581, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 50), -16.5895, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 55), -16.25279, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 60), -16.2262, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 65), -16.37691, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 70), -16.63906, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 75), -16.9868, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 80), -17.37408, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 85), -17.69618, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 90), -17.80942, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 95), -17.60221, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 100), -17.07331, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 105), -16.36343, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 110), -15.70941, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 115), -15.33569, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 120), -15.3415, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 125), -15.6521, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 130), -16.06259, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 135), -16.34075, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 140), -16.32117, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 145), -15.93989, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 150), -15.20585, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 155), -14.14702, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 160), -12.77895, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 165), -11.11686, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 170), -9.21258, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 175), -7.17688, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 180), -5.1611, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -180), 5.05904, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -175), 6.97204, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -170), 8.61764, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -165), 9.98842, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -160), 11.15157, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -155), 12.20863, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -150), 13.25158, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -145), 14.33264, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -140), 15.45576, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -135), 16.58992, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -130), 17.69831, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -125), 18.77138, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -120), 19.84655, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -115), 20.99973, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -110), 22.3063, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -105), 23.78878, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -100), 25.37896, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -95), 26.91509, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -90), 28.17356, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -85), 28.91731, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -80), 28.93816, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -75), 28.07923, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -70), 26.23976, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -65), 23.37767, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -60), 19.5249, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -55), 14.81421, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -50), 9.49737, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -45), 3.92908, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -40), -1.49138, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -35), -6.39917, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -30), -10.52664, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -25), -13.72929, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -20), -15.98213, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -15), -17.36289, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -10), -18.02693, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -5), -18.16753, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 0), -17.96063, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 5), -17.50997, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 10), -16.81945, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 15), -15.81425, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 20), -14.40971, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 25), -12.59922, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 30), -10.51362, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 35), -8.41011, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 40), -6.58457, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 45), -5.25196, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 50), -4.46762, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 55), -4.13734, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 60), -4.10122, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 65), -4.22795, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 70), -4.45802, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 75), -4.77756, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 80), -5.15559, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 85), -5.50099, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 90), -5.67819, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 95), -5.57642, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 100), -5.18856, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 105), -4.64502, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 110), -4.17131, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 115), -3.9832, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 120), -4.17632, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 125), -4.67623, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 130), -5.27796, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 135), -5.74444, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 140), -5.90001, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 145), -5.66853, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 150), -5.04918, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 155), -4.06491, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 160), -2.73056, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 165), -1.0637, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 170), 0.87834, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 175), 2.97476, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 180), 5.05904, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -180), 14.70577, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -175), 16.58691, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -170), 18.20086, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -165), 19.52716, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -160), 20.62545, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -155), 21.59869, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -150), 22.54743, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -145), 23.53452, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -140), 24.57192, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -135), 25.63265, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -130), 26.68069, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -125), 27.70362, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -120), 28.72961, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -115), 29.81652, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -110), 31.01557, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -105), 32.3279, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -100), 33.67832, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -95), 34.9201, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -90), 35.86663, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -85), 36.33181, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -80), 36.16009, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -75), 35.23711, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -70), 33.48763, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -65), 30.87722, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -60), 27.4294, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -55), 23.25289, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -50), 18.55891, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -45), 13.64784, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -40), 8.86088, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -35), 4.51603, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -30), 0.8573, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -25), -1.96845, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -20), -3.91519, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -15), -5.03465, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -10), -5.46482, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -5), -5.39758, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 0), -5.02142, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 5), -4.45766, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 10), -3.72318, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 15), -2.74602, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 20), -1.43375, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 25), 0.23645, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 30), 2.15614, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 35), 4.09429, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 40), 5.77991, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 45), 7.01403, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 50), 7.74367, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 55), 8.05507, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 60), 8.09821, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 65), 7.99832, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 70), 7.81155, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 75), 7.54534, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 80), 7.21641, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 85), 6.89425, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 90), 6.69185, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 95), 6.70559, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 100), 6.94379, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 105), 7.29421, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 110), 7.55979, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 115), 7.55057, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 120), 7.18177, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 125), 6.52036, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 130), 5.75419, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 135), 5.10731, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 140), 4.7553, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 145), 4.78614, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 150), 5.21629, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 155), 6.03405, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 160), 7.22862, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 165), 8.78183, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 170), 10.63496, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 175), 12.66613, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 180), 14.70577, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -180), 23.41795, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -175), 25.18006, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -170), 26.70531, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -165), 27.96017, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -160), 28.99058, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -155), 29.89146, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -150), 30.76316, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -145), 31.67401, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -140), 32.64339, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -135), 33.65034, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -130), 34.66098, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -125), 35.65837, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -120), 36.65733, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -115), 37.69421, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -110), 38.79628, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -105), 39.94801, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -100), 41.07376, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -95), 42.04609, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -90), 42.71416, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -85), 42.93606, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -80), 42.59993, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -75), 41.62845, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -70), 39.97481, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -65), 37.62447, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -60), 34.60992, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -55), 31.03138, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -50), 27.06659, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -45), 22.95637, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -40), 18.9669, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -35), 15.34542, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -30), 12.28835, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -25), 9.9269, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -20), 8.31979, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -15), 7.44436, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -10), 7.1938, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -5), 7.39823, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 0), 7.87676, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 5), 8.50226, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 10), 9.24398, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 15), 10.15955, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 20), 11.33466, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 25), 12.79997, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 30), 14.47266, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 35), 16.16114, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 40), 17.63504, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 45), 18.72158, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 50), 19.371, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 55), 19.65462, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 60), 19.70336, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 65), 19.63119, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 70), 19.49242, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 75), 19.29379, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 80), 19.04167, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 85), 18.78144, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 90), 18.59472, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 95), 18.55342, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 100), 18.66184, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 105), 18.82881, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 110), 18.89508, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 115), 18.70654, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 120), 18.19397, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 125), 17.41313, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 130), 16.52367, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 135), 15.72321, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 140), 15.17729, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 145), 14.98225, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 150), 15.17215, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 155), 15.75035, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 160), 16.7131, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 165), 18.04425, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 170), 19.68875, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 175), 21.53324, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 180), 23.41795, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -180), 31.05047, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -175), 32.6231, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -170), 34.01316, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -165), 35.17708, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -160), 36.14388, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -155), 36.99261, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -150), 37.81434, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -145), 38.67623, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -140), 39.6026, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -135), 40.57944, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -130), 41.57656, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -125), 42.57294, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -120), 43.56948, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -115), 44.58124, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -110), 45.61407, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -105), 46.63982, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -100), 47.5854, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -95), 48.34189, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -90), 48.78844, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -85), 48.81806, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -80), 48.3534, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -75), 47.34928, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -70), 45.78904, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -65), 43.6852, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -60), 41.08843, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -55), 38.09815, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -50), 34.86336, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -45), 31.56738, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -40), 28.40102, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -35), 25.53718, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -30), 23.11692, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -25), 21.24447, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -20), 19.97962, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -15), 19.32219, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -10), 19.19927, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -5), 19.4751, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 0), 19.9926, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 5), 20.63125, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 10), 21.34942, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 15), 22.18381, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 20), 23.20246, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 25), 24.43583, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 30), 25.82596, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 35), 27.22628, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 40), 28.45484, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 45), 29.37071, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 50), 29.92866, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 55), 30.18222, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 60), 30.23798, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 65), 30.1943, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 70), 30.10305, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 75), 29.97362, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 80), 29.80692, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 85), 29.62721, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 90), 29.48423, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 95), 29.42207, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 100), 29.43723, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 105), 29.45734, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 110), 29.36059, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 115), 29.02981, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 120), 28.41267, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 125), 27.55393, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 130), 26.58265, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 135), 25.66469, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 140), 24.94877, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 145), 24.53411, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 150), 24.46963, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 155), 24.77359, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 160), 25.4504, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 165), 26.48806, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 170), 27.83932, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 175), 29.40667, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 180), 31.05047, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -180), 37.64694, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -175), 38.98234, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -170), 40.20309, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -165), 41.26146, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -160), 42.17023, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -155), 42.98792, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -150), 43.78878, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -145), 44.63169, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -140), 45.54163, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -135), 46.51042, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -130), 47.51261, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -125), 48.52495, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -120), 49.5368, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -115), 50.54531, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -110), 51.53896, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -105), 52.48035, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -100), 53.29967, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -95), 53.90314, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -90), 54.1928, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -85), 54.08757, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -80), 53.5366, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -75), 52.52206, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -70), 51.05602, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -65), 49.17853, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -60), 46.95902, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -55), 44.49692, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -50), 41.91555, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -45), 39.34807, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -40), 36.921, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -35), 34.74383, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -30), 32.9079, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -25), 31.488, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -20), 30.53606, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -15), 30.06411, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -10), 30.02749, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -5), 30.32656, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 0), 30.836, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 5), 31.45089, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 10), 32.12397, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 15), 32.87062, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 20), 33.73659, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 25), 34.74634, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 30), 35.86225, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 35), 36.98053, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 40), 37.96745, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 45), 38.71532, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 50), 39.18553, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 55), 39.41481, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 60), 39.48436, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 65), 39.47418, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 70), 39.43129, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 75), 39.36792, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 80), 39.28299, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 85), 39.18534, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 90), 39.09817, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 95), 39.04046, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 100), 38.9996, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 105), 38.91712, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 110), 38.70215, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 115), 38.2694, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 120), 37.5823, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 125), 36.6774, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 130), 35.65721, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 135), 34.65746, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 140), 33.80763, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 145), 33.20418, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 150), 32.9051, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 155), 32.93979, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 160), 33.31967, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 165), 34.03753, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 170), 35.0559, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 175), 36.29681, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 180), 37.64694, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -180), 43.37021, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -175), 44.44565, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -170), 45.47739, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -165), 46.42039, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -160), 47.27491, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -155), 48.07821, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -150), 48.88311, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -145), 49.7341, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -140), 50.65165, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -135), 51.63043, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -130), 52.64931, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -125), 53.68479, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -120), 54.71866, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -115), 55.73526, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -110), 56.71067, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -105), 57.60146, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -100), 58.34097, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -95), 58.84695, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -90), 59.03799, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -85), 58.85177, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -80), 58.25761, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -75), 57.25988, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -70), 55.89469, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -65), 54.22424, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -60), 52.33129, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -55), 50.31233, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -50), 48.268, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -45), 46.29193, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -40), 44.46283, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -35), 42.84395, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -30), 41.48896, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -25), 40.44683, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -20), 39.75718, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -15), 39.43518, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -10), 39.45536, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -5), 39.74885, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 0), 40.22195, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 5), 40.78928, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 10), 41.4033, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 15), 42.06217, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 20), 42.79047, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 25), 43.60399, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 30), 44.4797, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 35), 45.34959, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 40), 46.12272, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 45), 46.72293, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 50), 47.12013, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 55), 47.33766, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 60), 47.43321, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 65), 47.4674, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 70), 47.47939, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 75), 47.48191, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 80), 47.4731, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 85), 47.45167, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 90), 47.42157, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 95), 47.38237, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 100), 47.31332, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 105), 47.16526, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 110), 46.87042, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 115), 46.36857, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 120), 45.63681, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 125), 44.70708, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 130), 43.66192, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 135), 42.61208, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 140), 41.66826, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 145), 40.91988, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 150), 40.42749, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 155), 40.22627, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 160), 40.33202, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 165), 40.74179, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 170), 41.42795, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 175), 42.33244, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 180), 43.37021, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -180), 48.43974, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -175), 49.25908, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -170), 50.09961, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -165), 50.92443, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -160), 51.72638, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -155), 52.52394, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -150), 53.34782, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -145), 54.22484, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -140), 55.16649, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -135), 56.16656, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -130), 57.20646, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -125), 58.26346, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -120), 59.31542, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -115), 60.3391, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -110), 61.30326, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -105), 62.16146, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -100), 62.8504, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -95), 63.2967, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -90), 63.43121, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -85), 63.20562, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -80), 62.6046, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -75), 61.64941, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -70), 60.39323, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -65), 58.91197, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -60), 57.29379, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -55), 55.62851, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -50), 53.99758, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -45), 52.46654, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -40), 51.08294, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -35), 49.88079, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -30), 48.88885, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -25), 48.13628, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -20), 47.6496, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -15), 47.44112, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -10), 47.49589, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -5), 47.76756, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 0), 48.18898, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 5), 48.69408, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 10), 49.23911, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 15), 49.81106, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 20), 50.41794, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 25), 51.06715, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 30), 51.74527, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 35), 52.41169, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 40), 53.01034, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 45), 53.49259, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 50), 53.83787, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 55), 54.0601, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 60), 54.19708, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 65), 54.29054, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 70), 54.3692, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 75), 54.44301, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 80), 54.50847, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 85), 54.55749, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 90), 54.58121, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 95), 54.56585, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 100), 54.48478, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 105), 54.29539, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 110), 53.94692, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 115), 53.39845, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 120), 52.63904, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 125), 51.69921, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 130), 50.64777, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 135), 49.57608, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 140), 48.57771, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 145), 47.73217, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 150), 47.09718, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 155), 46.70873, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 160), 46.58427, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 165), 46.72412, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 170), 47.10964, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 175), 47.70099, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 180), 48.43974, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -180), 53.08739, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -175), 53.6798, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -170), 54.34544, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -165), 55.05782, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -160), 55.80684, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -155), 56.59697, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -150), 57.43986, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -145), 58.34518, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -140), 59.31367, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -135), 60.33528, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -130), 61.39177, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -125), 62.46095, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -120), 63.51902, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -115), 64.53907, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -110), 65.48646, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -105), 66.31436, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -100), 66.96333, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -95), 67.36763, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -90), 67.46819, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -85), 67.22801, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -80), 66.64381, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -75), 65.74858, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -70), 64.60516, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -65), 63.29442, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -60), 61.90254, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -55), 60.5098, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -50), 59.18214, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -45), 57.9669, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -40), 56.89386, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -35), 55.98114, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -30), 55.24305, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -25), 54.69498, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -20), 54.35185, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -15), 54.22029, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -10), 54.28961, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -5), 54.52807, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 0), 54.88847, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 5), 55.32142, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 10), 55.7895, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 15), 56.27447, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 20), 56.77368, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 25), 57.28837, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 30), 57.81128, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 35), 58.32133, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 40), 58.78866, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 45), 59.18667, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 50), 59.50387, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 55), 59.74824, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 60), 59.94194, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 65), 60.10981, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 70), 60.26871, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 75), 60.42272, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 80), 60.56481, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 85), 60.68145, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 90), 60.75527, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 95), 60.76409, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 100), 60.67817, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 105), 60.46056, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 110), 60.07392, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 115), 59.49306, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 120), 58.7179, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 125), 57.78, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 130), 56.73915, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 135), 55.6717, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 140), 54.65591, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 145), 53.75985, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 150), 53.0348, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 155), 52.5141, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 160), 52.21491, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 165), 52.14012, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 170), 52.27883, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 175), 52.60656, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 180), 53.08739, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -180), 57.52009, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -175), 57.93298, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -170), 58.45411, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -165), 59.06651, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -160), 59.76003, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -155), 60.53046, 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.29345, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -140), 63.27383, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -135), 64.30265, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -130), 65.36048, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -125), 66.42498, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -120), 67.47146, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -115), 68.47134, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -110), 69.38889, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -105), 70.17841, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -100), 70.78465, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -95), 71.14906, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -90), 71.22183, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -85), 70.97618, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -80), 70.41856, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -75), 69.58944, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -70), 68.55493, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -65), 67.39385, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -60), 66.18514, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -55), 64.99808, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -50), 63.88632, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -45), 62.88605, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -40), 62.01814, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -35), 61.29352, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -30), 60.71916, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -25), 60.30182, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -20), 60.04749, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -15), 59.95691, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -10), 60.02023, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -5), 60.21446, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 0), 60.50638, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 5), 60.86001, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 10), 61.24532, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 15), 61.64366, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 20), 62.04736, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 25), 62.45439, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 30), 62.86154, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 35), 63.26064, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 40), 63.63963, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 45), 63.98768, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 50), 64.30058, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 55), 64.5829, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 60), 64.84536, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 65), 65.09892, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 70), 65.34877, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 75), 65.59121, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 80), 65.81375, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 85), 65.99744, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 90), 66.1188, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 95), 66.15063, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 100), 66.06254, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 105), 65.82358, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 110), 65.40831, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 115), 64.80539, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 120), 64.02501, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 125), 63.10122, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 130), 62.08782, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 135), 61.04921, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 140), 60.05001, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 145), 59.14651, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 150), 58.38186, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 155), 57.78498, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 160), 57.37177, 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.10643, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 175), 57.23711, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 180), 57.52009, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -180), 61.88422, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -175), 62.17088, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -170), 62.58273, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -165), 63.10964, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -160), 63.74271, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -155), 64.47373, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -150), 65.29386, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -145), 66.19202, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -140), 67.15386, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -135), 68.16158, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -130), 69.1946, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -125), 70.23006, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -120), 71.24261, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -115), 72.20271, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -110), 73.07433, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -105), 73.81316, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -100), 74.36789, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -95), 74.68662, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -90), 74.7283, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -85), 74.47588, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -80), 73.94409, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -75), 73.17779, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -70), 72.2419, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -65), 71.20872, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -60), 70.14703, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -55), 69.11487, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -50), 68.15598, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -45), 67.29948, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -40), 66.56206, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -35), 65.95197, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -30), 65.47304, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -25), 65.12721, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -20), 64.91466, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -15), 64.83179, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -10), 64.86855, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -5), 65.00737, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 0), 65.22462, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 5), 65.49474, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 10), 65.79519, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 15), 66.1101, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 20), 66.43113, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 25), 66.75548, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 30), 67.08271, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 35), 67.41216, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 40), 67.74233, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 45), 68.07194, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 50), 68.40144, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 55), 68.73332, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 60), 69.0706, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 65), 69.4139, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 70), 69.75848, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 75), 70.09251, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 80), 70.39705, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 85), 70.64744, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 90), 70.81514, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 95), 70.86992, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 100), 70.78253, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 105), 70.52866, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 110), 70.09427, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 115), 69.48077, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 120), 68.70792, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 125), 67.81278, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 130), 66.84471, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 135), 65.85827, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 140), 64.90607, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 145), 64.03332, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 150), 63.27491, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 155), 62.65485, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 160), 62.18737, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 165), 61.87873, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 170), 61.72901, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 175), 61.73354, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 180), 61.88422, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -180), 66.24261, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -175), 66.44922, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -170), 66.78211, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -165), 67.23514, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -160), 67.80091, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -155), 68.47046, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -150), 69.23276, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -145), 70.07437, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -140), 70.97931, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -135), 71.92919, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -130), 72.90351, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -125), 73.87957, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -120), 74.8318, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -115), 75.73021, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -110), 76.53858, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -105), 77.21359, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -100), 77.70692, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -95), 77.97214, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -90), 77.97626, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -85), 77.71138, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -80), 77.19964, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -75), 76.48835, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -70), 75.6387, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -65), 74.71419, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -60), 73.7724, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -55), 72.86054, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -50), 72.01388, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -45), 71.25627, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -40), 70.602, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -35), 70.05832, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -30), 69.62795, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -25), 69.3107, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -20), 69.10387, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -15), 69.00179, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -10), 68.99488, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -5), 69.06955, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 0), 69.20917, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 5), 69.39629, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 10), 69.61527, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 15), 69.85458, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 20), 70.10767, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 25), 70.3726, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 30), 70.65062, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 35), 70.94461, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 40), 71.25785, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 45), 71.59342, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 50), 71.9537, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 55), 72.33959, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 60), 72.7493, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 65), 73.17673, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 70), 73.60995, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 75), 74.03044, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 80), 74.41322, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 85), 74.72812, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 90), 74.94218, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 95), 75.02302, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 100), 74.94333, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 105), 74.6857, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 110), 74.24687, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 115), 73.63977, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 120), 72.89248, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 125), 72.04451, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 130), 71.14139, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 135), 70.22928, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 140), 69.35052, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 145), 68.54063, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 150), 67.82706, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 155), 67.2292, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 160), 66.75941, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 165), 66.42451, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 170), 66.22721, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 175), 66.16734, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 180), 66.24261, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -180), 70.57577, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -175), 70.7332, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -170), 71.00651, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -165), 71.39147, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -160), 71.88205, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -155), 72.47021, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -150), 73.14574, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -145), 73.89623, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -140), 74.70709, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -135), 75.56173, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -130), 76.44141, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -125), 77.32494, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -120), 78.18764, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -115), 78.99993, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -110), 79.72585, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -105), 80.32267, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -100), 80.74384, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -95), 80.94703, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -90), 80.90631, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -85), 80.62256, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -80), 80.12479, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -75), 79.46158, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -70), 78.6889, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -65), 77.86049, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -60), 77.02263, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -55), 76.21222, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -50), 75.45681, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -45), 74.77544, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -40), 74.18013, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -35), 73.67737, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -30), 73.26958, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -25), 72.9561, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -20), 72.73375, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -15), 72.59698, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -10), 72.53792, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -5), 72.54673, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 0), 72.61235, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 5), 72.72367, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 10), 72.87098, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 15), 73.04713, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 20), 73.24823, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 25), 73.47362, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 30), 73.72528, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 35), 74.0069, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 40), 74.32274, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 45), 74.67656, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 50), 75.07053, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 55), 75.50413, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 60), 75.97286, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 65), 76.46716, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 70), 76.97134, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 75), 77.46295, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 80), 77.91301, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 85), 78.2872, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 90), 78.5488, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 95), 78.66348, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 100), 78.60548, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 105), 78.3634, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 110), 77.94324, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 115), 77.36743, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 120), 76.67035, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 125), 75.89261, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 130), 75.07585, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 135), 74.25894, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 140), 73.47564, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 145), 72.75355, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 150), 72.11385, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 155), 71.5719, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 160), 71.13808, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 165), 70.81888, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 170), 70.61796, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 175), 70.53691, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 180), 70.57577, 0.21 + 1.2);
}
TEST(GeoLookupTest, strength) {
EXPECT_NEAR(get_mag_strength_tesla(-50, -180) * 1e9, 58505.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -175) * 1e9, 57372.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -170) * 1e9, 56224.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -165) * 1e9, 55073.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -160) * 1e9, 53922.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -155) * 1e9, 52775.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -150) * 1e9, 51630.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -145) * 1e9, 50481.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -140) * 1e9, 49317.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -135) * 1e9, 48122.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -130) * 1e9, 46877.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -125) * 1e9, 45567.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -120) * 1e9, 44178.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -115) * 1e9, 42704.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -110) * 1e9, 41149.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -105) * 1e9, 39527.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -100) * 1e9, 37861.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -95) * 1e9, 36185.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -90) * 1e9, 34537.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -85) * 1e9, 32962.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -80) * 1e9, 31505.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -75) * 1e9, 30203.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -70) * 1e9, 29086.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -65) * 1e9, 28170.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -60) * 1e9, 27452.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -55) * 1e9, 26915.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -50) * 1e9, 26527.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -45) * 1e9, 26249.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -40) * 1e9, 26041, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -35) * 1e9, 25868, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -30) * 1e9, 25706.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -25) * 1e9, 25544.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -20) * 1e9, 25383.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -15) * 1e9, 25237.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -10) * 1e9, 25129.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, -5) * 1e9, 25095.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 0) * 1e9, 25176.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 5) * 1e9, 25421.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 10) * 1e9, 25876.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 15) * 1e9, 26582.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 20) * 1e9, 27569.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 25) * 1e9, 28850.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 30) * 1e9, 30421.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 35) * 1e9, 32261.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 40) * 1e9, 34337.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 45) * 1e9, 36606, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 50) * 1e9, 39018.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 55) * 1e9, 41523.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 60) * 1e9, 44074.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 65) * 1e9, 46624.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 70) * 1e9, 49134.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 75) * 1e9, 51568.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 80) * 1e9, 53893.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 85) * 1e9, 56078.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 90) * 1e9, 58092.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 95) * 1e9, 59906.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 100) * 1e9, 61495.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 105) * 1e9, 62838.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 110) * 1e9, 63925.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 115) * 1e9, 64752.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 120) * 1e9, 65323.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 125) * 1e9, 65650.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 130) * 1e9, 65749.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 135) * 1e9, 65638.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 140) * 1e9, 65338.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 145) * 1e9, 64870.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 150) * 1e9, 64252.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 155) * 1e9, 63506.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 160) * 1e9, 62650.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 165) * 1e9, 61704.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 170) * 1e9, 60686.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 175) * 1e9, 59615.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-50, 180) * 1e9, 58505.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -180) * 1e9, 56335.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -175) * 1e9, 55145.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -170) * 1e9, 53947.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -165) * 1e9, 52750, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -160) * 1e9, 51558.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -155) * 1e9, 50377.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -150) * 1e9, 49207.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -145) * 1e9, 48044, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -140) * 1e9, 46876, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -135) * 1e9, 45688, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -130) * 1e9, 44460.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -125) * 1e9, 43173.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -120) * 1e9, 41810.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -115) * 1e9, 40361.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -110) * 1e9, 38826.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -105) * 1e9, 37214.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -100) * 1e9, 35547.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -95) * 1e9, 33857.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -90) * 1e9, 32189.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -85) * 1e9, 30592.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -80) * 1e9, 29122.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -75) * 1e9, 27830.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -70) * 1e9, 26755.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -65) * 1e9, 25919, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -60) * 1e9, 25320.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -55) * 1e9, 24935.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -50) * 1e9, 24719, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -45) * 1e9, 24618.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -40) * 1e9, 24579.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -35) * 1e9, 24558.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -30) * 1e9, 24525.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -25) * 1e9, 24463.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -20) * 1e9, 24370.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -15) * 1e9, 24257.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -10) * 1e9, 24144.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, -5) * 1e9, 24067.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 0) * 1e9, 24070.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 5) * 1e9, 24213, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 10) * 1e9, 24556.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 15) * 1e9, 25162.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 20) * 1e9, 26078.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 25) * 1e9, 27330.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 30) * 1e9, 28921.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 35) * 1e9, 30829.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 40) * 1e9, 33011.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 45) * 1e9, 35412, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 50) * 1e9, 37967, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 55) * 1e9, 40611, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 60) * 1e9, 43282.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 65) * 1e9, 45926.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 70) * 1e9, 48499.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 75) * 1e9, 50964.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 80) * 1e9, 53291.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 85) * 1e9, 55450.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 90) * 1e9, 57414.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 95) * 1e9, 59155.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 100) * 1e9, 60653.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 105) * 1e9, 61892.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 110) * 1e9, 62866.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 115) * 1e9, 63578.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 120) * 1e9, 64037.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 125) * 1e9, 64260.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 130) * 1e9, 64265.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 135) * 1e9, 64070, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 140) * 1e9, 63693.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 145) * 1e9, 63154.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 150) * 1e9, 62470.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 155) * 1e9, 61658.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 160) * 1e9, 60737.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 165) * 1e9, 59725.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 170) * 1e9, 58641.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 175) * 1e9, 57505.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-45, 180) * 1e9, 56335.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -180) * 1e9, 53979.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -175) * 1e9, 52761.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -170) * 1e9, 51537.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -165) * 1e9, 50317.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -160) * 1e9, 49105.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -155) * 1e9, 47906.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -150) * 1e9, 46723.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -145) * 1e9, 45553.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -140) * 1e9, 44390.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -135) * 1e9, 43221.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -130) * 1e9, 42027.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -125) * 1e9, 40789, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -120) * 1e9, 39488.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -115) * 1e9, 38111.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -110) * 1e9, 36652.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -105) * 1e9, 35114.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -100) * 1e9, 33513.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -95) * 1e9, 31877.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -90) * 1e9, 30249.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -85) * 1e9, 28686, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -80) * 1e9, 27250.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -75) * 1e9, 26006.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -70) * 1e9, 25003.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -65) * 1e9, 24270.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -60) * 1e9, 23806, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -55) * 1e9, 23578.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -50) * 1e9, 23533.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -45) * 1e9, 23603.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -40) * 1e9, 23727.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -35) * 1e9, 23856.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -30) * 1e9, 23957.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -25) * 1e9, 24016.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -20) * 1e9, 24027, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -15) * 1e9, 23993.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -10) * 1e9, 23928.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, -5) * 1e9, 23856.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 0) * 1e9, 23816, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 5) * 1e9, 23868, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 10) * 1e9, 24086.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 15) * 1e9, 24551.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 20) * 1e9, 25334.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 25) * 1e9, 26482.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 30) * 1e9, 28011.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 35) * 1e9, 29905.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 40) * 1e9, 32118.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 45) * 1e9, 34582.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 50) * 1e9, 37216.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 55) * 1e9, 39939.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 60) * 1e9, 42673.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 65) * 1e9, 45353.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 70) * 1e9, 47928.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 75) * 1e9, 50361.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 80) * 1e9, 52622.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 85) * 1e9, 54686.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 90) * 1e9, 56528.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 95) * 1e9, 58127.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 100) * 1e9, 59467.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 105) * 1e9, 60542.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 110) * 1e9, 61355, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 115) * 1e9, 61919.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 120) * 1e9, 62251.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 125) * 1e9, 62371.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 130) * 1e9, 62294.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 135) * 1e9, 62036.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 140) * 1e9, 61612.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 145) * 1e9, 61035.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 150) * 1e9, 60318, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 155) * 1e9, 59474.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 160) * 1e9, 58520.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 165) * 1e9, 57473.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 170) * 1e9, 56353.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 175) * 1e9, 55182.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-40, 180) * 1e9, 53979.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -180) * 1e9, 51467.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -175) * 1e9, 50246, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -170) * 1e9, 49023.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -165) * 1e9, 47805, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -160) * 1e9, 46594.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -155) * 1e9, 45396.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -150) * 1e9, 44214.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -145) * 1e9, 43051.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -140) * 1e9, 41903.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -135) * 1e9, 40762.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -130) * 1e9, 39615.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -125) * 1e9, 38445.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -120) * 1e9, 37235, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -115) * 1e9, 35968.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -110) * 1e9, 34633, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -105) * 1e9, 33223.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -100) * 1e9, 31746.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -95) * 1e9, 30222.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -90) * 1e9, 28692.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -85) * 1e9, 27213.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -80) * 1e9, 25857.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -75) * 1e9, 24696.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -70) * 1e9, 23788.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -65) * 1e9, 23168.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -60) * 1e9, 22834.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -55) * 1e9, 22749, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -50) * 1e9, 22847.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -45) * 1e9, 23058.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -40) * 1e9, 23316.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -35) * 1e9, 23575.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -30) * 1e9, 23809.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -25) * 1e9, 24005.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -20) * 1e9, 24158.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -15) * 1e9, 24264.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -10) * 1e9, 24318.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, -5) * 1e9, 24326.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 0) * 1e9, 24313.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 5) * 1e9, 24329.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 10) * 1e9, 24451, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 15) * 1e9, 24770.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 20) * 1e9, 25379.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 25) * 1e9, 26353, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 30) * 1e9, 27730.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 35) * 1e9, 29512.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 40) * 1e9, 31656.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 45) * 1e9, 34090.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 50) * 1e9, 36721.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 55) * 1e9, 39449.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 60) * 1e9, 42181.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 65) * 1e9, 44837.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 70) * 1e9, 47360.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 75) * 1e9, 49710.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 80) * 1e9, 51856.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 85) * 1e9, 53775.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 90) * 1e9, 55444.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 95) * 1e9, 56846.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 100) * 1e9, 57973.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 105) * 1e9, 58835, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 110) * 1e9, 59449, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 115) * 1e9, 59842.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 120) * 1e9, 60039.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 125) * 1e9, 60061.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 130) * 1e9, 59918.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 135) * 1e9, 59618.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 140) * 1e9, 59169.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 145) * 1e9, 58577.2, 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.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 160) * 1e9, 56041.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 165) * 1e9, 54986.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 170) * 1e9, 53857.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 175) * 1e9, 52676.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-35, 180) * 1e9, 51467.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -180) * 1e9, 48814, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -175) * 1e9, 47617, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -170) * 1e9, 46422.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -165) * 1e9, 45233.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -160) * 1e9, 44051.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -155) * 1e9, 42878.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -150) * 1e9, 41720.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -145) * 1e9, 40581.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -140) * 1e9, 39465.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -135) * 1e9, 38368.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -130) * 1e9, 37283.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -125) * 1e9, 36198.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -120) * 1e9, 35099.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -115) * 1e9, 33970.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -110) * 1e9, 32791.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -105) * 1e9, 31550.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -100) * 1e9, 30239.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -95) * 1e9, 28874.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -90) * 1e9, 27488.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -85) * 1e9, 26140.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -80) * 1e9, 24903.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -75) * 1e9, 23854, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -70) * 1e9, 23056.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -65) * 1e9, 22546.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -60) * 1e9, 22323.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -55) * 1e9, 22346.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -50) * 1e9, 22549.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -45) * 1e9, 22860.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -40) * 1e9, 23218, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -35) * 1e9, 23584.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -30) * 1e9, 23943.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -25) * 1e9, 24289, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -20) * 1e9, 24615.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -15) * 1e9, 24908.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -10) * 1e9, 25145.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, -5) * 1e9, 25308.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 0) * 1e9, 25399.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 5) * 1e9, 25450.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 10) * 1e9, 25529.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 15) * 1e9, 25730.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 20) * 1e9, 26157.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 25) * 1e9, 26909.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 30) * 1e9, 28055.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 35) * 1e9, 29621.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 40) * 1e9, 31585.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 45) * 1e9, 33881.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 50) * 1e9, 36408.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 55) * 1e9, 39054.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 60) * 1e9, 41708.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 65) * 1e9, 44279.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 70) * 1e9, 46701, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 75) * 1e9, 48927.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 80) * 1e9, 50925.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 85) * 1e9, 52668.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 90) * 1e9, 54132.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 95) * 1e9, 55302.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 100) * 1e9, 56183.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 105) * 1e9, 56800.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 110) * 1e9, 57192.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 115) * 1e9, 57402.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 120) * 1e9, 57465.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 125) * 1e9, 57398.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 130) * 1e9, 57203.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 135) * 1e9, 56877.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 140) * 1e9, 56417.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 145) * 1e9, 55824.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 150) * 1e9, 55105, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 155) * 1e9, 54267.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 160) * 1e9, 53321.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 165) * 1e9, 52281.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 170) * 1e9, 51167.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 175) * 1e9, 50003.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 180) * 1e9, 48814, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -180) * 1e9, 46047.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -175) * 1e9, 44903.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -170) * 1e9, 43766.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -165) * 1e9, 42637.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -160) * 1e9, 41514.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -155) * 1e9, 40397.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -150) * 1e9, 39293.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -145) * 1e9, 38209.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -140) * 1e9, 37150.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -135) * 1e9, 36121, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -130) * 1e9, 35118.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -125) * 1e9, 34137.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -120) * 1e9, 33167.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -115) * 1e9, 32192.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -110) * 1e9, 31190.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -105) * 1e9, 30137.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -100) * 1e9, 29021.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -95) * 1e9, 27845.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -90) * 1e9, 26640, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -85) * 1e9, 25458.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -80) * 1e9, 24371.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -75) * 1e9, 23454.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -70) * 1e9, 22770.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -65) * 1e9, 22356.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -60) * 1e9, 22212.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -55) * 1e9, 22302.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -50) * 1e9, 22567.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -45) * 1e9, 22940, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -40) * 1e9, 23368.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -35) * 1e9, 23824.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -30) * 1e9, 24299.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -25) * 1e9, 24795, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -20) * 1e9, 25303.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -15) * 1e9, 25800, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -10) * 1e9, 26246.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, -5) * 1e9, 26602.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 0) * 1e9, 26845.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 5) * 1e9, 26988.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 10) * 1e9, 27079.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 15) * 1e9, 27205.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 20) * 1e9, 27471, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 25) * 1e9, 27988.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 30) * 1e9, 28853.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 35) * 1e9, 30126.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 40) * 1e9, 31814.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 45) * 1e9, 33867.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 50) * 1e9, 36189, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 55) * 1e9, 38658.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 60) * 1e9, 41154.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 65) * 1e9, 43575.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 70) * 1e9, 45846.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 75) * 1e9, 47916.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 80) * 1e9, 49744.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 85) * 1e9, 51297.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 90) * 1e9, 52545.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 95) * 1e9, 53474, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 100) * 1e9, 54098, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 105) * 1e9, 54461.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 110) * 1e9, 54627.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 115) * 1e9, 54658.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 120) * 1e9, 54595.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 125) * 1e9, 54452.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 130) * 1e9, 54218.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 135) * 1e9, 53875.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 140) * 1e9, 53411.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 145) * 1e9, 52823.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 150) * 1e9, 52118.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 155) * 1e9, 51303.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 160) * 1e9, 50388.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 165) * 1e9, 49384, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 170) * 1e9, 48309.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 175) * 1e9, 47188.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 180) * 1e9, 46047.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -180) * 1e9, 43227.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -175) * 1e9, 42167.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -170) * 1e9, 41119.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -165) * 1e9, 40082.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -160) * 1e9, 39052.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -155) * 1e9, 38028.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -150) * 1e9, 37015.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -145) * 1e9, 36022.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -140) * 1e9, 35057.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -135) * 1e9, 34127.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -130) * 1e9, 33234.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -125) * 1e9, 32379.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -120) * 1e9, 31553.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -115) * 1e9, 30743.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -110) * 1e9, 29925.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -105) * 1e9, 29071.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -100) * 1e9, 28161.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -95) * 1e9, 27194.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -90) * 1e9, 26191.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -85) * 1e9, 25200.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -80) * 1e9, 24281.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -75) * 1e9, 23502.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -70) * 1e9, 22921.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -65) * 1e9, 22575.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -60) * 1e9, 22470.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -55) * 1e9, 22582.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -50) * 1e9, 22866.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -45) * 1e9, 23268.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -40) * 1e9, 23745.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -35) * 1e9, 24274.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -30) * 1e9, 24852.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -25) * 1e9, 25479, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -20) * 1e9, 26144.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -15) * 1e9, 26819.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -10) * 1e9, 27451.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, -5) * 1e9, 27986.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 0) * 1e9, 28385.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 5) * 1e9, 28639, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 10) * 1e9, 28778.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 15) * 1e9, 28870.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 20) * 1e9, 29012.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 25) * 1e9, 29318.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 30) * 1e9, 29902, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 35) * 1e9, 30851.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 40) * 1e9, 32206.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 45) * 1e9, 33943.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 50) * 1e9, 35977.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 55) * 1e9, 38189.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 60) * 1e9, 40452.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 65) * 1e9, 42660.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 70) * 1e9, 44733.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 75) * 1e9, 46615.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 80) * 1e9, 48259.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 85) * 1e9, 49619.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 90) * 1e9, 50658, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 95) * 1e9, 51357.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 100) * 1e9, 51740.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 105) * 1e9, 51869, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 110) * 1e9, 51828.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 115) * 1e9, 51698.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 120) * 1e9, 51527.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 125) * 1e9, 51321, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 130) * 1e9, 51055.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 135) * 1e9, 50700, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 140) * 1e9, 50232.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 145) * 1e9, 49650.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 150) * 1e9, 48961.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 155) * 1e9, 48176.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 160) * 1e9, 47304.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 165) * 1e9, 46354.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 170) * 1e9, 45342.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 175) * 1e9, 44292, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-20, 180) * 1e9, 43227.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -180) * 1e9, 40462.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -175) * 1e9, 39516.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -170) * 1e9, 38588, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -165) * 1e9, 37674.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -160) * 1e9, 36770.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -155) * 1e9, 35875, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -150) * 1e9, 34992.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -145) * 1e9, 34131.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -140) * 1e9, 33300.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -135) * 1e9, 32507.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -130) * 1e9, 31756.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -125) * 1e9, 31050.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -120) * 1e9, 30384.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -115) * 1e9, 29746.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -110) * 1e9, 29113.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -105) * 1e9, 28458.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -100) * 1e9, 27758.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -95) * 1e9, 27006.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -90) * 1e9, 26216, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -85) * 1e9, 25421.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -80) * 1e9, 24670.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -75) * 1e9, 24019, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -70) * 1e9, 23516.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -65) * 1e9, 23199.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -60) * 1e9, 23086.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -55) * 1e9, 23172.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -50) * 1e9, 23430.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -45) * 1e9, 23826.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -40) * 1e9, 24325.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -35) * 1e9, 24907, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -30) * 1e9, 25559.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -25) * 1e9, 26278.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -20) * 1e9, 27049.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -15) * 1e9, 27837, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -10) * 1e9, 28589.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, -5) * 1e9, 29247.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 0) * 1e9, 29763, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 5) * 1e9, 30113.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 10) * 1e9, 30311.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 15) * 1e9, 30403.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 20) * 1e9, 30469, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 25) * 1e9, 30614.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 30) * 1e9, 30958.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 35) * 1e9, 31608.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 40) * 1e9, 32631.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 45) * 1e9, 34027.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 50) * 1e9, 35730.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 55) * 1e9, 37629.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 60) * 1e9, 39603.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 65) * 1e9, 41546.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 70) * 1e9, 43381.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 75) * 1e9, 45049.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 80) * 1e9, 46496.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 85) * 1e9, 47667.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 90) * 1e9, 48515.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 95) * 1e9, 49017.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 100) * 1e9, 49199.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 105) * 1e9, 49136.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 110) * 1e9, 48930.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 115) * 1e9, 48671.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 120) * 1e9, 48412.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 125) * 1e9, 48152.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 130) * 1e9, 47857.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 135) * 1e9, 47485.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 140) * 1e9, 47011, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 145) * 1e9, 46430.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 150) * 1e9, 45757.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 155) * 1e9, 45005.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 160) * 1e9, 44184.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 165) * 1e9, 43303.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 170) * 1e9, 42375.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 175) * 1e9, 41421.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-15, 180) * 1e9, 40462.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -180) * 1e9, 37908, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -175) * 1e9, 37103.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -170) * 1e9, 36321.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -165) * 1e9, 35558, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -160) * 1e9, 34808.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -155) * 1e9, 34071, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -150) * 1e9, 33351.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -145) * 1e9, 32658.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -140) * 1e9, 31998.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -135) * 1e9, 31377.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -130) * 1e9, 30799.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -125) * 1e9, 30265.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -120) * 1e9, 29773.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -115) * 1e9, 29313.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -110) * 1e9, 28866.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -105) * 1e9, 28407.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -100) * 1e9, 27913.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -95) * 1e9, 27370.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -90) * 1e9, 26783.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -85) * 1e9, 26171.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -80) * 1e9, 25569, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -75) * 1e9, 25016.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -70) * 1e9, 24557.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -65) * 1e9, 24229, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -60) * 1e9, 24061.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -55) * 1e9, 24068.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -50) * 1e9, 24252.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -45) * 1e9, 24597.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -40) * 1e9, 25079.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -35) * 1e9, 25672.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -30) * 1e9, 26356.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -25) * 1e9, 27112.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -20) * 1e9, 27917.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -15) * 1e9, 28738.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -10) * 1e9, 29528.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, -5) * 1e9, 30233, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 0) * 1e9, 30806.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 5) * 1e9, 31220.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 10) * 1e9, 31471.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 15) * 1e9, 31586, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 20) * 1e9, 31624.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 25) * 1e9, 31676.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 30) * 1e9, 31856.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 35) * 1e9, 32278.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 40) * 1e9, 33021, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 45) * 1e9, 34102.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 50) * 1e9, 35475.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 55) * 1e9, 37044.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 60) * 1e9, 38701, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 65) * 1e9, 40350.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 70) * 1e9, 41920, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 75) * 1e9, 43353.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 80) * 1e9, 44596.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 85) * 1e9, 45586.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 90) * 1e9, 46267.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 95) * 1e9, 46615.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 100) * 1e9, 46653.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 105) * 1e9, 46460, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 110) * 1e9, 46141.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 115) * 1e9, 45792.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 120) * 1e9, 45464.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 125) * 1e9, 45153.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 130) * 1e9, 44820.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 135) * 1e9, 44420.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 140) * 1e9, 43926.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 145) * 1e9, 43341, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 150) * 1e9, 42679.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 155) * 1e9, 41960.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 160) * 1e9, 41196, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 165) * 1e9, 40395.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 170) * 1e9, 39569, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 175) * 1e9, 38733.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-10, 180) * 1e9, 37908, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -180) * 1e9, 35742.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -175) * 1e9, 35100, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -170) * 1e9, 34484, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -165) * 1e9, 33888.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -160) * 1e9, 33309.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -155) * 1e9, 32749.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -150) * 1e9, 32215.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -145) * 1e9, 31714.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -140) * 1e9, 31252.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -135) * 1e9, 30830.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -130) * 1e9, 30449.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -125) * 1e9, 30107.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -120) * 1e9, 29801.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -115) * 1e9, 29524.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -110) * 1e9, 29262.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -105) * 1e9, 28993, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -100) * 1e9, 28691.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -95) * 1e9, 28339.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -90) * 1e9, 27929.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -85) * 1e9, 27468.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -80) * 1e9, 26976.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -75) * 1e9, 26485.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -70) * 1e9, 26031.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -65) * 1e9, 25654.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -60) * 1e9, 25391.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -55) * 1e9, 25278.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -50) * 1e9, 25338.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -45) * 1e9, 25579.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -40) * 1e9, 25987.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -35) * 1e9, 26536, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -30) * 1e9, 27190.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -25) * 1e9, 27918.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -20) * 1e9, 28689.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -15) * 1e9, 29471.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -10) * 1e9, 30224.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, -5) * 1e9, 30909.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 0) * 1e9, 31487.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 5) * 1e9, 31928.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 10) * 1e9, 32222, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 15) * 1e9, 32377.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 20) * 1e9, 32435, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 25) * 1e9, 32468.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 30) * 1e9, 32576.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 35) * 1e9, 32866, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 40) * 1e9, 33414.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 45) * 1e9, 34247.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 50) * 1e9, 35331, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 55) * 1e9, 36589.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 60) * 1e9, 37933.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 65) * 1e9, 39285, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 70) * 1e9, 40583.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 75) * 1e9, 41778.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 80) * 1e9, 42815.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 85) * 1e9, 43633.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 90) * 1e9, 44175.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 95) * 1e9, 44413.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 100) * 1e9, 44367.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 105) * 1e9, 44107.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 110) * 1e9, 43732.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 115) * 1e9, 43329.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 120) * 1e9, 42943.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 125) * 1e9, 42572.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 130) * 1e9, 42181.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 135) * 1e9, 41731, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 140) * 1e9, 41201.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 145) * 1e9, 40596.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 150) * 1e9, 39938.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 155) * 1e9, 39247.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 160) * 1e9, 38539.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 165) * 1e9, 37824.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 170) * 1e9, 37112.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 175) * 1e9, 36414.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-5, 180) * 1e9, 35742.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -180) * 1e9, 34124.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -175) * 1e9, 33653.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -170) * 1e9, 33210.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -165) * 1e9, 32788.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -160) * 1e9, 32384.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -155) * 1e9, 32006.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -150) * 1e9, 31663.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -145) * 1e9, 31365.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -140) * 1e9, 31115, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -135) * 1e9, 30908.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -130) * 1e9, 30738.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -125) * 1e9, 30600.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -120) * 1e9, 30490.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -115) * 1e9, 30401.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -110) * 1e9, 30322.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -105) * 1e9, 30232.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -100) * 1e9, 30104.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -95) * 1e9, 29912.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -90) * 1e9, 29640.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -85) * 1e9, 29284.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -80) * 1e9, 28858.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -75) * 1e9, 28387, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -70) * 1e9, 27904.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -65) * 1e9, 27450.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -60) * 1e9, 27068.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -55) * 1e9, 26805.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -50) * 1e9, 26706.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -45) * 1e9, 26795.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -40) * 1e9, 27073.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -35) * 1e9, 27513, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -30) * 1e9, 28074.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -25) * 1e9, 28714.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -20) * 1e9, 29397.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -15) * 1e9, 30089.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -10) * 1e9, 30763.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, -5) * 1e9, 31390, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 0) * 1e9, 31939.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 5) * 1e9, 32386.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 10) * 1e9, 32714.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 15) * 1e9, 32924.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 20) * 1e9, 33042.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 25) * 1e9, 33122.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 30) * 1e9, 33248.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 35) * 1e9, 33504.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 40) * 1e9, 33955.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 45) * 1e9, 34622.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 50) * 1e9, 35480.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 55) * 1e9, 36475.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 60) * 1e9, 37541.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 65) * 1e9, 38621, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 70) * 1e9, 39667.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 75) * 1e9, 40636.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 80) * 1e9, 41480.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 85) * 1e9, 42141.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 90) * 1e9, 42569.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 95) * 1e9, 42736.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 100) * 1e9, 42656.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 105) * 1e9, 42383.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 110) * 1e9, 41994.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 115) * 1e9, 41559.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 120) * 1e9, 41116.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 125) * 1e9, 40666, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 130) * 1e9, 40187.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 135) * 1e9, 39656.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 140) * 1e9, 39063.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 145) * 1e9, 38419.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 150) * 1e9, 37749.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 155) * 1e9, 37075.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 160) * 1e9, 36416, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 165) * 1e9, 35783.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 170) * 1e9, 35187, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 175) * 1e9, 34633.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(0, 180) * 1e9, 34124.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -180) * 1e9, 33147.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -175) * 1e9, 32841.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -170) * 1e9, 32565.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -165) * 1e9, 32308.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -160) * 1e9, 32072.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -155) * 1e9, 31869.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -150) * 1e9, 31713.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -145) * 1e9, 31615.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -140) * 1e9, 31575.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -135) * 1e9, 31586.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -130) * 1e9, 31634.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -125) * 1e9, 31707.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -120) * 1e9, 31798, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -115) * 1e9, 31899, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -110) * 1e9, 31998.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -105) * 1e9, 32074.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -100) * 1e9, 32095.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -95) * 1e9, 32030.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -90) * 1e9, 31853.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -85) * 1e9, 31558.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -80) * 1e9, 31154.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -75) * 1e9, 30665.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -70) * 1e9, 30126.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -65) * 1e9, 29577.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -60) * 1e9, 29066.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -55) * 1e9, 28648.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -50) * 1e9, 28377.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -45) * 1e9, 28291.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -40) * 1e9, 28401.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -35) * 1e9, 28685.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -30) * 1e9, 29105.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -25) * 1e9, 29615, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -20) * 1e9, 30176.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -15) * 1e9, 30759.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -10) * 1e9, 31343, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, -5) * 1e9, 31903.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 0) * 1e9, 32419.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 5) * 1e9, 32867.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 10) * 1e9, 33231, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 15) * 1e9, 33505.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 20) * 1e9, 33709.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 25) * 1e9, 33886.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 30) * 1e9, 34095.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 35) * 1e9, 34396.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 40) * 1e9, 34832.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 45) * 1e9, 35410.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 50) * 1e9, 36114, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 55) * 1e9, 36905.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 60) * 1e9, 37747.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 65) * 1e9, 38601.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 70) * 1e9, 39436.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 75) * 1e9, 40214.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 80) * 1e9, 40892.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 85) * 1e9, 41423.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 90) * 1e9, 41763.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 95) * 1e9, 41890.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 100) * 1e9, 41808.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 105) * 1e9, 41553, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 110) * 1e9, 41172.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 115) * 1e9, 40712.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 120) * 1e9, 40200.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 125) * 1e9, 39646.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 130) * 1e9, 39047.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 135) * 1e9, 38400, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 140) * 1e9, 37711.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 145) * 1e9, 37000.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 150) * 1e9, 36292.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 155) * 1e9, 35613.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 160) * 1e9, 34983.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 165) * 1e9, 34417.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 170) * 1e9, 33923.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 175) * 1e9, 33502.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(5, 180) * 1e9, 33147.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -180) * 1e9, 32830.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -175) * 1e9, 32663, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -170) * 1e9, 32532.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -165) * 1e9, 32424.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -160) * 1e9, 32341.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -155) * 1e9, 32298.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -150) * 1e9, 32316.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -145) * 1e9, 32406.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -140) * 1e9, 32569.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -135) * 1e9, 32791.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -130) * 1e9, 33052, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -125) * 1e9, 33334.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -120) * 1e9, 33624.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -115) * 1e9, 33913.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -110) * 1e9, 34184.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -105) * 1e9, 34411.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -100) * 1e9, 34559.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -95) * 1e9, 34591.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -90) * 1e9, 34477.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -85) * 1e9, 34207.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -80) * 1e9, 33792.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -75) * 1e9, 33259.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -70) * 1e9, 32643.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -65) * 1e9, 31991.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -60) * 1e9, 31355, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -55) * 1e9, 30793, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -50) * 1e9, 30364, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -45) * 1e9, 30111, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -40) * 1e9, 30049.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -35) * 1e9, 30165.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -30) * 1e9, 30424.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -25) * 1e9, 30786.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -20) * 1e9, 31218.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -15) * 1e9, 31696.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -10) * 1e9, 32200.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, -5) * 1e9, 32711.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 0) * 1e9, 33207.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 5) * 1e9, 33664.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 10) * 1e9, 34065.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 15) * 1e9, 34408.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 20) * 1e9, 34708.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 25) * 1e9, 34999.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 30) * 1e9, 35322.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 35) * 1e9, 35710.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 40) * 1e9, 36180.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 45) * 1e9, 36728.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 50) * 1e9, 37336.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 55) * 1e9, 37988.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 60) * 1e9, 38667.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 65) * 1e9, 39356.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 70) * 1e9, 40035.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 75) * 1e9, 40672.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 80) * 1e9, 41230.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 85) * 1e9, 41668, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 90) * 1e9, 41951.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 95) * 1e9, 42061.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 100) * 1e9, 41995.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 105) * 1e9, 41766.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 110) * 1e9, 41395.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 115) * 1e9, 40903.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 120) * 1e9, 40310, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 125) * 1e9, 39630.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 130) * 1e9, 38882.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 135) * 1e9, 38086.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 140) * 1e9, 37268.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 145) * 1e9, 36456.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 150) * 1e9, 35679.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 155) * 1e9, 34964.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 160) * 1e9, 34332.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 165) * 1e9, 33801.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 170) * 1e9, 33378.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 175) * 1e9, 33060.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(10, 180) * 1e9, 32830.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -180) * 1e9, 33133.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -175) * 1e9, 33065.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -170) * 1e9, 33048.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -165) * 1e9, 33065.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -160) * 1e9, 33116.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -155) * 1e9, 33219.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -150) * 1e9, 33396.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -145) * 1e9, 33659.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -140) * 1e9, 34008.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -135) * 1e9, 34424.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -130) * 1e9, 34884.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -125) * 1e9, 35364.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -120) * 1e9, 35846, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -115) * 1e9, 36312.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -110) * 1e9, 36743.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -105) * 1e9, 37107.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -100) * 1e9, 37364, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -95) * 1e9, 37471.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -90) * 1e9, 37400.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -85) * 1e9, 37137.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -80) * 1e9, 36695.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -75) * 1e9, 36103.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -70) * 1e9, 35404.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -65) * 1e9, 34650.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -60) * 1e9, 33899.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -55) * 1e9, 33215.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -50) * 1e9, 32658.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -45) * 1e9, 32268.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -40) * 1e9, 32062.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -35) * 1e9, 32028.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -30) * 1e9, 32139, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -25) * 1e9, 32363.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -20) * 1e9, 32677.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -15) * 1e9, 33064.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -10) * 1e9, 33508.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, -5) * 1e9, 33989.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 0) * 1e9, 34480.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 5) * 1e9, 34956.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 10) * 1e9, 35397.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 15) * 1e9, 35802.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 20) * 1e9, 36188.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 25) * 1e9, 36583.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 30) * 1e9, 37012.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 35) * 1e9, 37489.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 40) * 1e9, 38008.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 45) * 1e9, 38555.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 50) * 1e9, 39116.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 55) * 1e9, 39684.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 60) * 1e9, 40263, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 65) * 1e9, 40850, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 70) * 1e9, 41434.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 75) * 1e9, 41989.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 80) * 1e9, 42481.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 85) * 1e9, 42872.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 90) * 1e9, 43135.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 95) * 1e9, 43251.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 100) * 1e9, 43208.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 105) * 1e9, 43003.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 110) * 1e9, 42632.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 115) * 1e9, 42099.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 120) * 1e9, 41414.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 125) * 1e9, 40599.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 130) * 1e9, 39690, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 135) * 1e9, 38726.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 140) * 1e9, 37753.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 145) * 1e9, 36810.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 150) * 1e9, 35932.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 155) * 1e9, 35146.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 160) * 1e9, 34477.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 165) * 1e9, 33940.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 170) * 1e9, 33544.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 175) * 1e9, 33282.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(15, 180) * 1e9, 33133.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -180) * 1e9, 33999.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -175) * 1e9, 33986.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -170) * 1e9, 34045.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -165) * 1e9, 34159.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -160) * 1e9, 34326.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -155) * 1e9, 34560.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -150) * 1e9, 34882.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -145) * 1e9, 35301.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -140) * 1e9, 35815.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -135) * 1e9, 36404.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -130) * 1e9, 37040.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -125) * 1e9, 37695.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -120) * 1e9, 38346.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -115) * 1e9, 38970.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -110) * 1e9, 39541.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -105) * 1e9, 40023.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -100) * 1e9, 40372.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -95) * 1e9, 40544.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -90) * 1e9, 40507, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -85) * 1e9, 40247.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -80) * 1e9, 39778.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -75) * 1e9, 39131.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -70) * 1e9, 38355, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -65) * 1e9, 37509.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -60) * 1e9, 36663, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -55) * 1e9, 35882.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -50) * 1e9, 35227.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -45) * 1e9, 34736.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -40) * 1e9, 34421, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -35) * 1e9, 34270.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -30) * 1e9, 34261.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -25) * 1e9, 34372.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -20) * 1e9, 34588.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -15) * 1e9, 34900.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -10) * 1e9, 35297.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, -5) * 1e9, 35757.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 0) * 1e9, 36250.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 5) * 1e9, 36744.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 10) * 1e9, 37218.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 15) * 1e9, 37670.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 20) * 1e9, 38119, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 25) * 1e9, 38586.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 30) * 1e9, 39089.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 35) * 1e9, 39628.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 40) * 1e9, 40188.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 45) * 1e9, 40746.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 50) * 1e9, 41291.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 55) * 1e9, 41826.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 60) * 1e9, 42362.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 65) * 1e9, 42908.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 70) * 1e9, 43458.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 75) * 1e9, 43989.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 80) * 1e9, 44468, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 85) * 1e9, 44860.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 90) * 1e9, 45137.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 95) * 1e9, 45279.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 100) * 1e9, 45265.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 105) * 1e9, 45078.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 110) * 1e9, 44700.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 115) * 1e9, 44121.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 120) * 1e9, 43347.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 125) * 1e9, 42405.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 130) * 1e9, 41341.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 135) * 1e9, 40213.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 140) * 1e9, 39079.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 145) * 1e9, 37992.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 150) * 1e9, 36992.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 155) * 1e9, 36109.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 160) * 1e9, 35369.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 165) * 1e9, 34788.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 170) * 1e9, 34373.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 175) * 1e9, 34117.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(20, 180) * 1e9, 33999.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -180) * 1e9, 35378.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -175) * 1e9, 35376.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -170) * 1e9, 35477.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -165) * 1e9, 35661.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -160) * 1e9, 35925, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -155) * 1e9, 36276.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -150) * 1e9, 36729.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -145) * 1e9, 37287.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -140) * 1e9, 37944.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -135) * 1e9, 38677.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -130) * 1e9, 39457.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -125) * 1e9, 40254.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -120) * 1e9, 41040.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -115) * 1e9, 41788.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -110) * 1e9, 42469.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -105) * 1e9, 43043.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -100) * 1e9, 43465.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -95) * 1e9, 43689.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -90) * 1e9, 43682.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -85) * 1e9, 43430.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -80) * 1e9, 42944.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -75) * 1e9, 42258.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -70) * 1e9, 41425.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -65) * 1e9, 40511.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -60) * 1e9, 39591.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -55) * 1e9, 38738.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -50) * 1e9, 38010.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -45) * 1e9, 37443.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -40) * 1e9, 37046.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -35) * 1e9, 36807.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -30) * 1e9, 36706.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -25) * 1e9, 36726.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -20) * 1e9, 36861.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -15) * 1e9, 37109.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -10) * 1e9, 37460.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, -5) * 1e9, 37895.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 0) * 1e9, 38379.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 5) * 1e9, 38879.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 10) * 1e9, 39370, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 15) * 1e9, 39848.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 20) * 1e9, 40328.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 25) * 1e9, 40830.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 30) * 1e9, 41367.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 35) * 1e9, 41935.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 40) * 1e9, 42515.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 45) * 1e9, 43088.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 50) * 1e9, 43643.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 55) * 1e9, 44187.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 60) * 1e9, 44734, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 65) * 1e9, 45293.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 70) * 1e9, 45861.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 75) * 1e9, 46417.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 80) * 1e9, 46928.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 85) * 1e9, 47359, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 90) * 1e9, 47678.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 95) * 1e9, 47861.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 100) * 1e9, 47880.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 105) * 1e9, 47709.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 110) * 1e9, 47322.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 115) * 1e9, 46703.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 120) * 1e9, 45856.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 125) * 1e9, 44811.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 130) * 1e9, 43621.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 135) * 1e9, 42354.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 140) * 1e9, 41080.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 145) * 1e9, 39858.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 150) * 1e9, 38737.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 155) * 1e9, 37750.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 160) * 1e9, 36922.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 165) * 1e9, 36270.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 170) * 1e9, 35801.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 175) * 1e9, 35510.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(25, 180) * 1e9, 35378.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -180) * 1e9, 37233.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -175) * 1e9, 37213.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -170) * 1e9, 37327, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -165) * 1e9, 37557.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -160) * 1e9, 37897.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -155) * 1e9, 38349.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -150) * 1e9, 38915.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -145) * 1e9, 39591.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -140) * 1e9, 40364.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -135) * 1e9, 41208.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -130) * 1e9, 42093.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -125) * 1e9, 42989.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -120) * 1e9, 43866, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -115) * 1e9, 44695.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -110) * 1e9, 45444.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -105) * 1e9, 46074, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -100) * 1e9, 46539.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -95) * 1e9, 46797.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -90) * 1e9, 46814.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -85) * 1e9, 46574.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -80) * 1e9, 46086.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -75) * 1e9, 45384.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -70) * 1e9, 44522.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -65) * 1e9, 43569.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -60) * 1e9, 42604.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -55) * 1e9, 41701.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -50) * 1e9, 40918.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -45) * 1e9, 40290.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -40) * 1e9, 39823.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -35) * 1e9, 39509, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -30) * 1e9, 39329.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -25) * 1e9, 39272.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -20) * 1e9, 39336, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -15) * 1e9, 39520, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -10) * 1e9, 39818.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, -5) * 1e9, 40211.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 0) * 1e9, 40667.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 5) * 1e9, 41150.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 10) * 1e9, 41634.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 15) * 1e9, 42114, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 20) * 1e9, 42597.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 25) * 1e9, 43102.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 30) * 1e9, 43640.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 35) * 1e9, 44208.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 40) * 1e9, 44795.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 45) * 1e9, 45385.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 50) * 1e9, 45971.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 55) * 1e9, 46559.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 60) * 1e9, 47158.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 65) * 1e9, 47776.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 70) * 1e9, 48405.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 75) * 1e9, 49022.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 80) * 1e9, 49595.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 85) * 1e9, 50087.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 90) * 1e9, 50464.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 95) * 1e9, 50695.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 100) * 1e9, 50748.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 105) * 1e9, 50592.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 110) * 1e9, 50199.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 115) * 1e9, 49553.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 120) * 1e9, 48658.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 125) * 1e9, 47548.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 130) * 1e9, 46278.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 135) * 1e9, 44919.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 140) * 1e9, 43547.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 145) * 1e9, 42227.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 150) * 1e9, 41011.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 155) * 1e9, 39935.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 160) * 1e9, 39024.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 165) * 1e9, 38296.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 170) * 1e9, 37758.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 175) * 1e9, 37408.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(30, 180) * 1e9, 37233.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -180) * 1e9, 39533.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -175) * 1e9, 39482, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -170) * 1e9, 39590.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -165) * 1e9, 39846.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -160) * 1e9, 40241.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -155) * 1e9, 40768.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -150) * 1e9, 41420, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -145) * 1e9, 42183.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -140) * 1e9, 43036.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -135) * 1e9, 43951.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -130) * 1e9, 44897.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -125) * 1e9, 45843, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -120) * 1e9, 46759.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -115) * 1e9, 47617.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -110) * 1e9, 48386.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -105) * 1e9, 49028, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -100) * 1e9, 49501.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -95) * 1e9, 49766.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -90) * 1e9, 49792.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -85) * 1e9, 49562.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -80) * 1e9, 49085.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -75) * 1e9, 48389.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -70) * 1e9, 47528.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -65) * 1e9, 46570.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -60) * 1e9, 45590.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -55) * 1e9, 44660.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -50) * 1e9, 43837.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -45) * 1e9, 43154.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -40) * 1e9, 42623, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -35) * 1e9, 42235.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -30) * 1e9, 41981.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -25) * 1e9, 41851, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -20) * 1e9, 41843.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -15) * 1e9, 41958.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -10) * 1e9, 42191.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, -5) * 1e9, 42523.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 0) * 1e9, 42926.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 5) * 1e9, 43366.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 10) * 1e9, 43819.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 15) * 1e9, 44275.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 20) * 1e9, 44740.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 25) * 1e9, 45227.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 30) * 1e9, 45747.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 35) * 1e9, 46304.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 40) * 1e9, 46893.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 45) * 1e9, 47506.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 50) * 1e9, 48139.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 55) * 1e9, 48794.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 60) * 1e9, 49475.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 65) * 1e9, 50179.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 70) * 1e9, 50894.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 75) * 1e9, 51593.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 80) * 1e9, 52242.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 85) * 1e9, 52803.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 90) * 1e9, 53240, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 95) * 1e9, 53516.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 100) * 1e9, 53598.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 105) * 1e9, 53456.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 110) * 1e9, 53064.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 115) * 1e9, 52408.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 120) * 1e9, 51499.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 125) * 1e9, 50368.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 130) * 1e9, 49072.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 135) * 1e9, 47682.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 140) * 1e9, 46273, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 145) * 1e9, 44909.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 150) * 1e9, 43645, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 155) * 1e9, 42517.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 160) * 1e9, 41552.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 165) * 1e9, 40765.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 170) * 1e9, 40167.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 175) * 1e9, 39758, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(35, 180) * 1e9, 39533.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -180) * 1e9, 42226.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -175) * 1e9, 42146.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -170) * 1e9, 42243.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -165) * 1e9, 42506.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -160) * 1e9, 42928.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -155) * 1e9, 43495.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -150) * 1e9, 44191.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -145) * 1e9, 44997.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -140) * 1e9, 45883.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -135) * 1e9, 46820, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -130) * 1e9, 47774.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -125) * 1e9, 48717.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -120) * 1e9, 49620.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -115) * 1e9, 50455.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -110) * 1e9, 51193.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -105) * 1e9, 51802, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -100) * 1e9, 52244.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -95) * 1e9, 52487.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -90) * 1e9, 52502.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -85) * 1e9, 52276.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -80) * 1e9, 51815.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -75) * 1e9, 51145.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -70) * 1e9, 50312.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -65) * 1e9, 49379.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -60) * 1e9, 48414.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -55) * 1e9, 47483.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -50) * 1e9, 46637.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -45) * 1e9, 45912, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -40) * 1e9, 45320.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -35) * 1e9, 44863.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -30) * 1e9, 44535.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -25) * 1e9, 44330.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -20) * 1e9, 44247.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -15) * 1e9, 44286.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -10) * 1e9, 44440.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -5) * 1e9, 44694, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 0) * 1e9, 45022.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 5) * 1e9, 45397.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 10) * 1e9, 45798, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 15) * 1e9, 46213.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 20) * 1e9, 46646, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 25) * 1e9, 47106.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 30) * 1e9, 47605.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 35) * 1e9, 48152.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 40) * 1e9, 48748.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 45) * 1e9, 49391.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 50) * 1e9, 50081.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 55) * 1e9, 50814.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 60) * 1e9, 51585.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 65) * 1e9, 52384.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 70) * 1e9, 53189.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 75) * 1e9, 53971.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 80) * 1e9, 54694, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 85) * 1e9, 55316.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 90) * 1e9, 55801.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 95) * 1e9, 56113.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 100) * 1e9, 56218.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 105) * 1e9, 56089.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 110) * 1e9, 55706.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 115) * 1e9, 55063.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 120) * 1e9, 54172, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 125) * 1e9, 53067.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 130) * 1e9, 51804.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 135) * 1e9, 50447.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 140) * 1e9, 49066.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 145) * 1e9, 47724.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 150) * 1e9, 46471.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 155) * 1e9, 45345, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 160) * 1e9, 44370, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 165) * 1e9, 43562.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 170) * 1e9, 42933.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 175) * 1e9, 42487.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, 180) * 1e9, 42226.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -180) * 1e9, 45210.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -175) * 1e9, 45116.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -170) * 1e9, 45198.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -165) * 1e9, 45452.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -160) * 1e9, 45867.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -155) * 1e9, 46430.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -150) * 1e9, 47119.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -145) * 1e9, 47908.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -140) * 1e9, 48769.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -135) * 1e9, 49669.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -130) * 1e9, 50576.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -125) * 1e9, 51462, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -120) * 1e9, 52299.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -115) * 1e9, 53062.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -110) * 1e9, 53726.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -105) * 1e9, 54261.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -100) * 1e9, 54640.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -95) * 1e9, 54834.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -90) * 1e9, 54822.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -85) * 1e9, 54593.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -80) * 1e9, 54152.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -75) * 1e9, 53522.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -70) * 1e9, 52741.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -65) * 1e9, 51861.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -60) * 1e9, 50940.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -55) * 1e9, 50034.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -50) * 1e9, 49190.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -45) * 1e9, 48441.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -40) * 1e9, 47805, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -35) * 1e9, 47288.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -30) * 1e9, 46891.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -25) * 1e9, 46614.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -20) * 1e9, 46455.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -15) * 1e9, 46412.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -10) * 1e9, 46479.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, -5) * 1e9, 46643.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 0) * 1e9, 46884, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 5) * 1e9, 47180.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 10) * 1e9, 47516.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 15) * 1e9, 47882.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 20) * 1e9, 48278.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 25) * 1e9, 48713.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 30) * 1e9, 49199.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 35) * 1e9, 49744.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 40) * 1e9, 50355.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 45) * 1e9, 51034.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 50) * 1e9, 51779, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 55) * 1e9, 52582.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 60) * 1e9, 53433.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 65) * 1e9, 54311.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 70) * 1e9, 55190.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 75) * 1e9, 56037, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 80) * 1e9, 56811.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 85) * 1e9, 57476, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 90) * 1e9, 57991.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 95) * 1e9, 58324.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 100) * 1e9, 58444.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 105) * 1e9, 58331.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 110) * 1e9, 57970, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 115) * 1e9, 57362.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 120) * 1e9, 56525.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 125) * 1e9, 55493.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 130) * 1e9, 54316.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 135) * 1e9, 53053.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 140) * 1e9, 51765.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 145) * 1e9, 50509.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 150) * 1e9, 49329.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 155) * 1e9, 48261.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 160) * 1e9, 47329.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 165) * 1e9, 46548.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 170) * 1e9, 45930.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 175) * 1e9, 45482.7, 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, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -175) * 1e9, 48218, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -170) * 1e9, 48284.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -165) * 1e9, 48509.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -160) * 1e9, 48884.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -155) * 1e9, 49394.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -150) * 1e9, 50018.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -145) * 1e9, 50731.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -140) * 1e9, 51503.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -135) * 1e9, 52306.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -130) * 1e9, 53109.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -125) * 1e9, 53885.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -120) * 1e9, 54611.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -115) * 1e9, 55263.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -110) * 1e9, 55818.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -105) * 1e9, 56253.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -100) * 1e9, 56547, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -95) * 1e9, 56677.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -90) * 1e9, 56629.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -85) * 1e9, 56395.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -80) * 1e9, 55980.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -75) * 1e9, 55403.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -70) * 1e9, 54693.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -65) * 1e9, 53890.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -60) * 1e9, 53041.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -55) * 1e9, 52191.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -50) * 1e9, 51378.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -45) * 1e9, 50634.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -40) * 1e9, 49979.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -35) * 1e9, 49425.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -30) * 1e9, 48977, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -25) * 1e9, 48638, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -20) * 1e9, 48408.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -15) * 1e9, 48287.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -10) * 1e9, 48268.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, -5) * 1e9, 48341.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 0) * 1e9, 48493.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 5) * 1e9, 48710.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 10) * 1e9, 48980.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 15) * 1e9, 49296.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 20) * 1e9, 49659.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 25) * 1e9, 50076.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 30) * 1e9, 50555.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 35) * 1e9, 51107.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 40) * 1e9, 51737.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 45) * 1e9, 52446.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 50) * 1e9, 53231.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 55) * 1e9, 54082.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 60) * 1e9, 54980.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 65) * 1e9, 55903.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 70) * 1e9, 56819.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 75) * 1e9, 57693.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 80) * 1e9, 58487.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 85) * 1e9, 59162.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 90) * 1e9, 59685.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 95) * 1e9, 60024.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 100) * 1e9, 60155.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 105) * 1e9, 60063.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 110) * 1e9, 59741.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 115) * 1e9, 59196.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 120) * 1e9, 58449.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 125) * 1e9, 57532, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 130) * 1e9, 56489.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 135) * 1e9, 55371.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 140) * 1e9, 54231, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 145) * 1e9, 53114.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 150) * 1e9, 52062.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 155) * 1e9, 51104.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 160) * 1e9, 50263.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 165) * 1e9, 49553.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 170) * 1e9, 48987, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 175) * 1e9, 48571.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(50, 180) * 1e9, 48314, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -180) * 1e9, 51301.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -175) * 1e9, 51209.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -170) * 1e9, 51253.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -165) * 1e9, 51431.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -160) * 1e9, 51734.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -155) * 1e9, 52150.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -150) * 1e9, 52660.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -145) * 1e9, 53243.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -140) * 1e9, 53874.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -135) * 1e9, 54528, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -130) * 1e9, 55179.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -125) * 1e9, 55805.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -120) * 1e9, 56384.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -115) * 1e9, 56896.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -110) * 1e9, 57322.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -105) * 1e9, 57643.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -100) * 1e9, 57843.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -95) * 1e9, 57907.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -90) * 1e9, 57824.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -85) * 1e9, 57591, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -80) * 1e9, 57211.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -75) * 1e9, 56698.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -70) * 1e9, 56075.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -65) * 1e9, 55371.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -60) * 1e9, 54619.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -55) * 1e9, 53854.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -50) * 1e9, 53107.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -45) * 1e9, 52405.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -40) * 1e9, 51767.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -35) * 1e9, 51207.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -30) * 1e9, 50736.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -25) * 1e9, 50359.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -20) * 1e9, 50078.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -15) * 1e9, 49893.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -10) * 1e9, 49802.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -5) * 1e9, 49798.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 0) * 1e9, 49874, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 5) * 1e9, 50020.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 10) * 1e9, 50232.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 15) * 1e9, 50505.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 20) * 1e9, 50842, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 25) * 1e9, 51245.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 30) * 1e9, 51722.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 35) * 1e9, 52278.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 40) * 1e9, 52917.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 45) * 1e9, 53638.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 50) * 1e9, 54434.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 55) * 1e9, 55292.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 60) * 1e9, 56193.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 65) * 1e9, 57110.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 70) * 1e9, 58012.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 75) * 1e9, 58866.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 80) * 1e9, 59636.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 85) * 1e9, 60289.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 90) * 1e9, 60794.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 95) * 1e9, 61126.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 100) * 1e9, 61267, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 105) * 1e9, 61206.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 110) * 1e9, 60943.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 115) * 1e9, 60488.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 120) * 1e9, 59863.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 125) * 1e9, 59096, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 130) * 1e9, 58224.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 135) * 1e9, 57291.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 140) * 1e9, 56336.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 145) * 1e9, 55399.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 150) * 1e9, 54512.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 155) * 1e9, 53701.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 160) * 1e9, 52985.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 165) * 1e9, 52378.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 170) * 1e9, 51890.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 175) * 1e9, 51529.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 180) * 1e9, 51301.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -180) * 1e9, 53916.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -175) * 1e9, 53824.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -170) * 1e9, 53836.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -165) * 1e9, 53951.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -160) * 1e9, 54161.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -155) * 1e9, 54455.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -150) * 1e9, 54822.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -145) * 1e9, 55243.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -140) * 1e9, 55700.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -135) * 1e9, 56175.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -130) * 1e9, 56648.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -125) * 1e9, 57100, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -120) * 1e9, 57513.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -115) * 1e9, 57872.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -110) * 1e9, 58161.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -105) * 1e9, 58367.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -100) * 1e9, 58477.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -95) * 1e9, 58480.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -90) * 1e9, 58371.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -85) * 1e9, 58147.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -80) * 1e9, 57812.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -75) * 1e9, 57375.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -70) * 1e9, 56851.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -65) * 1e9, 56261.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -60) * 1e9, 55627.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -55) * 1e9, 54974.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -50) * 1e9, 54326.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -45) * 1e9, 53702.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -40) * 1e9, 53121.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -35) * 1e9, 52597.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -30) * 1e9, 52141.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -25) * 1e9, 51760.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -20) * 1e9, 51459.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -15) * 1e9, 51240.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -10) * 1e9, 51104.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, -5) * 1e9, 51049.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 0) * 1e9, 51071.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 5) * 1e9, 51168.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 10) * 1e9, 51337.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 15) * 1e9, 51577.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 20) * 1e9, 51890.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 25) * 1e9, 52277.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 30) * 1e9, 52743.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 35) * 1e9, 53288.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 40) * 1e9, 53912.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 45) * 1e9, 54611.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 50) * 1e9, 55376.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 55) * 1e9, 56192.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 60) * 1e9, 57039.9, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 65) * 1e9, 57894.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 70) * 1e9, 58728.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 75) * 1e9, 59511.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 80) * 1e9, 60215.8, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 85) * 1e9, 60812.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 90) * 1e9, 61276.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 95) * 1e9, 61590.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 100) * 1e9, 61740, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 105) * 1e9, 61720.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 110) * 1e9, 61534.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 115) * 1e9, 61192.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 120) * 1e9, 60712.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 125) * 1e9, 60119.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 130) * 1e9, 59443.1, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 135) * 1e9, 58715.2, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 140) * 1e9, 57967.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 145) * 1e9, 57229.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 150) * 1e9, 56526.4, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 155) * 1e9, 55879.3, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 160) * 1e9, 55304, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 165) * 1e9, 54812.6, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 170) * 1e9, 54413.7, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 175) * 1e9, 54113.5, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(60, 180) * 1e9, 53916.3, 145 + 500);
}