Files
PX4-Autopilot/src/lib/world_magnetic_model/test_geo_lookup.cpp
T

5089 lines
350 KiB
C++

/****************************************************************************
*
* Copyright (c) 2020-2023 PX4 Development Team. 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 PX4 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_mag_declination.h"
TEST(GeoLookupTest, declination)
{
EXPECT_NEAR(get_mag_declination_degrees(-50, -180), 31.6, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -175), 31.8, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -170), 31.8, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -165), 31.7, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -160), 31.4, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -155), 31.2, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -150), 30.9, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -145), 30.6, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -140), 30.4, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -135), 30.3, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -130), 30.2, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -125), 30.1, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -120), 30.0, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -115), 29.7, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -110), 29.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -105), 28.4, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -100), 27.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -95), 25.6, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -90), 23.4, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -85), 20.7, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -80), 17.6, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -75), 14.0, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -70), 10.3, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -65), 6.4, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -60), 2.6, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -55), -0.9, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -50), -4.1, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -45), -6.8, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -40), -9.0, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -35), -10.7, 0.48 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -30), -12.1, 0.49 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -25), -13.3, 0.51 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -20), -14.3, 0.52 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -15), -15.5, 0.53 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -10), -16.9, 0.53 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, -5), -18.7, 0.53 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 0), -20.9, 0.53 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 5), -23.7, 0.52 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 10), -26.9, 0.51 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 15), -30.4, 0.49 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 20), -34.1, 0.47 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 25), -37.9, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 30), -41.5, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 35), -44.9, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 40), -48.1, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 45), -50.8, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 50), -53.2, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 55), -55.1, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 60), -56.6, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 65), -57.5, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 70), -57.9, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 75), -57.6, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 80), -56.7, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 85), -54.9, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 90), -52.3, 0.47 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 95), -48.5, 0.50 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 100), -43.6, 0.52 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 105), -37.3, 0.55 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 110), -30.0, 0.57 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 115), -21.8, 0.59 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 120), -13.3, 0.59 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 125), -5.1, 0.59 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 130), 2.5, 0.57 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 135), 9.0, 0.55 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 140), 14.6, 0.52 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 145), 19.1, 0.50 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 150), 22.7, 0.48 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 155), 25.6, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 160), 27.7, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 165), 29.3, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 170), 30.4, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 175), 31.2, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-50, 180), 31.6, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -180), 26.6, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -175), 26.9, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -170), 27.1, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -165), 27.0, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -160), 26.9, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -155), 26.8, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -150), 26.5, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -145), 26.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -140), 26.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -135), 26.1, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -130), 26.0, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -125), 26.0, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -120), 26.0, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -115), 26.0, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -110), 25.8, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -105), 25.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -100), 24.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -95), 22.9, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -90), 20.9, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -85), 18.3, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -80), 15.0, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -75), 11.3, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -70), 7.2, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -65), 2.9, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -60), -1.2, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -55), -5.0, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -50), -8.4, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -45), -11.1, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -40), -13.3, 0.48 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -35), -14.9, 0.50 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -30), -16.0, 0.52 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -25), -16.8, 0.53 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -20), -17.5, 0.55 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -15), -18.1, 0.57 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -10), -18.8, 0.58 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, -5), -19.9, 0.59 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 0), -21.5, 0.58 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 5), -23.7, 0.57 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 10), -26.5, 0.56 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 15), -29.7, 0.53 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 20), -33.2, 0.51 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 25), -36.7, 0.49 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 30), -40.1, 0.47 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 35), -43.2, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 40), -46.0, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 45), -48.2, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 50), -50.0, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 55), -51.3, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 60), -51.9, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 65), -51.9, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 70), -51.3, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 75), -49.9, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 80), -47.7, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 85), -44.7, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 90), -40.8, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 95), -36.1, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 100), -30.6, 0.47 + 1.8);
EXPECT_NEAR(get_mag_declination_degrees(-45, 105), -24.6, 0.48 + 1.8);
EXPECT_NEAR(get_mag_declination_degrees(-45, 110), -18.4, 0.48 + 1.8);
EXPECT_NEAR(get_mag_declination_degrees(-45, 115), -12.2, 0.48 + 1.8);
EXPECT_NEAR(get_mag_declination_degrees(-45, 120), -6.4, 0.47 + 1.8);
EXPECT_NEAR(get_mag_declination_degrees(-45, 125), -1.1, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 130), 3.8, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 135), 8.2, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 140), 12.0, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 145), 15.4, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 150), 18.3, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 155), 20.7, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 160), 22.7, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 165), 24.2, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 170), 25.3, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 175), 26.1, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-45, 180), 26.6, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -180), 22.8, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -175), 23.1, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -170), 23.3, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -165), 23.4, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -160), 23.3, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -155), 23.2, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -150), 23.0, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -145), 22.8, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -140), 22.7, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -135), 22.5, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -130), 22.4, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -125), 22.4, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -120), 22.5, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -115), 22.5, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -110), 22.4, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -105), 22.1, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -100), 21.4, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -95), 20.1, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -90), 18.2, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -85), 15.6, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -80), 12.3, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -75), 8.4, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -70), 4.0, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -65), -0.5, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -60), -4.9, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -55), -8.9, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -50), -12.4, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -45), -15.1, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -40), -17.2, 0.48 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -35), -18.7, 0.50 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -30), -19.6, 0.52 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -25), -20.3, 0.55 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -20), -20.6, 0.57 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -15), -20.8, 0.60 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -10), -20.9, 0.62 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, -5), -21.2, 0.63 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 0), -21.9, 0.63 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 5), -23.3, 0.62 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 10), -25.4, 0.61 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 15), -28.1, 0.58 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 20), -31.2, 0.55 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 25), -34.4, 0.52 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 30), -37.5, 0.49 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 35), -40.2, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 40), -42.5, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 45), -44.3, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 50), -45.6, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 55), -46.1, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 60), -46.1, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 65), -45.3, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 70), -43.8, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 75), -41.5, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 80), -38.6, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 85), -34.9, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 90), -30.6, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 95), -25.8, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 100), -20.8, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 105), -15.8, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 110), -11.1, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 115), -6.8, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 120), -2.8, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 125), 0.8, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 130), 4.2, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 135), 7.3, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 140), 10.2, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 145), 12.8, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 150), 15.2, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 155), 17.2, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 160), 19.0, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 165), 20.4, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 170), 21.5, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 175), 22.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-40, 180), 22.8, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -180), 19.7, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -175), 20.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -170), 20.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -165), 20.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -160), 20.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -155), 20.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -150), 20.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -145), 20.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -140), 19.8, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -135), 19.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -130), 19.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -125), 19.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -120), 19.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -115), 19.2, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -110), 19.2, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -105), 18.9, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -100), 18.4, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -95), 17.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -90), 15.5, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -85), 12.9, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -80), 9.5, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -75), 5.4, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -70), 0.9, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -65), -3.8, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -60), -8.3, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -55), -12.4, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -50), -15.7, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -45), -18.4, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -40), -20.3, 0.48 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -35), -21.6, 0.50 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -30), -22.5, 0.52 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -25), -23.0, 0.54 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -20), -23.2, 0.57 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -15), -23.0, 0.60 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -10), -22.6, 0.62 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, -5), -22.1, 0.65 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 0), -21.9, 0.66 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 5), -22.2, 0.66 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 10), -23.3, 0.64 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 15), -25.2, 0.61 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 20), -27.6, 0.58 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 25), -30.4, 0.54 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 30), -33.0, 0.50 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 35), -35.4, 0.47 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 40), -37.4, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 45), -38.8, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 50), -39.6, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 55), -39.7, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 60), -39.1, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 65), -37.8, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 70), -35.8, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 75), -33.1, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 80), -29.9, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 85), -26.2, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 90), -22.1, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 95), -17.9, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 100), -13.7, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 105), -9.9, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 110), -6.4, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 115), -3.4, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 120), -0.7, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 125), 1.8, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 130), 4.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 135), 6.5, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 140), 8.7, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 145), 10.8, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 150), 12.8, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 155), 14.6, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 160), 16.2, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 165), 17.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 170), 18.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 175), 19.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-35, 180), 19.7, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -180), 17.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -175), 17.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -170), 17.7, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -165), 17.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -160), 17.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -155), 17.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -150), 17.7, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -145), 17.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -140), 17.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -135), 17.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -130), 16.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -125), 16.7, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -120), 16.5, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -115), 16.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -110), 16.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -105), 16.1, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -100), 15.6, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -95), 14.5, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -90), 12.8, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -85), 10.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -80), 6.8, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -75), 2.6, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -70), -2.0, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -65), -6.7, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -60), -11.2, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -55), -15.1, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -50), -18.3, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -45), -20.7, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -40), -22.4, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -35), -23.5, 0.48 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -30), -24.3, 0.50 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -25), -24.6, 0.52 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -20), -24.6, 0.55 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -15), -24.1, 0.57 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -10), -23.3, 0.60 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, -5), -22.0, 0.63 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 0), -20.7, 0.64 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 5), -19.8, 0.65 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 10), -19.7, 0.63 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 15), -20.5, 0.61 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 20), -22.1, 0.58 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 25), -24.2, 0.54 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 30), -26.5, 0.50 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 35), -28.7, 0.47 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 40), -30.5, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 45), -31.7, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 50), -32.3, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 55), -32.3, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 60), -31.5, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 65), -30.1, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 70), -28.0, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 75), -25.4, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 80), -22.4, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 85), -19.1, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 90), -15.5, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 95), -12.0, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 100), -8.7, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 105), -5.8, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 110), -3.4, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 115), -1.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 120), 0.5, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 125), 2.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 130), 3.9, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 135), 5.7, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 140), 7.5, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 145), 9.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 150), 11.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 155), 12.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 160), 13.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 165), 15.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 170), 16.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 175), 16.7, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-30, 180), 17.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -180), 15.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -175), 15.4, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -170), 15.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -165), 15.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -160), 15.7, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -155), 15.7, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -150), 15.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -145), 15.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -140), 15.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -135), 15.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -130), 14.7, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -125), 14.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -120), 14.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -115), 14.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -110), 13.9, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -105), 13.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -100), 13.1, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -95), 12.1, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -90), 10.3, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -85), 7.7, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -80), 4.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -75), 0.0, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -70), -4.6, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -65), -9.2, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -60), -13.5, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -55), -17.1, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -50), -20.0, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -45), -22.2, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -40), -23.6, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -35), -24.5, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -30), -24.9, 0.47 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -25), -25.0, 0.49 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -20), -24.6, 0.51 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -15), -23.7, 0.53 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -10), -22.3, 0.55 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, -5), -20.4, 0.57 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 0), -18.2, 0.59 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 5), -16.3, 0.59 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 10), -15.0, 0.58 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 15), -14.7, 0.57 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 20), -15.3, 0.54 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 25), -16.8, 0.51 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 30), -18.7, 0.48 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 35), -20.7, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 40), -22.6, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 45), -23.9, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 50), -24.7, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 55), -24.8, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 60), -24.2, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 65), -22.9, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 70), -21.2, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 75), -19.0, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 80), -16.4, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 85), -13.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 90), -10.7, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 95), -7.8, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 100), -5.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 105), -3.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 110), -1.4, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 115), -0.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 120), 1.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 125), 2.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 130), 3.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 135), 4.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 140), 6.4, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 145), 8.0, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 150), 9.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 155), 10.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 160), 12.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 165), 13.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 170), 14.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 175), 14.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-25, 180), 15.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -180), 13.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -175), 13.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -170), 13.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -165), 13.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -160), 13.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -155), 13.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -150), 13.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -145), 13.7, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -140), 13.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -135), 13.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -130), 13.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -125), 12.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -120), 12.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -115), 12.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -110), 11.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -105), 11.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -100), 11.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -95), 9.9, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -90), 8.1, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -85), 5.5, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -80), 2.0, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -75), -2.1, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -70), -6.6, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -65), -11.0, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -60), -15.1, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -55), -18.4, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -50), -21.0, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -45), -22.8, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -40), -23.9, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -35), -24.4, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -30), -24.5, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -25), -24.0, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -20), -23.2, 0.47 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -15), -21.8, 0.48 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -10), -19.8, 0.49 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, -5), -17.4, 0.50 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 0), -14.9, 0.51 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 5), -12.4, 0.51 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 10), -10.4, 0.51 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 15), -9.3, 0.49 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 20), -9.1, 0.48 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 25), -9.9, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 30), -11.3, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 35), -13.2, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 40), -15.1, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 45), -16.6, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 50), -17.6, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 55), -18.0, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 60), -17.7, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 65), -16.9, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 70), -15.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 75), -13.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 80), -11.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 85), -9.7, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 90), -7.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 95), -4.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 100), -2.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 105), -1.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 110), -0.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 115), 0.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 120), 1.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 125), 2.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 130), 3.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 135), 4.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 140), 5.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 145), 6.9, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 150), 8.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 155), 9.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 160), 10.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 165), 11.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 170), 12.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 175), 13.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-20, 180), 13.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -180), 12.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -175), 12.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -170), 12.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -165), 12.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -160), 12.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -155), 12.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -150), 12.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -145), 12.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -140), 12.0, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -135), 11.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -130), 11.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -125), 11.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -120), 10.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -115), 10.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -110), 10.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -105), 10.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -100), 9.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -95), 8.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -90), 6.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -85), 3.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -80), 0.1, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -75), -3.9, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -70), -8.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -65), -12.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -60), -16.1, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -55), -19.1, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -50), -21.4, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -45), -22.8, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -40), -23.5, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -35), -23.6, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -30), -23.1, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -25), -22.1, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -20), -20.7, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -15), -18.8, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -10), -16.5, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, -5), -14.0, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 0), -11.4, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 5), -8.8, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 10), -6.7, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 15), -5.2, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 20), -4.5, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 25), -4.7, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 30), -5.6, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 35), -7.2, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 40), -9.0, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 45), -10.6, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 50), -11.9, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 55), -12.5, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 60), -12.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 65), -12.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 70), -11.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 75), -10.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 80), -8.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 85), -6.9, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 90), -4.9, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 95), -3.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 100), -1.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 105), -0.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 110), 0.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 115), 0.9, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 120), 1.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 125), 1.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 130), 2.4, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 135), 3.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 140), 4.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 145), 6.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 150), 7.4, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 155), 8.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 160), 9.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 165), 10.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 170), 11.4, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 175), 12.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-15, 180), 12.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -180), 11.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -175), 11.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -170), 11.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -165), 11.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -160), 11.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -155), 11.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -150), 11.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -145), 10.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -140), 10.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -135), 10.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -130), 10.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -125), 9.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -120), 9.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -115), 9.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -110), 9.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -105), 8.7, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -100), 8.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -95), 6.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -90), 4.8, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -85), 2.1, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -80), -1.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -75), -5.3, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -70), -9.3, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -65), -13.2, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -60), -16.5, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -55), -19.3, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -50), -21.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -45), -22.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -40), -22.5, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -35), -22.1, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -30), -21.1, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -25), -19.6, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -20), -17.7, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -15), -15.5, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -10), -13.1, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, -5), -10.7, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 0), -8.3, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 5), -6.1, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 10), -4.1, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 15), -2.5, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 20), -1.5, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 25), -1.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 30), -1.9, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 35), -3.1, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 40), -4.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 45), -6.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 50), -7.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 55), -8.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 60), -8.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 65), -8.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 70), -8.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 75), -7.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 80), -6.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 85), -4.9, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 90), -3.4, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 95), -1.9, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 100), -0.6, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 105), 0.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 110), 0.7, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 115), 0.8, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 120), 0.9, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 125), 1.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 130), 1.8, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 135), 2.7, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 140), 3.9, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 145), 5.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 150), 6.5, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 155), 7.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 160), 8.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 165), 9.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 170), 10.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 175), 11.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-10, 180), 11.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -180), 10.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -175), 10.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -170), 10.4, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -165), 10.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -160), 10.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -155), 10.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -150), 10.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -145), 10.0, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -140), 9.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -135), 9.7, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -130), 9.4, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -125), 9.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -120), 8.7, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -115), 8.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -110), 8.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -105), 7.7, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -100), 6.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -95), 5.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -90), 3.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -85), 0.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -80), -2.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -75), -6.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -70), -10.1, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -65), -13.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -60), -16.7, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -55), -19.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -50), -20.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -45), -21.3, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -40), -21.1, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -35), -20.3, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -30), -18.8, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -25), -16.9, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -20), -14.7, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -15), -12.4, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -10), -10.1, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, -5), -7.9, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 0), -5.9, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 5), -4.0, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 10), -2.2, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 15), -0.8, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 20), 0.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 25), 0.7, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 30), 0.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 35), -0.4, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 40), -1.7, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 45), -3.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 50), -4.4, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 55), -5.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 60), -5.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 65), -5.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 70), -5.7, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 75), -5.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 80), -4.6, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 85), -3.6, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 90), -2.5, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 95), -1.3, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 100), -0.3, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 105), 0.3, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 110), 0.6, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 115), 0.5, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 120), 0.4, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 125), 0.6, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 130), 1.1, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 135), 2.0, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 140), 3.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 145), 4.4, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 150), 5.7, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 155), 7.0, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 160), 8.1, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 165), 9.1, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 170), 9.9, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 175), 10.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(-5, 180), 10.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -180), 10.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -175), 10.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -170), 9.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -165), 9.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -160), 9.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -155), 9.4, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -150), 9.4, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -145), 9.4, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -140), 9.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -135), 9.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -130), 8.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -125), 8.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -120), 8.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -115), 7.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -110), 7.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -105), 7.0, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -100), 6.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -95), 4.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -90), 2.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -85), -0.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -80), -3.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -75), -7.1, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -70), -10.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -65), -13.8, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -60), -16.5, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -55), -18.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -50), -19.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -45), -20.1, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -40), -19.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -35), -18.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -30), -16.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -25), -14.5, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -20), -12.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -15), -9.9, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -10), -7.7, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, -5), -5.7, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 0), -4.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 5), -2.4, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 10), -1.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 15), 0.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 20), 1.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 25), 1.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 30), 1.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 35), 1.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 40), 0.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 45), -1.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 50), -2.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 55), -3.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 60), -3.6, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 65), -3.9, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 70), -3.9, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 75), -3.7, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 80), -3.3, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 85), -2.7, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 90), -1.8, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 95), -1.0, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 100), -0.2, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 105), 0.2, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 110), 0.2, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 115), 0.0, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 120), -0.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 125), -0.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 130), 0.3, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 135), 1.1, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 140), 2.3, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 145), 3.6, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 150), 4.9, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 155), 6.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 160), 7.4, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 165), 8.4, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 170), 9.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 175), 9.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(0, 180), 10.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -180), 9.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -175), 9.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -170), 9.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -165), 9.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -160), 9.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -155), 9.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -150), 9.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -145), 9.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -140), 9.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -135), 8.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -130), 8.7, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -125), 8.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -120), 8.0, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -115), 7.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -110), 7.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -105), 6.4, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -100), 5.4, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -95), 3.7, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -90), 1.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -85), -1.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -80), -4.4, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -75), -7.7, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -70), -11.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -65), -13.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -60), -16.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -55), -18.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -50), -18.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -45), -18.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -40), -18.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -35), -16.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -30), -14.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -25), -12.4, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -20), -10.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -15), -7.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -10), -5.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, -5), -4.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 0), -2.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 5), -1.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 10), -0.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 15), 1.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 20), 2.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 25), 2.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 30), 2.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 35), 2.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 40), 1.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 45), 0.4, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 50), -0.6, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 55), -1.5, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 60), -2.0, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 65), -2.4, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 70), -2.5, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 75), -2.6, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 80), -2.4, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 85), -2.0, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 90), -1.5, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 95), -0.9, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 100), -0.4, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 105), -0.2, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 110), -0.3, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 115), -0.6, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 120), -0.9, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 125), -1.0, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 130), -0.6, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 135), 0.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 140), 1.3, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 145), 2.6, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 150), 3.9, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 155), 5.3, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 160), 6.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 165), 7.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 170), 8.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 175), 9.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(5, 180), 9.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -180), 9.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -175), 9.4, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -170), 9.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -165), 9.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -160), 9.0, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -155), 9.0, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -150), 9.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -145), 9.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -140), 9.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -135), 9.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -130), 8.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -125), 8.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -120), 8.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -115), 7.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -110), 7.0, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -105), 6.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -100), 4.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -95), 3.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -90), 0.7, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -85), -2.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -80), -5.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -75), -8.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -70), -11.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -65), -13.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -60), -15.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -55), -17.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -50), -17.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -45), -17.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -40), -16.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -35), -14.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -30), -12.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -25), -10.7, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -20), -8.4, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -15), -6.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -10), -4.4, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, -5), -2.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 0), -1.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 5), -0.4, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 10), 0.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 15), 1.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 20), 2.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 25), 3.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 30), 3.3, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 35), 3.0, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 40), 2.3, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 45), 1.4, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 50), 0.5, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 55), -0.3, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 60), -0.9, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 65), -1.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 70), -1.5, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 75), -1.6, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 80), -1.6, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 85), -1.5, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 90), -1.2, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 95), -0.9, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 100), -0.6, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 105), -0.7, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 110), -0.9, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 115), -1.4, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 120), -1.8, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 125), -1.9, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 130), -1.7, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 135), -1.0, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 140), 0.1, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 145), 1.4, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 150), 2.8, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 155), 4.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 160), 5.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 165), 6.9, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 170), 8.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 175), 8.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(10, 180), 9.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -180), 8.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -175), 9.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -170), 9.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -165), 9.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -160), 9.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -155), 9.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -150), 9.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -145), 9.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -140), 9.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -135), 9.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -130), 9.4, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -125), 9.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -120), 8.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -115), 7.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -110), 7.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -105), 6.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -100), 4.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -95), 2.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -90), -0.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -85), -2.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -80), -5.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -75), -8.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -70), -11.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -65), -13.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -60), -15.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -55), -16.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -50), -16.7, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -45), -16.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -40), -15.0, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -35), -13.4, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -30), -11.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -25), -9.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -20), -7.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -15), -5.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -10), -3.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, -5), -1.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 0), -0.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 5), 0.4, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 10), 1.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 15), 2.1, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 20), 2.9, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 25), 3.5, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 30), 3.7, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 35), 3.5, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 40), 2.9, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 45), 2.1, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 50), 1.3, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 55), 0.6, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 60), 0.1, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 65), -0.3, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 70), -0.6, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 75), -0.8, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 80), -1.0, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 85), -1.0, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 90), -1.0, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 95), -0.9, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 100), -0.9, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 105), -1.2, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 110), -1.6, 0.29 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 115), -2.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 120), -2.7, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 125), -3.0, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 130), -2.8, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 135), -2.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 140), -1.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 145), 0.0, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 150), 1.4, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 155), 2.9, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 160), 4.4, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 165), 5.9, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 170), 7.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 175), 8.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(15, 180), 8.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -180), 8.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -175), 8.7, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -170), 9.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -165), 9.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -160), 9.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -155), 9.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -150), 9.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -145), 10.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -140), 10.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -135), 10.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -130), 10.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -125), 9.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -120), 9.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -115), 8.4, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -110), 7.4, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -105), 6.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -100), 4.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -95), 2.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -90), -0.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -85), -3.5, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -80), -6.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -75), -9.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -70), -12.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -65), -13.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -60), -15.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -55), -15.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -50), -15.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -45), -15.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -40), -13.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -35), -12.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -30), -10.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -25), -8.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -20), -6.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -15), -4.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -10), -2.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, -5), -1.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 0), 0.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 5), 1.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 10), 1.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 15), 2.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 20), 3.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 25), 3.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 30), 4.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 35), 3.9, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 40), 3.5, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 45), 2.8, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 50), 2.1, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 55), 1.4, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 60), 1.0, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 65), 0.6, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 70), 0.3, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 75), -0.0, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 80), -0.3, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 85), -0.5, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 90), -0.7, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 95), -0.9, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 100), -1.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 105), -1.7, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 110), -2.4, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 115), -3.1, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 120), -3.8, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 125), -4.1, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 130), -4.1, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 135), -3.6, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 140), -2.7, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 145), -1.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 150), -0.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 155), 1.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 160), 3.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 165), 4.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 170), 6.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 175), 7.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(20, 180), 8.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -180), 7.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -175), 8.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -170), 8.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -165), 9.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -160), 9.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -155), 10.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -150), 10.5, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -145), 10.9, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -140), 11.1, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -135), 11.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -130), 11.1, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -125), 10.7, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -120), 10.1, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -115), 9.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -110), 7.9, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -105), 6.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -100), 4.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -95), 1.8, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -90), -1.1, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -85), -4.1, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -80), -7.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -75), -10.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -70), -12.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -65), -14.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -60), -15.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -55), -15.4, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -50), -15.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -45), -14.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -40), -12.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -35), -11.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -30), -9.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -25), -7.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -20), -5.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -15), -3.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -10), -2.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, -5), -0.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 0), 0.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 5), 1.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 10), 2.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 15), 3.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 20), 3.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 25), 4.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 30), 4.4, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 35), 4.4, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 40), 4.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 45), 3.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 50), 2.9, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 55), 2.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 60), 1.9, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 65), 1.5, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 70), 1.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 75), 0.8, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 80), 0.4, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 85), 0.0, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 90), -0.4, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 95), -0.9, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 100), -1.5, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 105), -2.2, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 110), -3.1, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 115), -4.0, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 120), -4.8, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 125), -5.4, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 130), -5.5, 0.30 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 135), -5.1, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 140), -4.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 145), -3.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 150), -1.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 155), -0.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 160), 1.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 165), 3.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 170), 4.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 175), 6.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(25, 180), 7.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -180), 6.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -175), 7.5, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -170), 8.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -165), 9.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -160), 9.9, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -155), 10.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -150), 11.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -145), 11.7, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -140), 12.1, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -135), 12.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -130), 12.1, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -125), 11.7, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -120), 11.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -115), 10.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -110), 8.6, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -105), 6.7, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -100), 4.4, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -95), 1.6, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -90), -1.5, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -85), -4.7, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -80), -7.8, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -75), -10.6, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -70), -12.8, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -65), -14.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -60), -15.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -55), -15.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -50), -14.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -45), -13.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -40), -12.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -35), -10.7, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -30), -8.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -25), -7.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -20), -5.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -15), -3.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -10), -1.7, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, -5), -0.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 0), 1.0, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 5), 1.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 10), 2.7, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 15), 3.4, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 20), 4.0, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 25), 4.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 30), 4.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 35), 4.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 40), 4.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 45), 4.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 50), 3.8, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 55), 3.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 60), 2.9, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 65), 2.6, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 70), 2.2, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 75), 1.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 80), 1.3, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 85), 0.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 90), -0.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 95), -0.8, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 100), -1.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 105), -2.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 110), -3.9, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 115), -5.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 120), -6.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 125), -6.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 130), -6.9, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 135), -6.7, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 140), -6.0, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 145), -4.9, 0.31 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 150), -3.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 155), -1.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 160), -0.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 165), 1.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 170), 3.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 175), 4.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(30, 180), 6.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -180), 5.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -175), 6.7, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -170), 8.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -165), 9.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -160), 10.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -155), 11.1, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -150), 11.9, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -145), 12.6, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -140), 13.1, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -135), 13.3, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -130), 13.2, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -125), 12.8, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -120), 12.0, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -115), 10.9, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -110), 9.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -105), 7.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -100), 4.6, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -95), 1.6, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -90), -1.8, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -85), -5.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -80), -8.5, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -75), -11.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -70), -13.3, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -65), -14.7, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -60), -15.3, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -55), -15.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -50), -14.5, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -45), -13.5, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -40), -12.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -35), -10.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -30), -8.7, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -25), -6.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -20), -5.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -15), -3.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -10), -1.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, -5), -0.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 0), 1.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 5), 2.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 10), 3.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 15), 3.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 20), 4.4, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 25), 4.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 30), 5.3, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 35), 5.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 40), 5.4, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 45), 5.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 50), 4.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 55), 4.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 60), 4.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 65), 3.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 70), 3.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 75), 3.0, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 80), 2.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 85), 1.4, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 90), 0.5, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 95), -0.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 100), -1.9, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 105), -3.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 110), -4.7, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 115), -6.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 120), -7.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 125), -8.1, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 130), -8.4, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 135), -8.3, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 140), -7.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 145), -6.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 150), -5.2, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 155), -3.6, 0.32 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 160), -1.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 165), 0.0, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 170), 1.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 175), 3.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(35, 180), 5.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -180), 4.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -175), 5.9, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -170), 7.5, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -165), 9.0, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -160), 10.4, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -155), 11.6, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -150), 12.6, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -145), 13.5, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -140), 14.1, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -135), 14.4, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -130), 14.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -125), 13.9, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -120), 13.1, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -115), 11.8, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -110), 10.0, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -105), 7.7, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -100), 4.8, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -95), 1.5, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -90), -2.2, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -85), -5.8, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -80), -9.2, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -75), -12.0, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -70), -14.1, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -65), -15.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -60), -15.8, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -55), -15.6, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -50), -14.9, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -45), -13.7, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -40), -12.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -35), -10.7, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -30), -8.9, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -25), -7.1, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -20), -5.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -15), -3.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -10), -1.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, -5), -0.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 0), 1.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 5), 2.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 10), 3.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 15), 4.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 20), 4.9, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 25), 5.5, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 30), 6.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 35), 6.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 40), 6.5, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 45), 6.5, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 50), 6.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 55), 6.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 60), 6.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 65), 5.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 70), 5.1, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 75), 4.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 80), 3.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 85), 2.4, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 90), 1.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 95), -0.4, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 100), -2.1, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 105), -3.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 110), -5.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 115), -7.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 120), -8.6, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 125), -9.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 130), -9.9, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 135), -9.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 140), -9.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 145), -8.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 150), -6.8, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 155), -5.2, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 160), -3.4, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 165), -1.5, 0.33 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 170), 0.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 175), 2.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(40, 180), 4.2, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -180), 3.2, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -175), 5.2, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -170), 7.1, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -165), 8.9, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -160), 10.5, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -155), 12.0, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -150), 13.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -145), 14.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -140), 15.0, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -135), 15.4, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -130), 15.4, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -125), 15.0, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -120), 14.2, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -115), 12.8, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -110), 10.8, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -105), 8.2, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -100), 5.0, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -95), 1.3, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -90), -2.7, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -85), -6.6, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -80), -10.1, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -75), -13.0, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -70), -15.1, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -65), -16.3, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -60), -16.8, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -55), -16.5, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -50), -15.7, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -45), -14.5, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -40), -13.0, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -35), -11.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -30), -9.5, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -25), -7.6, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -20), -5.6, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -15), -3.7, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -10), -1.9, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, -5), -0.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 0), 1.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 5), 2.5, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 10), 3.6, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 15), 4.6, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 20), 5.5, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 25), 6.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 30), 7.0, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 35), 7.5, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 40), 7.9, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 45), 8.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 50), 8.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 55), 8.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 60), 8.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 65), 7.8, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 70), 7.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 75), 6.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 80), 5.1, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 85), 3.6, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 90), 1.9, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 95), -0.1, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 100), -2.2, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 105), -4.4, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 110), -6.5, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 115), -8.4, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 120), -9.9, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 125), -11.0, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 130), -11.4, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 135), -11.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 140), -10.7, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 145), -9.7, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 150), -8.3, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 155), -6.6, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 160), -4.8, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 165), -2.8, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 170), -0.8, 0.34 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 175), 1.2, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(45, 180), 3.2, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -180), 2.4, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -175), 4.6, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -170), 6.7, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -165), 8.7, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -160), 10.6, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -155), 12.3, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -150), 13.8, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -145), 15.1, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -140), 16.0, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -135), 16.5, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -130), 16.6, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -125), 16.2, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -120), 15.3, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -115), 13.8, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -110), 11.6, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -105), 8.7, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -100), 5.1, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -95), 1.0, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -90), -3.4, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -85), -7.7, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -80), -11.4, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -75), -14.4, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -70), -16.6, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -65), -17.8, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -60), -18.2, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -55), -17.9, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -50), -17.1, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -45), -15.8, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -40), -14.3, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -35), -12.5, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -30), -10.6, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -25), -8.6, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -20), -6.5, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -15), -4.5, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -10), -2.5, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, -5), -0.7, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 0), 1.0, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 5), 2.5, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 10), 3.9, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 15), 5.1, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 20), 6.2, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 25), 7.3, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 30), 8.2, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 35), 9.1, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 40), 9.8, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 45), 10.4, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 50), 10.7, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 55), 10.9, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 60), 10.8, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 65), 10.4, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 70), 9.7, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 75), 8.6, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 80), 7.1, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 85), 5.2, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 90), 2.9, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 95), 0.4, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 100), -2.3, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 105), -5.0, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 110), -7.5, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 115), -9.6, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 120), -11.3, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 125), -12.4, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 130), -12.9, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 135), -12.8, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 140), -12.2, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 145), -11.1, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 150), -9.6, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 155), -7.9, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 160), -6.0, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 165), -4.0, 0.35 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 170), -1.9, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 175), 0.3, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(50, 180), 2.4, 0.36 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -180), 1.8, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -175), 4.1, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -170), 6.3, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -165), 8.6, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -160), 10.7, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -155), 12.6, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -150), 14.3, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -145), 15.7, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -140), 16.8, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -135), 17.5, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -130), 17.8, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -125), 17.4, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -120), 16.5, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -115), 14.9, 0.48 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -110), 12.4, 0.49 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -105), 9.1, 0.51 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -100), 5.0, 0.52 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -95), 0.4, 0.53 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -90), -4.5, 0.53 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -85), -9.2, 0.52 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -80), -13.3, 0.51 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -75), -16.5, 0.49 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -70), -18.7, 0.48 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -65), -19.9, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -60), -20.3, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -55), -19.9, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -50), -19.0, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -45), -17.7, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -40), -16.0, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -35), -14.1, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -30), -12.1, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -25), -9.9, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -20), -7.8, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -15), -5.6, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -10), -3.4, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, -5), -1.4, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 0), 0.6, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 5), 2.4, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 10), 4.1, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 15), 5.7, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 20), 7.2, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 25), 8.6, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 30), 9.9, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 35), 11.1, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 40), 12.1, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 45), 13.0, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 50), 13.7, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 55), 14.1, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 60), 14.1, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 65), 13.7, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 70), 12.9, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 75), 11.5, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 80), 9.6, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 85), 7.2, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 90), 4.4, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 95), 1.2, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 100), -2.2, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 105), -5.5, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 110), -8.4, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 115), -10.9, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 120), -12.7, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 125), -13.9, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 130), -14.4, 0.40 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 135), -14.2, 0.39 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 140), -13.5, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 145), -12.4, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 150), -10.9, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 155), -9.1, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 160), -7.1, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 165), -5.0, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 170), -2.8, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 175), -0.5, 0.37 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(55, 180), 1.8, 0.38 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -180), 1.2, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -175), 3.6, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -170), 6.0, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -165), 8.4, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -160), 10.6, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -155), 12.8, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -150), 14.7, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -145), 16.3, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -140), 17.6, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -135), 18.5, 0.48 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -130), 18.9, 0.50 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -125), 18.7, 0.52 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -120), 17.7, 0.54 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -115), 15.9, 0.57 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -110), 13.2, 0.59 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -105), 9.4, 0.62 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -100), 4.7, 0.64 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -95), -0.8, 0.65 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -90), -6.4, 0.65 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -85), -11.6, 0.64 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -80), -16.0, 0.62 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -75), -19.4, 0.59 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -70), -21.6, 0.56 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -65), -22.8, 0.54 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -60), -23.0, 0.52 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -55), -22.6, 0.50 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -50), -21.6, 0.48 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -45), -20.1, 0.47 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -40), -18.3, 0.47 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -35), -16.3, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -30), -14.1, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -25), -11.7, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -20), -9.3, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -15), -6.9, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -10), -4.5, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, -5), -2.2, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 0), 0.1, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 5), 2.3, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 10), 4.3, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 15), 6.4, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 20), 8.3, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 25), 10.1, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 30), 11.9, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 35), 13.5, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 40), 15.0, 0.47 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 45), 16.2, 0.47 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 50), 17.2, 0.47 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 55), 17.8, 0.48 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 60), 18.0, 0.49 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 65), 17.8, 0.49 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 70), 16.9, 0.50 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 75), 15.3, 0.51 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 80), 13.1, 0.52 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 85), 10.1, 0.53 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 90), 6.5, 0.54 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 95), 2.5, 0.54 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 100), -1.7, 0.53 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 105), -5.7, 0.52 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 110), -9.2, 0.51 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 115), -12.0, 0.50 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 120), -14.1, 0.48 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 125), -15.3, 0.46 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 130), -15.8, 0.45 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 135), -15.6, 0.44 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 140), -14.8, 0.43 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 145), -13.6, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 150), -12.0, 0.42 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 155), -10.2, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 160), -8.1, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 165), -5.9, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 170), -3.6, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 175), -1.3, 0.41 + 1.0);
EXPECT_NEAR(get_mag_declination_degrees(60, 180), 1.2, 0.41 + 1.0);
}
TEST(GeoLookupTest, inclination)
{
EXPECT_NEAR(get_mag_inclination_degrees(-50, -180), -71.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -175), -70.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -170), -69.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -165), -68.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -160), -67.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -155), -66.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -150), -65.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -145), -64.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -140), -64.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -135), -63.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -130), -62.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -125), -60.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -120), -59.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -115), -58.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -110), -57.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -105), -55.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -100), -54.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -95), -52.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -90), -51.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -85), -49.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -80), -48.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -75), -48.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -70), -48.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -65), -48.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -60), -49.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -55), -50.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -50), -52.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -45), -53.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -40), -55.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -35), -56.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -30), -58.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -25), -59.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -20), -60.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -15), -60.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -10), -61.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, -5), -61.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 0), -60.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 5), -60.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 10), -59.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 15), -59.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 20), -59.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 25), -58.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 30), -59.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 35), -59.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 40), -60.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 45), -61.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 50), -62.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 55), -64.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 60), -66.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 65), -67.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 70), -69.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 75), -71.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 80), -72.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 85), -74.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 90), -75.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 95), -77.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 100), -78.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 105), -79.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 110), -80.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 115), -80.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 120), -80.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 125), -80.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 130), -80.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 135), -79.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 140), -79.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 145), -78.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 150), -77.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 155), -76.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 160), -75.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 165), -74.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 170), -73.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 175), -72.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-50, 180), -71.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -180), -68.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -175), -67.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -170), -66.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -165), -65.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -160), -64.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -155), -63.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -150), -62.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -145), -61.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -140), -60.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -135), -59.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -130), -58.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -125), -57.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -120), -56.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -115), -55.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -110), -53.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -105), -52.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -100), -50.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -95), -49.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -90), -47.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -85), -46.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -80), -45.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -75), -44.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -70), -45.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -65), -45.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -60), -46.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -55), -48.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -50), -50.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -45), -52.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -40), -54.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -35), -56.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -30), -58.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -25), -60.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -20), -61.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -15), -62.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -10), -63.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, -5), -63.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 0), -63.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 5), -62.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 10), -62.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 15), -61.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 20), -60.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 25), -60.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 30), -59.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 35), -60.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 40), -60.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 45), -61.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 50), -62.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 55), -64.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 60), -65.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 65), -67.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 70), -69.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 75), -70.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 80), -72.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 85), -73.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 90), -74.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 95), -75.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 100), -76.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 105), -76.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 110), -77.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 115), -77.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 120), -77.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 125), -76.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 130), -76.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 135), -75.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 140), -75.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 145), -74.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 150), -73.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 155), -73.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 160), -72.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 165), -71.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 170), -70.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 175), -69.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-45, 180), -68.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -180), -64.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -175), -63.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -170), -62.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -165), -61.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -160), -60.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -155), -59.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -150), -58.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -145), -57.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -140), -56.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -135), -55.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -130), -54.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -125), -53.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -120), -52.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -115), -51.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -110), -50.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -105), -48.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -100), -47.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -95), -45.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -90), -43.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -85), -42.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -80), -41.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -75), -41.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -70), -41.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -65), -42.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -60), -44.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -55), -46.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -50), -48.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -45), -51.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -40), -54.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -35), -56.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -30), -58.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -25), -60.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -20), -62.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -15), -63.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -10), -64.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, -5), -65.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 0), -65.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 5), -65.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 10), -64.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 15), -63.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 20), -62.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 25), -61.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 30), -61.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 35), -60.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 40), -61.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 45), -61.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 50), -62.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 55), -64.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 60), -65.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 65), -66.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 70), -68.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 75), -69.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 80), -70.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 85), -71.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 90), -72.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 95), -73.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 100), -73.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 105), -73.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 110), -73.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 115), -73.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 120), -73.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 125), -72.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 130), -72.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 135), -71.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 140), -71.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 145), -70.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 150), -69.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 155), -69.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 160), -68.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 165), -67.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 170), -66.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 175), -65.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-40, 180), -64.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -180), -60.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -175), -59.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -170), -58.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -165), -56.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -160), -55.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -155), -54.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -150), -53.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -145), -52.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -140), -51.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -135), -50.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -130), -49.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -125), -48.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -120), -47.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -115), -46.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -110), -45.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -105), -44.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -100), -42.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -95), -40.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -90), -39.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -85), -37.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -80), -36.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -75), -36.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -70), -36.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -65), -38.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -60), -40.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -55), -43.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -50), -46.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -45), -49.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -40), -52.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -35), -55.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -30), -58.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -25), -60.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -20), -62.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -15), -64.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -10), -65.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, -5), -66.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 0), -67.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 5), -67.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 10), -66.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 15), -65.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 20), -64.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 25), -63.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 30), -62.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 35), -61.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 40), -61.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 45), -61.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 50), -62.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 55), -63.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 60), -64.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 65), -65.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 70), -66.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 75), -67.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 80), -68.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 85), -69.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 90), -69.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 95), -70.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 100), -69.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 105), -69.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 110), -69.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 115), -69.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 120), -68.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 125), -68.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 130), -67.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 135), -67.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 140), -66.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 145), -66.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 150), -65.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 155), -64.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 160), -64.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 165), -63.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 170), -62.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 175), -61.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-35, 180), -60.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -180), -55.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -175), -53.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -170), -52.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -165), -51.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -160), -50.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -155), -49.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -150), -48.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -145), -47.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -140), -46.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -135), -45.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -130), -44.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -125), -43.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -120), -42.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -115), -40.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -110), -39.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -105), -38.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -100), -36.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -95), -35.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -90), -33.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -85), -31.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -80), -30.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -75), -30.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -70), -31.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -65), -33.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -60), -36.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -55), -39.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -50), -43.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -45), -46.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -40), -50.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -35), -53.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -30), -56.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -25), -59.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -20), -61.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -15), -63.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -10), -65.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, -5), -66.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 0), -67.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 5), -67.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 10), -67.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 15), -66.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 20), -65.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 25), -63.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 30), -62.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 35), -61.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 40), -60.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 45), -60.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 50), -60.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 55), -61.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 60), -62.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 65), -63.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 70), -63.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 75), -64.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 80), -65.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 85), -65.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 90), -65.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 95), -65.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 100), -65.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 105), -65.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 110), -64.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 115), -64.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 120), -63.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 125), -63.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 130), -62.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 135), -62.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 140), -62.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 145), -61.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 150), -60.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 155), -60.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 160), -59.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 165), -58.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 170), -57.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 175), -56.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-30, 180), -55.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -180), -49.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -175), -47.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -170), -46.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -165), -45.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -160), -44.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -155), -43.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -150), -42.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -145), -40.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -140), -39.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -135), -38.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -130), -37.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -125), -36.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -120), -35.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -115), -34.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -110), -33.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -105), -31.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -100), -30.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -95), -28.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -90), -26.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -85), -24.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -80), -23.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -75), -23.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -70), -24.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -65), -27.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -60), -30.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -55), -34.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -50), -38.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -45), -42.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -40), -46.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -35), -50.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -30), -53.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -25), -56.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -20), -59.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -15), -61.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -10), -63.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, -5), -65.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 0), -66.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 5), -66.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 10), -66.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 15), -65.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 20), -64.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 25), -62.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 30), -60.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 35), -59.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 40), -58.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 45), -57.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 50), -57.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 55), -57.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 60), -58.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 65), -59.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 70), -59.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 75), -60.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 80), -60.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 85), -61.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 90), -61.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 95), -60.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 100), -60.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 105), -59.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 110), -58.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 115), -58.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 120), -57.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 125), -57.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 130), -57.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 135), -56.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 140), -56.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 145), -56.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 150), -55.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 155), -54.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 160), -53.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 165), -52.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 170), -51.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 175), -50.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-25, 180), -49.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -180), -42.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -175), -40.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -170), -39.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -165), -38.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -160), -37.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -155), -36.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -150), -34.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -145), -33.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -140), -32.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -135), -31.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -130), -29.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -125), -28.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -120), -27.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -115), -26.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -110), -25.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -105), -23.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -100), -22.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -95), -20.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -90), -18.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -85), -16.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -80), -15.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -75), -15.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -70), -17.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -65), -20.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -60), -23.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -55), -28.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -50), -33.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -45), -38.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -40), -42.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -35), -46.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -30), -50.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -25), -53.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -20), -56.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -15), -58.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -10), -60.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, -5), -62.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 0), -63.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 5), -63.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 10), -63.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 15), -62.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 20), -60.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 25), -59.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 30), -57.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 35), -55.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 40), -54.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 45), -53.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 50), -52.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 55), -52.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 60), -53.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 65), -53.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 70), -54.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 75), -54.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 80), -54.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 85), -55.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 90), -54.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 95), -54.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 100), -53.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 105), -53.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 110), -52.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 115), -51.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 120), -51.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 125), -51.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 130), -50.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 135), -50.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 140), -50.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 145), -49.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 150), -49.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 155), -48.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 160), -47.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 165), -46.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 170), -44.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 175), -43.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-20, 180), -42.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -180), -34.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -175), -32.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -170), -31.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -165), -30.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -160), -28.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -155), -27.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -150), -26.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -145), -25.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -140), -23.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -135), -22.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -130), -21.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -125), -20.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -120), -18.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -115), -17.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -110), -16.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -105), -14.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -100), -13.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -95), -11.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -90), -9.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -85), -7.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -80), -6.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -75), -7.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -70), -9.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -65), -12.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -60), -16.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -55), -21.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -50), -26.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -45), -32.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -40), -37.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -35), -41.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -30), -45.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -25), -48.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -20), -51.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -15), -54.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -10), -55.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, -5), -57.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 0), -57.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 5), -57.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 10), -57.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 15), -56.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 20), -55.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 25), -53.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 30), -51.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 35), -49.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 40), -47.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 45), -46.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 50), -46.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 55), -46.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 60), -46.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 65), -46.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 70), -46.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 75), -47.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 80), -47.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 85), -47.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 90), -47.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 95), -47.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 100), -46.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 105), -45.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 110), -44.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 115), -44.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 120), -43.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 125), -43.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 130), -43.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 135), -43.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 140), -43.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 145), -42.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 150), -42.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 155), -41.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 160), -40.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 165), -38.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 170), -37.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 175), -35.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-15, 180), -34.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -180), -25.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -175), -23.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -170), -22.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -165), -20.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -160), -19.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -155), -18.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -150), -17.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -145), -15.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -140), -14.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -135), -13.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -130), -11.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -125), -10.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -120), -9.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -115), -8.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -110), -6.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -105), -5.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -100), -3.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -95), -1.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -90), 0.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -85), 2.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -80), 2.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -75), 1.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -70), -0.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -65), -3.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -60), -8.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -55), -13.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -50), -19.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -45), -24.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -40), -30.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -35), -35.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -30), -39.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -25), -42.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -20), -45.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -15), -47.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -10), -49.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, -5), -49.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 0), -50.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 5), -50.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 10), -49.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 15), -48.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 20), -47.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 25), -45.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 30), -43.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 35), -41.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 40), -39.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 45), -38.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 50), -37.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 55), -37.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 60), -37.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 65), -37.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 70), -38.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 75), -38.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 80), -38.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 85), -38.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 90), -38.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 95), -38.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 100), -37.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 105), -36.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 110), -36.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 115), -35.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 120), -35.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 125), -35.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 130), -35.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 135), -35.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 140), -35.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 145), -34.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 150), -34.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 155), -33.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 160), -31.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 165), -30.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 170), -28.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 175), -27.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-10, 180), -25.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -180), -15.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -175), -13.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -170), -12.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -165), -10.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -160), -9.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -155), -8.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -150), -6.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -145), -5.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -140), -4.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -135), -3.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -130), -1.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -125), -0.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -120), 0.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -115), 1.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -110), 3.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -105), 4.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -100), 6.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -95), 8.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -90), 10.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -85), 11.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -80), 11.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -75), 10.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -70), 8.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -65), 5.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -60), 0.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -55), -4.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -50), -10.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -45), -16.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -40), -22.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -35), -27.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -30), -31.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -25), -35.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -20), -37.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -15), -39.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -10), -40.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, -5), -41.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 0), -41.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 5), -41.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 10), -40.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 15), -39.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 20), -37.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 25), -35.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 30), -33.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 35), -31.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 40), -29.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 45), -28.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 50), -27.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 55), -27.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 60), -27.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 65), -27.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 70), -27.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 75), -28.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 80), -28.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 85), -28.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 90), -28.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 95), -28.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 100), -27.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 105), -27.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 110), -26.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 115), -25.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 120), -25.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 125), -25.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 130), -26.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 135), -26.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 140), -26.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 145), -25.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 150), -25.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 155), -24.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 160), -22.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 165), -21.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 170), -19.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 175), -17.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(-5, 180), -15.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -180), -5.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -175), -3.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -170), -1.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -165), -0.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -160), 1.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -155), 2.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -150), 3.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -145), 4.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -140), 5.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -135), 7.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -130), 8.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -125), 9.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -120), 10.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -115), 11.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -110), 13.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -105), 14.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -100), 16.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -95), 18.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -90), 19.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -85), 20.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -80), 20.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -75), 19.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -70), 17.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -65), 14.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -60), 9.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -55), 4.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -50), -1.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -45), -7.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -40), -12.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -35), -18.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -30), -22.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -25), -25.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -20), -27.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -15), -29.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -10), -30.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, -5), -30.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 0), -30.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 5), -29.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 10), -29.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 15), -28.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 20), -26.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 25), -24.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 30), -22.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 35), -20.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 40), -18.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 45), -17.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 50), -16.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 55), -16.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 60), -16.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 65), -16.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 70), -16.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 75), -16.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 80), -17.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 85), -17.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 90), -17.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 95), -17.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 100), -16.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 105), -16.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 110), -15.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 115), -15.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 120), -15.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 125), -15.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 130), -16.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 135), -16.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 140), -16.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 145), -16.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 150), -15.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 155), -14.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 160), -13.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 165), -11.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 170), -9.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 175), -7.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(0, 180), -5.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -180), 5.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -175), 7.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -170), 8.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -165), 10.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -160), 11.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -155), 12.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -150), 13.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -145), 14.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -140), 15.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -135), 16.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -130), 18.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -125), 19.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -120), 20.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -115), 21.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -110), 22.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -105), 23.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -100), 25.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -95), 26.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -90), 28.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -85), 28.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -80), 28.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -75), 27.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -70), 25.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -65), 22.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -60), 18.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -55), 13.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -50), 8.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -45), 2.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -40), -2.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -35), -7.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -30), -11.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -25), -14.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -20), -16.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -15), -17.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -10), -18.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, -5), -18.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 0), -18.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 5), -17.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 10), -16.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 15), -15.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 20), -14.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 25), -12.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 30), -10.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 35), -8.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 40), -6.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 45), -4.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 50), -4.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 55), -3.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 60), -3.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 65), -3.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 70), -4.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 75), -4.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 80), -4.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 85), -5.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 90), -5.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 95), -5.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 100), -4.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 105), -4.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 110), -3.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 115), -3.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 120), -3.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 125), -4.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 130), -5.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 135), -5.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 140), -6.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 145), -6.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 150), -5.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 155), -4.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 160), -3.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 165), -1.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 170), 0.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 175), 2.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(5, 180), 5.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -180), 14.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -175), 16.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -170), 18.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -165), 19.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -160), 20.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -155), 21.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -150), 22.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -145), 23.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -140), 24.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -135), 25.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -130), 27.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -125), 28.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -120), 29.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -115), 30.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -110), 31.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -105), 32.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -100), 33.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -95), 34.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -90), 35.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -85), 36.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -80), 35.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -75), 34.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -70), 32.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -65), 30.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -60), 26.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -55), 22.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -50), 17.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -45), 12.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -40), 7.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -35), 3.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -30), -0.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -25), -2.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -20), -4.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -15), -5.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -10), -5.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, -5), -5.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 0), -5.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 5), -4.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 10), -3.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 15), -2.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 20), -1.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 25), 0.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 30), 2.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 35), 4.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 40), 6.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 45), 7.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 50), 8.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 55), 8.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 60), 8.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 65), 8.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 70), 8.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 75), 7.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 80), 7.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 85), 7.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 90), 7.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 95), 7.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 100), 7.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 105), 7.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 110), 7.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 115), 7.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 120), 7.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 125), 6.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 130), 5.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 135), 5.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 140), 4.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 145), 4.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 150), 4.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 155), 5.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 160), 6.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 165), 8.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 170), 10.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 175), 12.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(10, 180), 14.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -180), 23.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -175), 25.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -170), 26.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -165), 28.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -160), 29.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -155), 30.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -150), 31.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -145), 31.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -140), 32.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -135), 33.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -130), 34.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -125), 35.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -120), 36.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -115), 37.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -110), 38.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -105), 39.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -100), 41.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -95), 41.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -90), 42.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -85), 42.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -80), 42.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -75), 41.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -70), 39.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -65), 36.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -60), 33.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -55), 30.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -50), 26.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -45), 21.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -40), 18.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -35), 14.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -30), 11.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -25), 9.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -20), 7.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -15), 7.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -10), 7.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, -5), 7.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 0), 7.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 5), 8.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 10), 9.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 15), 10.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 20), 11.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 25), 13.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 30), 14.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 35), 16.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 40), 17.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 45), 19.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 50), 19.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 55), 19.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 60), 20.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 65), 20.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 70), 19.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 75), 19.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 80), 19.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 85), 19.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 90), 19.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 95), 18.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 100), 19.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 105), 19.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 110), 19.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 115), 19.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 120), 18.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 125), 17.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 130), 16.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 135), 15.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 140), 15.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 145), 14.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 150), 14.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 155), 15.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 160), 16.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 165), 17.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 170), 19.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 175), 21.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(15, 180), 23.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -180), 31.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -175), 32.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -170), 34.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -165), 35.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -160), 36.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -155), 37.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -150), 38.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -145), 38.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -140), 39.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -135), 40.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -130), 41.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -125), 42.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -120), 43.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -115), 44.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -110), 45.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -105), 46.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -100), 47.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -95), 48.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -90), 48.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -85), 48.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -80), 48.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -75), 46.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -70), 45.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -65), 43.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -60), 40.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -55), 37.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -50), 34.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -45), 30.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -40), 27.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -35), 24.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -30), 22.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -25), 20.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -20), 19.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -15), 19.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -10), 19.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, -5), 19.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 0), 20.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 5), 20.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 10), 21.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 15), 22.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 20), 23.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 25), 24.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 30), 26.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 35), 27.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 40), 28.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 45), 29.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 50), 30.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 55), 30.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 60), 30.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 65), 30.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 70), 30.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 75), 30.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 80), 30.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 85), 30.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 90), 29.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 95), 29.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 100), 29.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 105), 29.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 110), 29.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 115), 29.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 120), 28.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 125), 27.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 130), 26.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 135), 25.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 140), 24.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 145), 24.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 150), 24.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 155), 24.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 160), 25.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 165), 26.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 170), 27.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 175), 29.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(20, 180), 31.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -180), 37.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -175), 39.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -170), 40.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -165), 41.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -160), 42.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -155), 43.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -150), 43.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -145), 44.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -140), 45.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -135), 46.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -130), 47.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -125), 48.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -120), 49.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -115), 50.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -110), 51.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -105), 52.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -100), 53.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -95), 53.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -90), 54.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -85), 53.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -80), 53.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -75), 52.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -70), 50.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -65), 48.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -60), 46.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -55), 43.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -50), 41.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -45), 38.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -40), 36.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -35), 34.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -30), 32.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -25), 31.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -20), 30.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -15), 29.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -10), 29.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, -5), 30.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 0), 30.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 5), 31.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 10), 32.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 15), 33.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 20), 33.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 25), 34.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 30), 36.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 35), 37.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 40), 38.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 45), 38.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 50), 39.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 55), 39.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 60), 39.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 65), 39.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 70), 39.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 75), 39.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 80), 39.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 85), 39.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 90), 39.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 95), 39.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 100), 39.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 105), 39.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 110), 38.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 115), 38.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 120), 37.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 125), 36.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 130), 35.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 135), 34.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 140), 33.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 145), 33.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 150), 32.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 155), 32.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 160), 33.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 165), 33.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 170), 34.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 175), 36.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(25, 180), 37.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -180), 43.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -175), 44.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -170), 45.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -165), 46.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -160), 47.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -155), 48.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -150), 49.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -145), 49.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -140), 50.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -135), 51.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -130), 52.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -125), 53.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -120), 54.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -115), 55.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -110), 56.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -105), 57.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -100), 58.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -95), 58.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -90), 58.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -85), 58.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -80), 57.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -75), 56.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -70), 55.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -65), 53.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -60), 51.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -55), 49.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -50), 47.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -45), 45.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -40), 44.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -35), 42.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -30), 41.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -25), 40.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -20), 39.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -15), 39.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -10), 39.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, -5), 39.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 0), 40.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 5), 40.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 10), 41.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 15), 42.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 20), 42.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 25), 43.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 30), 44.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 35), 45.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 40), 46.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 45), 46.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 50), 47.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 55), 47.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 60), 47.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 65), 47.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 70), 47.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 75), 47.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 80), 47.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 85), 47.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 90), 47.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 95), 47.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 100), 47.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 105), 47.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 110), 47.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 115), 46.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 120), 45.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 125), 44.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 130), 43.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 135), 42.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 140), 41.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 145), 40.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 150), 40.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 155), 40.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 160), 40.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 165), 40.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 170), 41.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 175), 42.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(30, 180), 43.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -180), 48.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -175), 49.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -170), 50.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -165), 51.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -160), 51.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -155), 52.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -150), 53.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -145), 54.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -140), 55.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -135), 56.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -130), 57.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -125), 58.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -120), 59.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -115), 60.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -110), 61.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -105), 62.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -100), 62.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -95), 63.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -90), 63.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -85), 62.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -80), 62.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -75), 61.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -70), 60.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -65), 58.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -60), 56.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -55), 55.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -50), 53.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -45), 52.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -40), 50.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -35), 49.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -30), 48.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -25), 47.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -20), 47.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -15), 47.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -10), 47.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, -5), 47.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 0), 48.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 5), 48.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 10), 49.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 15), 49.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 20), 50.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 25), 51.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 30), 51.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 35), 52.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 40), 53.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 45), 53.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 50), 54.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 55), 54.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 60), 54.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 65), 54.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 70), 54.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 75), 54.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 80), 54.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 85), 54.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 90), 54.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 95), 54.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 100), 54.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 105), 54.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 110), 54.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 115), 53.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 120), 52.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 125), 51.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 130), 50.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 135), 49.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 140), 48.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 145), 47.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 150), 47.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 155), 46.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 160), 46.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 165), 46.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 170), 47.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 175), 47.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(35, 180), 48.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -180), 53.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -175), 53.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -170), 54.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -165), 55.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -160), 55.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -155), 56.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -150), 57.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -145), 58.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -140), 59.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -135), 60.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -130), 61.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -125), 62.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -120), 63.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -115), 64.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -110), 65.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -105), 66.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -100), 66.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -95), 67.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -90), 67.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -85), 67.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -80), 66.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -75), 65.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -70), 64.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -65), 62.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -60), 61.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -55), 60.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -50), 58.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -45), 57.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -40), 56.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -35), 55.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -30), 55.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -25), 54.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -20), 54.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -15), 54.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -10), 54.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, -5), 54.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 0), 54.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 5), 55.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 10), 55.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 15), 56.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 20), 56.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 25), 57.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 30), 57.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 35), 58.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 40), 58.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 45), 59.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 50), 59.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 55), 59.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 60), 60.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 65), 60.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 70), 60.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 75), 60.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 80), 60.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 85), 60.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 90), 61.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 95), 61.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 100), 60.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 105), 60.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 110), 60.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 115), 59.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 120), 58.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 125), 57.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 130), 56.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 135), 55.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 140), 54.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 145), 53.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 150), 53.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 155), 52.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 160), 52.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 165), 52.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 170), 52.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 175), 52.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(40, 180), 53.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -180), 57.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -175), 57.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -170), 58.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -165), 59.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -160), 59.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -155), 60.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -150), 61.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -145), 62.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -140), 63.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -135), 64.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -130), 65.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -125), 66.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -120), 67.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -115), 68.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -110), 69.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -105), 70.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -100), 70.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -95), 70.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -90), 71.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -85), 70.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -80), 70.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -75), 69.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -70), 68.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -65), 67.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -60), 65.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -55), 64.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -50), 63.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -45), 62.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -40), 61.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -35), 61.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -30), 60.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -25), 60.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -20), 59.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -15), 59.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -10), 60.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, -5), 60.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 0), 60.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 5), 60.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 10), 61.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 15), 61.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 20), 62.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 25), 62.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 30), 63.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 35), 63.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 40), 63.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 45), 64.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 50), 64.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 55), 64.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 60), 65.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 65), 65.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 70), 65.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 75), 65.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 80), 66.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 85), 66.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 90), 66.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 95), 66.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 100), 66.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 105), 66.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 110), 65.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 115), 64.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 120), 64.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 125), 63.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 130), 62.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 135), 61.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 140), 60.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 145), 59.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 150), 58.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 155), 57.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 160), 57.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 165), 57.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 170), 57.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 175), 57.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(45, 180), 57.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -180), 61.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -175), 62.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -170), 62.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -165), 63.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -160), 63.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -155), 64.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -150), 65.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -145), 66.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -140), 67.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -135), 68.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -130), 69.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -125), 70.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -120), 71.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -115), 72.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -110), 72.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -105), 73.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -100), 74.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -95), 74.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -90), 74.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -85), 74.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -80), 73.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -75), 72.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -70), 72.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -65), 71.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -60), 69.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -55), 68.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -50), 67.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -45), 67.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -40), 66.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -35), 65.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -30), 65.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -25), 65.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -20), 64.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -15), 64.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -10), 64.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, -5), 65.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 0), 65.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 5), 65.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 10), 65.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 15), 66.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 20), 66.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 25), 66.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 30), 67.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 35), 67.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 40), 67.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 45), 68.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 50), 68.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 55), 68.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 60), 69.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 65), 69.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 70), 69.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 75), 70.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 80), 70.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 85), 70.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 90), 71.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 95), 71.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 100), 70.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 105), 70.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 110), 70.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 115), 69.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 120), 68.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 125), 67.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 130), 66.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 135), 65.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 140), 64.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 145), 64.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 150), 63.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 155), 62.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 160), 62.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 165), 61.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 170), 61.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 175), 61.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(50, 180), 61.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -180), 66.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -175), 66.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -170), 66.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -165), 67.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -160), 67.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -155), 68.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -150), 69.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -145), 70.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -140), 70.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -135), 71.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -130), 72.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -125), 73.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -120), 74.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -115), 75.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -110), 76.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -105), 77.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -100), 77.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -95), 77.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -90), 77.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -85), 77.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -80), 77.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -75), 76.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -70), 75.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -65), 74.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -60), 73.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -55), 72.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -50), 71.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -45), 71.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -40), 70.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -35), 69.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -30), 69.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -25), 69.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -20), 69.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -15), 69.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -10), 69.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, -5), 69.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 0), 69.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 5), 69.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 10), 69.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 15), 69.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 20), 70.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 25), 70.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 30), 70.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 35), 71.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 40), 71.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 45), 71.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 50), 72.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 55), 72.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 60), 72.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 65), 73.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 70), 73.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 75), 74.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 80), 74.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 85), 74.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 90), 75.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 95), 75.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 100), 75.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 105), 74.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 110), 74.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 115), 73.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 120), 72.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 125), 72.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 130), 71.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 135), 70.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 140), 69.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 145), 68.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 150), 67.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 155), 67.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 160), 66.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 165), 66.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 170), 66.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 175), 66.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(55, 180), 66.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -180), 70.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -175), 70.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -170), 71.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -165), 71.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -160), 71.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -155), 72.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -150), 73.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -145), 73.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -140), 74.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -135), 75.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -130), 76.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -125), 77.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -120), 78.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -115), 78.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -110), 79.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -105), 80.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -100), 80.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -95), 80.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -90), 80.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -85), 80.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -80), 79.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -75), 79.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -70), 78.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -65), 77.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -60), 76.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -55), 76.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -50), 75.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -45), 74.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -40), 74.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -35), 73.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -30), 73.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -25), 72.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -20), 72.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -15), 72.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -10), 72.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, -5), 72.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 0), 72.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 5), 72.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 10), 72.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 15), 73.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 20), 73.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 25), 73.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 30), 73.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 35), 74.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 40), 74.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 45), 74.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 50), 75.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 55), 75.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 60), 76.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 65), 76.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 70), 77.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 75), 77.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 80), 78.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 85), 78.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 90), 78.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 95), 78.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 100), 78.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 105), 78.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 110), 78.0, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 115), 77.4, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 120), 76.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 125), 75.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 130), 75.1, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 135), 74.3, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 140), 73.5, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 145), 72.8, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 150), 72.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 155), 71.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 160), 71.2, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 165), 70.9, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 170), 70.7, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 175), 70.6, 0.21 + 1.2);
EXPECT_NEAR(get_mag_inclination_degrees(60, 180), 70.6, 0.21 + 1.2);
}
TEST(GeoLookupTest, strength)
{
EXPECT_NEAR(get_mag_strength_tesla(-50, -180) * 1e9, 58381, 145 + 584);
EXPECT_NEAR(get_mag_strength_tesla(-50, -175) * 1e9, 57229, 145 + 572);
EXPECT_NEAR(get_mag_strength_tesla(-50, -170) * 1e9, 56063, 145 + 561);
EXPECT_NEAR(get_mag_strength_tesla(-50, -165) * 1e9, 54893, 145 + 549);
EXPECT_NEAR(get_mag_strength_tesla(-50, -160) * 1e9, 53726, 145 + 537);
EXPECT_NEAR(get_mag_strength_tesla(-50, -155) * 1e9, 52562, 145 + 526);
EXPECT_NEAR(get_mag_strength_tesla(-50, -150) * 1e9, 51404, 145 + 514);
EXPECT_NEAR(get_mag_strength_tesla(-50, -145) * 1e9, 50243, 145 + 502);
EXPECT_NEAR(get_mag_strength_tesla(-50, -140) * 1e9, 49068, 145 + 491);
EXPECT_NEAR(get_mag_strength_tesla(-50, -135) * 1e9, 47864, 145 + 479);
EXPECT_NEAR(get_mag_strength_tesla(-50, -130) * 1e9, 46612, 145 + 466);
EXPECT_NEAR(get_mag_strength_tesla(-50, -125) * 1e9, 45295, 145 + 453);
EXPECT_NEAR(get_mag_strength_tesla(-50, -120) * 1e9, 43900, 145 + 439);
EXPECT_NEAR(get_mag_strength_tesla(-50, -115) * 1e9, 42422, 145 + 424);
EXPECT_NEAR(get_mag_strength_tesla(-50, -110) * 1e9, 40865, 145 + 409);
EXPECT_NEAR(get_mag_strength_tesla(-50, -105) * 1e9, 39243, 145 + 392);
EXPECT_NEAR(get_mag_strength_tesla(-50, -100) * 1e9, 37579, 145 + 376);
EXPECT_NEAR(get_mag_strength_tesla(-50, -95) * 1e9, 35908, 145 + 359);
EXPECT_NEAR(get_mag_strength_tesla(-50, -90) * 1e9, 34268, 145 + 343);
EXPECT_NEAR(get_mag_strength_tesla(-50, -85) * 1e9, 32705, 145 + 327);
EXPECT_NEAR(get_mag_strength_tesla(-50, -80) * 1e9, 31261, 145 + 313);
EXPECT_NEAR(get_mag_strength_tesla(-50, -75) * 1e9, 29976, 145 + 300);
EXPECT_NEAR(get_mag_strength_tesla(-50, -70) * 1e9, 28878, 145 + 289);
EXPECT_NEAR(get_mag_strength_tesla(-50, -65) * 1e9, 27982, 145 + 280);
EXPECT_NEAR(get_mag_strength_tesla(-50, -60) * 1e9, 27283, 145 + 273);
EXPECT_NEAR(get_mag_strength_tesla(-50, -55) * 1e9, 26762, 145 + 268);
EXPECT_NEAR(get_mag_strength_tesla(-50, -50) * 1e9, 26384, 145 + 264);
EXPECT_NEAR(get_mag_strength_tesla(-50, -45) * 1e9, 26111, 145 + 261);
EXPECT_NEAR(get_mag_strength_tesla(-50, -40) * 1e9, 25901, 145 + 259);
EXPECT_NEAR(get_mag_strength_tesla(-50, -35) * 1e9, 25721, 145 + 257);
EXPECT_NEAR(get_mag_strength_tesla(-50, -30) * 1e9, 25548, 145 + 255);
EXPECT_NEAR(get_mag_strength_tesla(-50, -25) * 1e9, 25373, 145 + 254);
EXPECT_NEAR(get_mag_strength_tesla(-50, -20) * 1e9, 25198, 145 + 252);
EXPECT_NEAR(get_mag_strength_tesla(-50, -15) * 1e9, 25040, 145 + 250);
EXPECT_NEAR(get_mag_strength_tesla(-50, -10) * 1e9, 24925, 145 + 249);
EXPECT_NEAR(get_mag_strength_tesla(-50, -5) * 1e9, 24890, 145 + 249);
EXPECT_NEAR(get_mag_strength_tesla(-50, 0) * 1e9, 24979, 145 + 250);
EXPECT_NEAR(get_mag_strength_tesla(-50, 5) * 1e9, 25242, 145 + 252);
EXPECT_NEAR(get_mag_strength_tesla(-50, 10) * 1e9, 25725, 145 + 257);
EXPECT_NEAR(get_mag_strength_tesla(-50, 15) * 1e9, 26469, 145 + 265);
EXPECT_NEAR(get_mag_strength_tesla(-50, 20) * 1e9, 27500, 145 + 275);
EXPECT_NEAR(get_mag_strength_tesla(-50, 25) * 1e9, 28830, 145 + 288);
EXPECT_NEAR(get_mag_strength_tesla(-50, 30) * 1e9, 30449, 145 + 304);
EXPECT_NEAR(get_mag_strength_tesla(-50, 35) * 1e9, 32336, 145 + 323);
EXPECT_NEAR(get_mag_strength_tesla(-50, 40) * 1e9, 34454, 145 + 345);
EXPECT_NEAR(get_mag_strength_tesla(-50, 45) * 1e9, 36757, 145 + 368);
EXPECT_NEAR(get_mag_strength_tesla(-50, 50) * 1e9, 39196, 145 + 392);
EXPECT_NEAR(get_mag_strength_tesla(-50, 55) * 1e9, 41719, 145 + 417);
EXPECT_NEAR(get_mag_strength_tesla(-50, 60) * 1e9, 44280, 145 + 443);
EXPECT_NEAR(get_mag_strength_tesla(-50, 65) * 1e9, 46832, 145 + 468);
EXPECT_NEAR(get_mag_strength_tesla(-50, 70) * 1e9, 49338, 145 + 493);
EXPECT_NEAR(get_mag_strength_tesla(-50, 75) * 1e9, 51765, 145 + 518);
EXPECT_NEAR(get_mag_strength_tesla(-50, 80) * 1e9, 54080, 145 + 541);
EXPECT_NEAR(get_mag_strength_tesla(-50, 85) * 1e9, 56254, 145 + 563);
EXPECT_NEAR(get_mag_strength_tesla(-50, 90) * 1e9, 58256, 145 + 583);
EXPECT_NEAR(get_mag_strength_tesla(-50, 95) * 1e9, 60058, 145 + 601);
EXPECT_NEAR(get_mag_strength_tesla(-50, 100) * 1e9, 61633, 145 + 616);
EXPECT_NEAR(get_mag_strength_tesla(-50, 105) * 1e9, 62963, 145 + 630);
EXPECT_NEAR(get_mag_strength_tesla(-50, 110) * 1e9, 64035, 145 + 640);
EXPECT_NEAR(get_mag_strength_tesla(-50, 115) * 1e9, 64845, 145 + 648);
EXPECT_NEAR(get_mag_strength_tesla(-50, 120) * 1e9, 65399, 145 + 654);
EXPECT_NEAR(get_mag_strength_tesla(-50, 125) * 1e9, 65709, 145 + 657);
EXPECT_NEAR(get_mag_strength_tesla(-50, 130) * 1e9, 65791, 145 + 658);
EXPECT_NEAR(get_mag_strength_tesla(-50, 135) * 1e9, 65664, 145 + 657);
EXPECT_NEAR(get_mag_strength_tesla(-50, 140) * 1e9, 65349, 145 + 653);
EXPECT_NEAR(get_mag_strength_tesla(-50, 145) * 1e9, 64864, 145 + 649);
EXPECT_NEAR(get_mag_strength_tesla(-50, 150) * 1e9, 64231, 145 + 642);
EXPECT_NEAR(get_mag_strength_tesla(-50, 155) * 1e9, 63468, 145 + 635);
EXPECT_NEAR(get_mag_strength_tesla(-50, 160) * 1e9, 62596, 145 + 626);
EXPECT_NEAR(get_mag_strength_tesla(-50, 165) * 1e9, 61633, 145 + 616);
EXPECT_NEAR(get_mag_strength_tesla(-50, 170) * 1e9, 60598, 145 + 606);
EXPECT_NEAR(get_mag_strength_tesla(-50, 175) * 1e9, 59508, 145 + 595);
EXPECT_NEAR(get_mag_strength_tesla(-50, 180) * 1e9, 58381, 145 + 584);
EXPECT_NEAR(get_mag_strength_tesla(-45, -180) * 1e9, 56229, 145 + 956);
EXPECT_NEAR(get_mag_strength_tesla(-45, -175) * 1e9, 55022, 145 + 935);
EXPECT_NEAR(get_mag_strength_tesla(-45, -170) * 1e9, 53807, 145 + 915);
EXPECT_NEAR(get_mag_strength_tesla(-45, -165) * 1e9, 52592, 145 + 894);
EXPECT_NEAR(get_mag_strength_tesla(-45, -160) * 1e9, 51384, 145 + 874);
EXPECT_NEAR(get_mag_strength_tesla(-45, -155) * 1e9, 50188, 145 + 853);
EXPECT_NEAR(get_mag_strength_tesla(-45, -150) * 1e9, 49004, 145 + 833);
EXPECT_NEAR(get_mag_strength_tesla(-45, -145) * 1e9, 47828, 145 + 813);
EXPECT_NEAR(get_mag_strength_tesla(-45, -140) * 1e9, 46650, 145 + 793);
EXPECT_NEAR(get_mag_strength_tesla(-45, -135) * 1e9, 45453, 145 + 773);
EXPECT_NEAR(get_mag_strength_tesla(-45, -130) * 1e9, 44217, 145 + 752);
EXPECT_NEAR(get_mag_strength_tesla(-45, -125) * 1e9, 42923, 145 + 730);
EXPECT_NEAR(get_mag_strength_tesla(-45, -120) * 1e9, 41554, 145 + 706);
EXPECT_NEAR(get_mag_strength_tesla(-45, -115) * 1e9, 40100, 145 + 682);
EXPECT_NEAR(get_mag_strength_tesla(-45, -110) * 1e9, 38562, 145 + 656);
EXPECT_NEAR(get_mag_strength_tesla(-45, -105) * 1e9, 36949, 145 + 628);
EXPECT_NEAR(get_mag_strength_tesla(-45, -100) * 1e9, 35284, 145 + 600);
EXPECT_NEAR(get_mag_strength_tesla(-45, -95) * 1e9, 33598, 145 + 571);
EXPECT_NEAR(get_mag_strength_tesla(-45, -90) * 1e9, 31937, 145 + 543);
EXPECT_NEAR(get_mag_strength_tesla(-45, -85) * 1e9, 30351, 145 + 516);
EXPECT_NEAR(get_mag_strength_tesla(-45, -80) * 1e9, 28896, 145 + 491);
EXPECT_NEAR(get_mag_strength_tesla(-45, -75) * 1e9, 27622, 145 + 470);
EXPECT_NEAR(get_mag_strength_tesla(-45, -70) * 1e9, 26568, 145 + 452);
EXPECT_NEAR(get_mag_strength_tesla(-45, -65) * 1e9, 25754, 145 + 438);
EXPECT_NEAR(get_mag_strength_tesla(-45, -60) * 1e9, 25177, 145 + 428);
EXPECT_NEAR(get_mag_strength_tesla(-45, -55) * 1e9, 24809, 145 + 422);
EXPECT_NEAR(get_mag_strength_tesla(-45, -50) * 1e9, 24603, 145 + 418);
EXPECT_NEAR(get_mag_strength_tesla(-45, -45) * 1e9, 24505, 145 + 417);
EXPECT_NEAR(get_mag_strength_tesla(-45, -40) * 1e9, 24462, 145 + 416);
EXPECT_NEAR(get_mag_strength_tesla(-45, -35) * 1e9, 24429, 145 + 415);
EXPECT_NEAR(get_mag_strength_tesla(-45, -30) * 1e9, 24379, 145 + 414);
EXPECT_NEAR(get_mag_strength_tesla(-45, -25) * 1e9, 24298, 145 + 413);
EXPECT_NEAR(get_mag_strength_tesla(-45, -20) * 1e9, 24185, 145 + 411);
EXPECT_NEAR(get_mag_strength_tesla(-45, -15) * 1e9, 24053, 145 + 409);
EXPECT_NEAR(get_mag_strength_tesla(-45, -10) * 1e9, 23926, 145 + 407);
EXPECT_NEAR(get_mag_strength_tesla(-45, -5) * 1e9, 23840, 145 + 405);
EXPECT_NEAR(get_mag_strength_tesla(-45, 0) * 1e9, 23846, 145 + 405);
EXPECT_NEAR(get_mag_strength_tesla(-45, 5) * 1e9, 24003, 145 + 408);
EXPECT_NEAR(get_mag_strength_tesla(-45, 10) * 1e9, 24375, 145 + 414);
EXPECT_NEAR(get_mag_strength_tesla(-45, 15) * 1e9, 25024, 145 + 425);
EXPECT_NEAR(get_mag_strength_tesla(-45, 20) * 1e9, 25994, 145 + 442);
EXPECT_NEAR(get_mag_strength_tesla(-45, 25) * 1e9, 27307, 145 + 464);
EXPECT_NEAR(get_mag_strength_tesla(-45, 30) * 1e9, 28961, 145 + 492);
EXPECT_NEAR(get_mag_strength_tesla(-45, 35) * 1e9, 30928, 145 + 526);
EXPECT_NEAR(get_mag_strength_tesla(-45, 40) * 1e9, 33162, 145 + 564);
EXPECT_NEAR(get_mag_strength_tesla(-45, 45) * 1e9, 35604, 145 + 605);
EXPECT_NEAR(get_mag_strength_tesla(-45, 50) * 1e9, 38189, 145 + 649);
EXPECT_NEAR(get_mag_strength_tesla(-45, 55) * 1e9, 40851, 145 + 694);
EXPECT_NEAR(get_mag_strength_tesla(-45, 60) * 1e9, 43529, 145 + 740);
EXPECT_NEAR(get_mag_strength_tesla(-45, 65) * 1e9, 46171, 145 + 785);
EXPECT_NEAR(get_mag_strength_tesla(-45, 70) * 1e9, 48733, 145 + 828);
EXPECT_NEAR(get_mag_strength_tesla(-45, 75) * 1e9, 51183, 145 + 870);
EXPECT_NEAR(get_mag_strength_tesla(-45, 80) * 1e9, 53492, 145 + 909);
EXPECT_NEAR(get_mag_strength_tesla(-45, 85) * 1e9, 55634, 145 + 946);
EXPECT_NEAR(get_mag_strength_tesla(-45, 90) * 1e9, 57582, 145 + 979);
EXPECT_NEAR(get_mag_strength_tesla(-45, 95) * 1e9, 59309, 145 + 1008);
EXPECT_NEAR(get_mag_strength_tesla(-45, 100) * 1e9, 60794, 145 + 1033);
EXPECT_NEAR(get_mag_strength_tesla(-45, 105) * 1e9, 62019, 145 + 1054);
EXPECT_NEAR(get_mag_strength_tesla(-45, 110) * 1e9, 62979, 145 + 1071);
EXPECT_NEAR(get_mag_strength_tesla(-45, 115) * 1e9, 63675, 145 + 1082);
EXPECT_NEAR(get_mag_strength_tesla(-45, 120) * 1e9, 64118, 145 + 1090);
EXPECT_NEAR(get_mag_strength_tesla(-45, 125) * 1e9, 64325, 145 + 1094);
EXPECT_NEAR(get_mag_strength_tesla(-45, 130) * 1e9, 64313, 145 + 1093);
EXPECT_NEAR(get_mag_strength_tesla(-45, 135) * 1e9, 64102, 145 + 1090);
EXPECT_NEAR(get_mag_strength_tesla(-45, 140) * 1e9, 63711, 145 + 1083);
EXPECT_NEAR(get_mag_strength_tesla(-45, 145) * 1e9, 63158, 145 + 1074);
EXPECT_NEAR(get_mag_strength_tesla(-45, 150) * 1e9, 62458, 145 + 1062);
EXPECT_NEAR(get_mag_strength_tesla(-45, 155) * 1e9, 61631, 145 + 1048);
EXPECT_NEAR(get_mag_strength_tesla(-45, 160) * 1e9, 60693, 145 + 1032);
EXPECT_NEAR(get_mag_strength_tesla(-45, 165) * 1e9, 59665, 145 + 1014);
EXPECT_NEAR(get_mag_strength_tesla(-45, 170) * 1e9, 58566, 145 + 996);
EXPECT_NEAR(get_mag_strength_tesla(-45, 175) * 1e9, 57415, 145 + 976);
EXPECT_NEAR(get_mag_strength_tesla(-45, 180) * 1e9, 56229, 145 + 956);
EXPECT_NEAR(get_mag_strength_tesla(-40, -180) * 1e9, 53891, 145 + 916);
EXPECT_NEAR(get_mag_strength_tesla(-40, -175) * 1e9, 52657, 145 + 895);
EXPECT_NEAR(get_mag_strength_tesla(-40, -170) * 1e9, 51417, 145 + 874);
EXPECT_NEAR(get_mag_strength_tesla(-40, -165) * 1e9, 50180, 145 + 853);
EXPECT_NEAR(get_mag_strength_tesla(-40, -160) * 1e9, 48951, 145 + 832);
EXPECT_NEAR(get_mag_strength_tesla(-40, -155) * 1e9, 47737, 145 + 812);
EXPECT_NEAR(get_mag_strength_tesla(-40, -150) * 1e9, 46540, 145 + 791);
EXPECT_NEAR(get_mag_strength_tesla(-40, -145) * 1e9, 45359, 145 + 771);
EXPECT_NEAR(get_mag_strength_tesla(-40, -140) * 1e9, 44187, 145 + 751);
EXPECT_NEAR(get_mag_strength_tesla(-40, -135) * 1e9, 43009, 145 + 731);
EXPECT_NEAR(get_mag_strength_tesla(-40, -130) * 1e9, 41807, 145 + 711);
EXPECT_NEAR(get_mag_strength_tesla(-40, -125) * 1e9, 40562, 145 + 690);
EXPECT_NEAR(get_mag_strength_tesla(-40, -120) * 1e9, 39255, 145 + 667);
EXPECT_NEAR(get_mag_strength_tesla(-40, -115) * 1e9, 37873, 145 + 644);
EXPECT_NEAR(get_mag_strength_tesla(-40, -110) * 1e9, 36411, 145 + 619);
EXPECT_NEAR(get_mag_strength_tesla(-40, -105) * 1e9, 34872, 145 + 593);
EXPECT_NEAR(get_mag_strength_tesla(-40, -100) * 1e9, 33271, 145 + 566);
EXPECT_NEAR(get_mag_strength_tesla(-40, -95) * 1e9, 31637, 145 + 538);
EXPECT_NEAR(get_mag_strength_tesla(-40, -90) * 1e9, 30015, 145 + 510);
EXPECT_NEAR(get_mag_strength_tesla(-40, -85) * 1e9, 28461, 145 + 484);
EXPECT_NEAR(get_mag_strength_tesla(-40, -80) * 1e9, 27040, 145 + 460);
EXPECT_NEAR(get_mag_strength_tesla(-40, -75) * 1e9, 25814, 145 + 439);
EXPECT_NEAR(get_mag_strength_tesla(-40, -70) * 1e9, 24834, 145 + 422);
EXPECT_NEAR(get_mag_strength_tesla(-40, -65) * 1e9, 24126, 145 + 410);
EXPECT_NEAR(get_mag_strength_tesla(-40, -60) * 1e9, 23686, 145 + 403);
EXPECT_NEAR(get_mag_strength_tesla(-40, -55) * 1e9, 23477, 145 + 399);
EXPECT_NEAR(get_mag_strength_tesla(-40, -50) * 1e9, 23442, 145 + 399);
EXPECT_NEAR(get_mag_strength_tesla(-40, -45) * 1e9, 23514, 145 + 400);
EXPECT_NEAR(get_mag_strength_tesla(-40, -40) * 1e9, 23631, 145 + 402);
EXPECT_NEAR(get_mag_strength_tesla(-40, -35) * 1e9, 23745, 145 + 404);
EXPECT_NEAR(get_mag_strength_tesla(-40, -30) * 1e9, 23827, 145 + 405);
EXPECT_NEAR(get_mag_strength_tesla(-40, -25) * 1e9, 23864, 145 + 406);
EXPECT_NEAR(get_mag_strength_tesla(-40, -20) * 1e9, 23851, 145 + 405);
EXPECT_NEAR(get_mag_strength_tesla(-40, -15) * 1e9, 23794, 145 + 405);
EXPECT_NEAR(get_mag_strength_tesla(-40, -10) * 1e9, 23708, 145 + 403);
EXPECT_NEAR(get_mag_strength_tesla(-40, -5) * 1e9, 23618, 145 + 402);
EXPECT_NEAR(get_mag_strength_tesla(-40, 0) * 1e9, 23571, 145 + 401);
EXPECT_NEAR(get_mag_strength_tesla(-40, 5) * 1e9, 23630, 145 + 402);
EXPECT_NEAR(get_mag_strength_tesla(-40, 10) * 1e9, 23874, 145 + 406);
EXPECT_NEAR(get_mag_strength_tesla(-40, 15) * 1e9, 24383, 145 + 415);
EXPECT_NEAR(get_mag_strength_tesla(-40, 20) * 1e9, 25228, 145 + 429);
EXPECT_NEAR(get_mag_strength_tesla(-40, 25) * 1e9, 26449, 145 + 450);
EXPECT_NEAR(get_mag_strength_tesla(-40, 30) * 1e9, 28055, 145 + 477);
EXPECT_NEAR(get_mag_strength_tesla(-40, 35) * 1e9, 30022, 145 + 510);
EXPECT_NEAR(get_mag_strength_tesla(-40, 40) * 1e9, 32298, 145 + 549);
EXPECT_NEAR(get_mag_strength_tesla(-40, 45) * 1e9, 34811, 145 + 592);
EXPECT_NEAR(get_mag_strength_tesla(-40, 50) * 1e9, 37480, 145 + 637);
EXPECT_NEAR(get_mag_strength_tesla(-40, 55) * 1e9, 40222, 145 + 684);
EXPECT_NEAR(get_mag_strength_tesla(-40, 60) * 1e9, 42960, 145 + 730);
EXPECT_NEAR(get_mag_strength_tesla(-40, 65) * 1e9, 45631, 145 + 776);
EXPECT_NEAR(get_mag_strength_tesla(-40, 70) * 1e9, 48187, 145 + 819);
EXPECT_NEAR(get_mag_strength_tesla(-40, 75) * 1e9, 50596, 145 + 860);
EXPECT_NEAR(get_mag_strength_tesla(-40, 80) * 1e9, 52831, 145 + 898);
EXPECT_NEAR(get_mag_strength_tesla(-40, 85) * 1e9, 54870, 145 + 933);
EXPECT_NEAR(get_mag_strength_tesla(-40, 90) * 1e9, 56691, 145 + 964);
EXPECT_NEAR(get_mag_strength_tesla(-40, 95) * 1e9, 58272, 145 + 991);
EXPECT_NEAR(get_mag_strength_tesla(-40, 100) * 1e9, 59598, 145 + 1013);
EXPECT_NEAR(get_mag_strength_tesla(-40, 105) * 1e9, 60660, 145 + 1031);
EXPECT_NEAR(get_mag_strength_tesla(-40, 110) * 1e9, 61461, 145 + 1045);
EXPECT_NEAR(get_mag_strength_tesla(-40, 115) * 1e9, 62012, 145 + 1054);
EXPECT_NEAR(get_mag_strength_tesla(-40, 120) * 1e9, 62330, 145 + 1060);
EXPECT_NEAR(get_mag_strength_tesla(-40, 125) * 1e9, 62435, 145 + 1061);
EXPECT_NEAR(get_mag_strength_tesla(-40, 130) * 1e9, 62344, 145 + 1060);
EXPECT_NEAR(get_mag_strength_tesla(-40, 135) * 1e9, 62073, 145 + 1055);
EXPECT_NEAR(get_mag_strength_tesla(-40, 140) * 1e9, 61636, 145 + 1048);
EXPECT_NEAR(get_mag_strength_tesla(-40, 145) * 1e9, 61045, 145 + 1038);
EXPECT_NEAR(get_mag_strength_tesla(-40, 150) * 1e9, 60313, 145 + 1025);
EXPECT_NEAR(get_mag_strength_tesla(-40, 155) * 1e9, 59455, 145 + 1011);
EXPECT_NEAR(get_mag_strength_tesla(-40, 160) * 1e9, 58486, 145 + 994);
EXPECT_NEAR(get_mag_strength_tesla(-40, 165) * 1e9, 57425, 145 + 976);
EXPECT_NEAR(get_mag_strength_tesla(-40, 170) * 1e9, 56292, 145 + 957);
EXPECT_NEAR(get_mag_strength_tesla(-40, 175) * 1e9, 55108, 145 + 937);
EXPECT_NEAR(get_mag_strength_tesla(-40, 180) * 1e9, 53891, 145 + 916);
EXPECT_NEAR(get_mag_strength_tesla(-35, -180) * 1e9, 51395, 145 + 874);
EXPECT_NEAR(get_mag_strength_tesla(-35, -175) * 1e9, 50159, 145 + 853);
EXPECT_NEAR(get_mag_strength_tesla(-35, -170) * 1e9, 48920, 145 + 832);
EXPECT_NEAR(get_mag_strength_tesla(-35, -165) * 1e9, 47684, 145 + 811);
EXPECT_NEAR(get_mag_strength_tesla(-35, -160) * 1e9, 46457, 145 + 790);
EXPECT_NEAR(get_mag_strength_tesla(-35, -155) * 1e9, 45244, 145 + 769);
EXPECT_NEAR(get_mag_strength_tesla(-35, -150) * 1e9, 44050, 145 + 749);
EXPECT_NEAR(get_mag_strength_tesla(-35, -145) * 1e9, 42876, 145 + 729);
EXPECT_NEAR(get_mag_strength_tesla(-35, -140) * 1e9, 41719, 145 + 709);
EXPECT_NEAR(get_mag_strength_tesla(-35, -135) * 1e9, 40571, 145 + 690);
EXPECT_NEAR(get_mag_strength_tesla(-35, -130) * 1e9, 39417, 145 + 670);
EXPECT_NEAR(get_mag_strength_tesla(-35, -125) * 1e9, 38241, 145 + 650);
EXPECT_NEAR(get_mag_strength_tesla(-35, -120) * 1e9, 37025, 145 + 629);
EXPECT_NEAR(get_mag_strength_tesla(-35, -115) * 1e9, 35754, 145 + 608);
EXPECT_NEAR(get_mag_strength_tesla(-35, -110) * 1e9, 34415, 145 + 585);
EXPECT_NEAR(get_mag_strength_tesla(-35, -105) * 1e9, 33004, 145 + 561);
EXPECT_NEAR(get_mag_strength_tesla(-35, -100) * 1e9, 31525, 145 + 536);
EXPECT_NEAR(get_mag_strength_tesla(-35, -95) * 1e9, 30000, 145 + 510);
EXPECT_NEAR(get_mag_strength_tesla(-35, -90) * 1e9, 28473, 145 + 484);
EXPECT_NEAR(get_mag_strength_tesla(-35, -85) * 1e9, 27001, 145 + 459);
EXPECT_NEAR(get_mag_strength_tesla(-35, -80) * 1e9, 25658, 145 + 436);
EXPECT_NEAR(get_mag_strength_tesla(-35, -75) * 1e9, 24516, 145 + 417);
EXPECT_NEAR(get_mag_strength_tesla(-35, -70) * 1e9, 23633, 145 + 402);
EXPECT_NEAR(get_mag_strength_tesla(-35, -65) * 1e9, 23041, 145 + 392);
EXPECT_NEAR(get_mag_strength_tesla(-35, -60) * 1e9, 22734, 145 + 386);
EXPECT_NEAR(get_mag_strength_tesla(-35, -55) * 1e9, 22669, 145 + 385);
EXPECT_NEAR(get_mag_strength_tesla(-35, -50) * 1e9, 22780, 145 + 387);
EXPECT_NEAR(get_mag_strength_tesla(-35, -45) * 1e9, 22992, 145 + 391);
EXPECT_NEAR(get_mag_strength_tesla(-35, -40) * 1e9, 23243, 145 + 395);
EXPECT_NEAR(get_mag_strength_tesla(-35, -35) * 1e9, 23488, 145 + 399);
EXPECT_NEAR(get_mag_strength_tesla(-35, -30) * 1e9, 23703, 145 + 403);
EXPECT_NEAR(get_mag_strength_tesla(-35, -25) * 1e9, 23879, 145 + 406);
EXPECT_NEAR(get_mag_strength_tesla(-35, -20) * 1e9, 24009, 145 + 408);
EXPECT_NEAR(get_mag_strength_tesla(-35, -15) * 1e9, 24089, 145 + 410);
EXPECT_NEAR(get_mag_strength_tesla(-35, -10) * 1e9, 24115, 145 + 410);
EXPECT_NEAR(get_mag_strength_tesla(-35, -5) * 1e9, 24097, 145 + 410);
EXPECT_NEAR(get_mag_strength_tesla(-35, 0) * 1e9, 24065, 145 + 409);
EXPECT_NEAR(get_mag_strength_tesla(-35, 5) * 1e9, 24076, 145 + 409);
EXPECT_NEAR(get_mag_strength_tesla(-35, 10) * 1e9, 24213, 145 + 412);
EXPECT_NEAR(get_mag_strength_tesla(-35, 15) * 1e9, 24572, 145 + 418);
EXPECT_NEAR(get_mag_strength_tesla(-35, 20) * 1e9, 25246, 145 + 429);
EXPECT_NEAR(get_mag_strength_tesla(-35, 25) * 1e9, 26301, 145 + 447);
EXPECT_NEAR(get_mag_strength_tesla(-35, 30) * 1e9, 27767, 145 + 472);
EXPECT_NEAR(get_mag_strength_tesla(-35, 35) * 1e9, 29634, 145 + 504);
EXPECT_NEAR(get_mag_strength_tesla(-35, 40) * 1e9, 31853, 145 + 541);
EXPECT_NEAR(get_mag_strength_tesla(-35, 45) * 1e9, 34345, 145 + 584);
EXPECT_NEAR(get_mag_strength_tesla(-35, 50) * 1e9, 37016, 145 + 629);
EXPECT_NEAR(get_mag_strength_tesla(-35, 55) * 1e9, 39765, 145 + 676);
EXPECT_NEAR(get_mag_strength_tesla(-35, 60) * 1e9, 42499, 145 + 722);
EXPECT_NEAR(get_mag_strength_tesla(-35, 65) * 1e9, 45143, 145 + 767);
EXPECT_NEAR(get_mag_strength_tesla(-35, 70) * 1e9, 47642, 145 + 810);
EXPECT_NEAR(get_mag_strength_tesla(-35, 75) * 1e9, 49959, 145 + 849);
EXPECT_NEAR(get_mag_strength_tesla(-35, 80) * 1e9, 52070, 145 + 885);
EXPECT_NEAR(get_mag_strength_tesla(-35, 85) * 1e9, 53955, 145 + 917);
EXPECT_NEAR(get_mag_strength_tesla(-35, 90) * 1e9, 55595, 145 + 945);
EXPECT_NEAR(get_mag_strength_tesla(-35, 95) * 1e9, 56975, 145 + 969);
EXPECT_NEAR(get_mag_strength_tesla(-35, 100) * 1e9, 58088, 145 + 987);
EXPECT_NEAR(get_mag_strength_tesla(-35, 105) * 1e9, 58937, 145 + 1002);
EXPECT_NEAR(get_mag_strength_tesla(-35, 110) * 1e9, 59541, 145 + 1012);
EXPECT_NEAR(get_mag_strength_tesla(-35, 115) * 1e9, 59924, 145 + 1019);
EXPECT_NEAR(get_mag_strength_tesla(-35, 120) * 1e9, 60110, 145 + 1022);
EXPECT_NEAR(get_mag_strength_tesla(-35, 125) * 1e9, 60120, 145 + 1022);
EXPECT_NEAR(get_mag_strength_tesla(-35, 130) * 1e9, 59966, 145 + 1019);
EXPECT_NEAR(get_mag_strength_tesla(-35, 135) * 1e9, 59656, 145 + 1014);
EXPECT_NEAR(get_mag_strength_tesla(-35, 140) * 1e9, 59195, 145 + 1006);
EXPECT_NEAR(get_mag_strength_tesla(-35, 145) * 1e9, 58591, 145 + 996);
EXPECT_NEAR(get_mag_strength_tesla(-35, 150) * 1e9, 57852, 145 + 983);
EXPECT_NEAR(get_mag_strength_tesla(-35, 155) * 1e9, 56990, 145 + 969);
EXPECT_NEAR(get_mag_strength_tesla(-35, 160) * 1e9, 56016, 145 + 952);
EXPECT_NEAR(get_mag_strength_tesla(-35, 165) * 1e9, 54949, 145 + 934);
EXPECT_NEAR(get_mag_strength_tesla(-35, 170) * 1e9, 53808, 145 + 915);
EXPECT_NEAR(get_mag_strength_tesla(-35, 175) * 1e9, 52617, 145 + 894);
EXPECT_NEAR(get_mag_strength_tesla(-35, 180) * 1e9, 51395, 145 + 874);
EXPECT_NEAR(get_mag_strength_tesla(-30, -180) * 1e9, 48756, 145 + 488);
EXPECT_NEAR(get_mag_strength_tesla(-30, -175) * 1e9, 47544, 145 + 475);
EXPECT_NEAR(get_mag_strength_tesla(-30, -170) * 1e9, 46333, 145 + 463);
EXPECT_NEAR(get_mag_strength_tesla(-30, -165) * 1e9, 45126, 145 + 451);
EXPECT_NEAR(get_mag_strength_tesla(-30, -160) * 1e9, 43927, 145 + 439);
EXPECT_NEAR(get_mag_strength_tesla(-30, -155) * 1e9, 42740, 145 + 427);
EXPECT_NEAR(get_mag_strength_tesla(-30, -150) * 1e9, 41570, 145 + 416);
EXPECT_NEAR(get_mag_strength_tesla(-30, -145) * 1e9, 40422, 145 + 404);
EXPECT_NEAR(get_mag_strength_tesla(-30, -140) * 1e9, 39299, 145 + 393);
EXPECT_NEAR(get_mag_strength_tesla(-30, -135) * 1e9, 38196, 145 + 382);
EXPECT_NEAR(get_mag_strength_tesla(-30, -130) * 1e9, 37106, 145 + 371);
EXPECT_NEAR(get_mag_strength_tesla(-30, -125) * 1e9, 36016, 145 + 360);
EXPECT_NEAR(get_mag_strength_tesla(-30, -120) * 1e9, 34912, 145 + 349);
EXPECT_NEAR(get_mag_strength_tesla(-30, -115) * 1e9, 33779, 145 + 338);
EXPECT_NEAR(get_mag_strength_tesla(-30, -110) * 1e9, 32597, 145 + 326);
EXPECT_NEAR(get_mag_strength_tesla(-30, -105) * 1e9, 31351, 145 + 314);
EXPECT_NEAR(get_mag_strength_tesla(-30, -100) * 1e9, 30036, 145 + 300);
EXPECT_NEAR(get_mag_strength_tesla(-30, -95) * 1e9, 28666, 145 + 287);
EXPECT_NEAR(get_mag_strength_tesla(-30, -90) * 1e9, 27279, 145 + 273);
EXPECT_NEAR(get_mag_strength_tesla(-30, -85) * 1e9, 25935, 145 + 259);
EXPECT_NEAR(get_mag_strength_tesla(-30, -80) * 1e9, 24708, 145 + 247);
EXPECT_NEAR(get_mag_strength_tesla(-30, -75) * 1e9, 23678, 145 + 237);
EXPECT_NEAR(get_mag_strength_tesla(-30, -70) * 1e9, 22907, 145 + 229);
EXPECT_NEAR(get_mag_strength_tesla(-30, -65) * 1e9, 22429, 145 + 224);
EXPECT_NEAR(get_mag_strength_tesla(-30, -60) * 1e9, 22237, 145 + 222);
EXPECT_NEAR(get_mag_strength_tesla(-30, -55) * 1e9, 22285, 145 + 223);
EXPECT_NEAR(get_mag_strength_tesla(-30, -50) * 1e9, 22503, 145 + 225);
EXPECT_NEAR(get_mag_strength_tesla(-30, -45) * 1e9, 22819, 145 + 228);
EXPECT_NEAR(get_mag_strength_tesla(-30, -40) * 1e9, 23172, 145 + 232);
EXPECT_NEAR(get_mag_strength_tesla(-30, -35) * 1e9, 23528, 145 + 235);
EXPECT_NEAR(get_mag_strength_tesla(-30, -30) * 1e9, 23872, 145 + 239);
EXPECT_NEAR(get_mag_strength_tesla(-30, -25) * 1e9, 24202, 145 + 242);
EXPECT_NEAR(get_mag_strength_tesla(-30, -20) * 1e9, 24508, 145 + 245);
EXPECT_NEAR(get_mag_strength_tesla(-30, -15) * 1e9, 24776, 145 + 248);
EXPECT_NEAR(get_mag_strength_tesla(-30, -10) * 1e9, 24980, 145 + 250);
EXPECT_NEAR(get_mag_strength_tesla(-30, -5) * 1e9, 25108, 145 + 251);
EXPECT_NEAR(get_mag_strength_tesla(-30, 0) * 1e9, 25167, 145 + 252);
EXPECT_NEAR(get_mag_strength_tesla(-30, 5) * 1e9, 25198, 145 + 252);
EXPECT_NEAR(get_mag_strength_tesla(-30, 10) * 1e9, 25280, 145 + 253);
EXPECT_NEAR(get_mag_strength_tesla(-30, 15) * 1e9, 25510, 145 + 255);
EXPECT_NEAR(get_mag_strength_tesla(-30, 20) * 1e9, 25997, 145 + 260);
EXPECT_NEAR(get_mag_strength_tesla(-30, 25) * 1e9, 26831, 145 + 268);
EXPECT_NEAR(get_mag_strength_tesla(-30, 30) * 1e9, 28071, 145 + 281);
EXPECT_NEAR(get_mag_strength_tesla(-30, 35) * 1e9, 29731, 145 + 297);
EXPECT_NEAR(get_mag_strength_tesla(-30, 40) * 1e9, 31780, 145 + 318);
EXPECT_NEAR(get_mag_strength_tesla(-30, 45) * 1e9, 34142, 145 + 341);
EXPECT_NEAR(get_mag_strength_tesla(-30, 50) * 1e9, 36716, 145 + 367);
EXPECT_NEAR(get_mag_strength_tesla(-30, 55) * 1e9, 39386, 145 + 394);
EXPECT_NEAR(get_mag_strength_tesla(-30, 60) * 1e9, 42045, 145 + 420);
EXPECT_NEAR(get_mag_strength_tesla(-30, 65) * 1e9, 44603, 145 + 446);
EXPECT_NEAR(get_mag_strength_tesla(-30, 70) * 1e9, 46997, 145 + 470);
EXPECT_NEAR(get_mag_strength_tesla(-30, 75) * 1e9, 49186, 145 + 492);
EXPECT_NEAR(get_mag_strength_tesla(-30, 80) * 1e9, 51141, 145 + 511);
EXPECT_NEAR(get_mag_strength_tesla(-30, 85) * 1e9, 52842, 145 + 528);
EXPECT_NEAR(get_mag_strength_tesla(-30, 90) * 1e9, 54270, 145 + 543);
EXPECT_NEAR(get_mag_strength_tesla(-30, 95) * 1e9, 55414, 145 + 554);
EXPECT_NEAR(get_mag_strength_tesla(-30, 100) * 1e9, 56277, 145 + 563);
EXPECT_NEAR(get_mag_strength_tesla(-30, 105) * 1e9, 56882, 145 + 569);
EXPECT_NEAR(get_mag_strength_tesla(-30, 110) * 1e9, 57266, 145 + 573);
EXPECT_NEAR(get_mag_strength_tesla(-30, 115) * 1e9, 57469, 145 + 575);
EXPECT_NEAR(get_mag_strength_tesla(-30, 120) * 1e9, 57524, 145 + 575);
EXPECT_NEAR(get_mag_strength_tesla(-30, 125) * 1e9, 57449, 145 + 574);
EXPECT_NEAR(get_mag_strength_tesla(-30, 130) * 1e9, 57246, 145 + 572);
EXPECT_NEAR(get_mag_strength_tesla(-30, 135) * 1e9, 56913, 145 + 569);
EXPECT_NEAR(get_mag_strength_tesla(-30, 140) * 1e9, 56445, 145 + 564);
EXPECT_NEAR(get_mag_strength_tesla(-30, 145) * 1e9, 55843, 145 + 558);
EXPECT_NEAR(get_mag_strength_tesla(-30, 150) * 1e9, 55113, 145 + 551);
EXPECT_NEAR(get_mag_strength_tesla(-30, 155) * 1e9, 54264, 145 + 543);
EXPECT_NEAR(get_mag_strength_tesla(-30, 160) * 1e9, 53306, 145 + 533);
EXPECT_NEAR(get_mag_strength_tesla(-30, 165) * 1e9, 52256, 145 + 523);
EXPECT_NEAR(get_mag_strength_tesla(-30, 170) * 1e9, 51132, 145 + 511);
EXPECT_NEAR(get_mag_strength_tesla(-30, 175) * 1e9, 49958, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-30, 180) * 1e9, 48756, 145 + 488);
EXPECT_NEAR(get_mag_strength_tesla(-25, -180) * 1e9, 46003, 145 + 460);
EXPECT_NEAR(get_mag_strength_tesla(-25, -175) * 1e9, 44843, 145 + 448);
EXPECT_NEAR(get_mag_strength_tesla(-25, -170) * 1e9, 43688, 145 + 437);
EXPECT_NEAR(get_mag_strength_tesla(-25, -165) * 1e9, 42540, 145 + 425);
EXPECT_NEAR(get_mag_strength_tesla(-25, -160) * 1e9, 41400, 145 + 414);
EXPECT_NEAR(get_mag_strength_tesla(-25, -155) * 1e9, 40270, 145 + 403);
EXPECT_NEAR(get_mag_strength_tesla(-25, -150) * 1e9, 39156, 145 + 392);
EXPECT_NEAR(get_mag_strength_tesla(-25, -145) * 1e9, 38065, 145 + 381);
EXPECT_NEAR(get_mag_strength_tesla(-25, -140) * 1e9, 37002, 145 + 370);
EXPECT_NEAR(get_mag_strength_tesla(-25, -135) * 1e9, 35968, 145 + 360);
EXPECT_NEAR(get_mag_strength_tesla(-25, -130) * 1e9, 34961, 145 + 350);
EXPECT_NEAR(get_mag_strength_tesla(-25, -125) * 1e9, 33976, 145 + 340);
EXPECT_NEAR(get_mag_strength_tesla(-25, -120) * 1e9, 33002, 145 + 330);
EXPECT_NEAR(get_mag_strength_tesla(-25, -115) * 1e9, 32022, 145 + 320);
EXPECT_NEAR(get_mag_strength_tesla(-25, -110) * 1e9, 31015, 145 + 310);
EXPECT_NEAR(get_mag_strength_tesla(-25, -105) * 1e9, 29956, 145 + 300);
EXPECT_NEAR(get_mag_strength_tesla(-25, -100) * 1e9, 28831, 145 + 288);
EXPECT_NEAR(get_mag_strength_tesla(-25, -95) * 1e9, 27647, 145 + 276);
EXPECT_NEAR(get_mag_strength_tesla(-25, -90) * 1e9, 26436, 145 + 264);
EXPECT_NEAR(get_mag_strength_tesla(-25, -85) * 1e9, 25254, 145 + 253);
EXPECT_NEAR(get_mag_strength_tesla(-25, -80) * 1e9, 24176, 145 + 242);
EXPECT_NEAR(get_mag_strength_tesla(-25, -75) * 1e9, 23277, 145 + 233);
EXPECT_NEAR(get_mag_strength_tesla(-25, -70) * 1e9, 22621, 145 + 226);
EXPECT_NEAR(get_mag_strength_tesla(-25, -65) * 1e9, 22242, 145 + 222);
EXPECT_NEAR(get_mag_strength_tesla(-25, -60) * 1e9, 22133, 145 + 221);
EXPECT_NEAR(get_mag_strength_tesla(-25, -55) * 1e9, 22255, 145 + 223);
EXPECT_NEAR(get_mag_strength_tesla(-25, -50) * 1e9, 22541, 145 + 225);
EXPECT_NEAR(get_mag_strength_tesla(-25, -45) * 1e9, 22924, 145 + 229);
EXPECT_NEAR(get_mag_strength_tesla(-25, -40) * 1e9, 23354, 145 + 234);
EXPECT_NEAR(get_mag_strength_tesla(-25, -35) * 1e9, 23805, 145 + 238);
EXPECT_NEAR(get_mag_strength_tesla(-25, -30) * 1e9, 24272, 145 + 243);
EXPECT_NEAR(get_mag_strength_tesla(-25, -25) * 1e9, 24757, 145 + 248);
EXPECT_NEAR(get_mag_strength_tesla(-25, -20) * 1e9, 25249, 145 + 252);
EXPECT_NEAR(get_mag_strength_tesla(-25, -15) * 1e9, 25722, 145 + 257);
EXPECT_NEAR(get_mag_strength_tesla(-25, -10) * 1e9, 26133, 145 + 261);
EXPECT_NEAR(get_mag_strength_tesla(-25, -5) * 1e9, 26446, 145 + 264);
EXPECT_NEAR(get_mag_strength_tesla(-25, 0) * 1e9, 26647, 145 + 266);
EXPECT_NEAR(get_mag_strength_tesla(-25, 5) * 1e9, 26756, 145 + 268);
EXPECT_NEAR(get_mag_strength_tesla(-25, 10) * 1e9, 26835, 145 + 268);
EXPECT_NEAR(get_mag_strength_tesla(-25, 15) * 1e9, 26977, 145 + 270);
EXPECT_NEAR(get_mag_strength_tesla(-25, 20) * 1e9, 27290, 145 + 273);
EXPECT_NEAR(get_mag_strength_tesla(-25, 25) * 1e9, 27881, 145 + 279);
EXPECT_NEAR(get_mag_strength_tesla(-25, 30) * 1e9, 28837, 145 + 288);
EXPECT_NEAR(get_mag_strength_tesla(-25, 35) * 1e9, 30207, 145 + 302);
EXPECT_NEAR(get_mag_strength_tesla(-25, 40) * 1e9, 31984, 145 + 320);
EXPECT_NEAR(get_mag_strength_tesla(-25, 45) * 1e9, 34111, 145 + 341);
EXPECT_NEAR(get_mag_strength_tesla(-25, 50) * 1e9, 36486, 145 + 365);
EXPECT_NEAR(get_mag_strength_tesla(-25, 55) * 1e9, 38986, 145 + 390);
EXPECT_NEAR(get_mag_strength_tesla(-25, 60) * 1e9, 41492, 145 + 415);
EXPECT_NEAR(get_mag_strength_tesla(-25, 65) * 1e9, 43903, 145 + 439);
EXPECT_NEAR(get_mag_strength_tesla(-25, 70) * 1e9, 46147, 145 + 461);
EXPECT_NEAR(get_mag_strength_tesla(-25, 75) * 1e9, 48178, 145 + 482);
EXPECT_NEAR(get_mag_strength_tesla(-25, 80) * 1e9, 49960, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(-25, 85) * 1e9, 51465, 145 + 515);
EXPECT_NEAR(get_mag_strength_tesla(-25, 90) * 1e9, 52671, 145 + 527);
EXPECT_NEAR(get_mag_strength_tesla(-25, 95) * 1e9, 53568, 145 + 536);
EXPECT_NEAR(get_mag_strength_tesla(-25, 100) * 1e9, 54171, 145 + 542);
EXPECT_NEAR(get_mag_strength_tesla(-25, 105) * 1e9, 54522, 145 + 545);
EXPECT_NEAR(get_mag_strength_tesla(-25, 110) * 1e9, 54681, 145 + 547);
EXPECT_NEAR(get_mag_strength_tesla(-25, 115) * 1e9, 54707, 145 + 547);
EXPECT_NEAR(get_mag_strength_tesla(-25, 120) * 1e9, 54640, 145 + 546);
EXPECT_NEAR(get_mag_strength_tesla(-25, 125) * 1e9, 54492, 145 + 545);
EXPECT_NEAR(get_mag_strength_tesla(-25, 130) * 1e9, 54255, 145 + 543);
EXPECT_NEAR(get_mag_strength_tesla(-25, 135) * 1e9, 53910, 145 + 539);
EXPECT_NEAR(get_mag_strength_tesla(-25, 140) * 1e9, 53442, 145 + 534);
EXPECT_NEAR(get_mag_strength_tesla(-25, 145) * 1e9, 52848, 145 + 528);
EXPECT_NEAR(get_mag_strength_tesla(-25, 150) * 1e9, 52135, 145 + 521);
EXPECT_NEAR(get_mag_strength_tesla(-25, 155) * 1e9, 51310, 145 + 513);
EXPECT_NEAR(get_mag_strength_tesla(-25, 160) * 1e9, 50386, 145 + 504);
EXPECT_NEAR(get_mag_strength_tesla(-25, 165) * 1e9, 49373, 145 + 494);
EXPECT_NEAR(get_mag_strength_tesla(-25, 170) * 1e9, 48289, 145 + 483);
EXPECT_NEAR(get_mag_strength_tesla(-25, 175) * 1e9, 47158, 145 + 472);
EXPECT_NEAR(get_mag_strength_tesla(-25, 180) * 1e9, 46003, 145 + 460);
EXPECT_NEAR(get_mag_strength_tesla(-20, -180) * 1e9, 43196, 145 + 432);
EXPECT_NEAR(get_mag_strength_tesla(-20, -175) * 1e9, 42117, 145 + 421);
EXPECT_NEAR(get_mag_strength_tesla(-20, -170) * 1e9, 41050, 145 + 410);
EXPECT_NEAR(get_mag_strength_tesla(-20, -165) * 1e9, 39994, 145 + 400);
EXPECT_NEAR(get_mag_strength_tesla(-20, -160) * 1e9, 38947, 145 + 389);
EXPECT_NEAR(get_mag_strength_tesla(-20, -155) * 1e9, 37911, 145 + 379);
EXPECT_NEAR(get_mag_strength_tesla(-20, -150) * 1e9, 36890, 145 + 369);
EXPECT_NEAR(get_mag_strength_tesla(-20, -145) * 1e9, 35892, 145 + 359);
EXPECT_NEAR(get_mag_strength_tesla(-20, -140) * 1e9, 34924, 145 + 349);
EXPECT_NEAR(get_mag_strength_tesla(-20, -135) * 1e9, 33992, 145 + 340);
EXPECT_NEAR(get_mag_strength_tesla(-20, -130) * 1e9, 33096, 145 + 331);
EXPECT_NEAR(get_mag_strength_tesla(-20, -125) * 1e9, 32237, 145 + 322);
EXPECT_NEAR(get_mag_strength_tesla(-20, -120) * 1e9, 31407, 145 + 314);
EXPECT_NEAR(get_mag_strength_tesla(-20, -115) * 1e9, 30591, 145 + 306);
EXPECT_NEAR(get_mag_strength_tesla(-20, -110) * 1e9, 29765, 145 + 298);
EXPECT_NEAR(get_mag_strength_tesla(-20, -105) * 1e9, 28901, 145 + 289);
EXPECT_NEAR(get_mag_strength_tesla(-20, -100) * 1e9, 27980, 145 + 280);
EXPECT_NEAR(get_mag_strength_tesla(-20, -95) * 1e9, 27000, 145 + 270);
EXPECT_NEAR(get_mag_strength_tesla(-20, -90) * 1e9, 25988, 145 + 260);
EXPECT_NEAR(get_mag_strength_tesla(-20, -85) * 1e9, 24993, 145 + 250);
EXPECT_NEAR(get_mag_strength_tesla(-20, -80) * 1e9, 24080, 145 + 241);
EXPECT_NEAR(get_mag_strength_tesla(-20, -75) * 1e9, 23319, 145 + 233);
EXPECT_NEAR(get_mag_strength_tesla(-20, -70) * 1e9, 22766, 145 + 228);
EXPECT_NEAR(get_mag_strength_tesla(-20, -65) * 1e9, 22457, 145 + 225);
EXPECT_NEAR(get_mag_strength_tesla(-20, -60) * 1e9, 22392, 145 + 224);
EXPECT_NEAR(get_mag_strength_tesla(-20, -55) * 1e9, 22542, 145 + 225);
EXPECT_NEAR(get_mag_strength_tesla(-20, -50) * 1e9, 22856, 145 + 229);
EXPECT_NEAR(get_mag_strength_tesla(-20, -45) * 1e9, 23277, 145 + 233);
EXPECT_NEAR(get_mag_strength_tesla(-20, -40) * 1e9, 23763, 145 + 238);
EXPECT_NEAR(get_mag_strength_tesla(-20, -35) * 1e9, 24295, 145 + 243);
EXPECT_NEAR(get_mag_strength_tesla(-20, -30) * 1e9, 24870, 145 + 249);
EXPECT_NEAR(get_mag_strength_tesla(-20, -25) * 1e9, 25491, 145 + 255);
EXPECT_NEAR(get_mag_strength_tesla(-20, -20) * 1e9, 26144, 145 + 261);
EXPECT_NEAR(get_mag_strength_tesla(-20, -15) * 1e9, 26796, 145 + 268);
EXPECT_NEAR(get_mag_strength_tesla(-20, -10) * 1e9, 27393, 145 + 274);
EXPECT_NEAR(get_mag_strength_tesla(-20, -5) * 1e9, 27882, 145 + 279);
EXPECT_NEAR(get_mag_strength_tesla(-20, 0) * 1e9, 28231, 145 + 282);
EXPECT_NEAR(get_mag_strength_tesla(-20, 5) * 1e9, 28442, 145 + 284);
EXPECT_NEAR(get_mag_strength_tesla(-20, 10) * 1e9, 28557, 145 + 286);
EXPECT_NEAR(get_mag_strength_tesla(-20, 15) * 1e9, 28651, 145 + 287);
EXPECT_NEAR(get_mag_strength_tesla(-20, 20) * 1e9, 28824, 145 + 288);
EXPECT_NEAR(get_mag_strength_tesla(-20, 25) * 1e9, 29189, 145 + 292);
EXPECT_NEAR(get_mag_strength_tesla(-20, 30) * 1e9, 29852, 145 + 299);
EXPECT_NEAR(get_mag_strength_tesla(-20, 35) * 1e9, 30892, 145 + 309);
EXPECT_NEAR(get_mag_strength_tesla(-20, 40) * 1e9, 32337, 145 + 323);
EXPECT_NEAR(get_mag_strength_tesla(-20, 45) * 1e9, 34151, 145 + 342);
EXPECT_NEAR(get_mag_strength_tesla(-20, 50) * 1e9, 36243, 145 + 362);
EXPECT_NEAR(get_mag_strength_tesla(-20, 55) * 1e9, 38491, 145 + 385);
EXPECT_NEAR(get_mag_strength_tesla(-20, 60) * 1e9, 40770, 145 + 408);
EXPECT_NEAR(get_mag_strength_tesla(-20, 65) * 1e9, 42974, 145 + 430);
EXPECT_NEAR(get_mag_strength_tesla(-20, 70) * 1e9, 45026, 145 + 450);
EXPECT_NEAR(get_mag_strength_tesla(-20, 75) * 1e9, 46871, 145 + 469);
EXPECT_NEAR(get_mag_strength_tesla(-20, 80) * 1e9, 48468, 145 + 485);
EXPECT_NEAR(get_mag_strength_tesla(-20, 85) * 1e9, 49779, 145 + 498);
EXPECT_NEAR(get_mag_strength_tesla(-20, 90) * 1e9, 50772, 145 + 508);
EXPECT_NEAR(get_mag_strength_tesla(-20, 95) * 1e9, 51436, 145 + 514);
EXPECT_NEAR(get_mag_strength_tesla(-20, 100) * 1e9, 51796, 145 + 518);
EXPECT_NEAR(get_mag_strength_tesla(-20, 105) * 1e9, 51911, 145 + 519);
EXPECT_NEAR(get_mag_strength_tesla(-20, 110) * 1e9, 51864, 145 + 519);
EXPECT_NEAR(get_mag_strength_tesla(-20, 115) * 1e9, 51730, 145 + 517);
EXPECT_NEAR(get_mag_strength_tesla(-20, 120) * 1e9, 51558, 145 + 516);
EXPECT_NEAR(get_mag_strength_tesla(-20, 125) * 1e9, 51352, 145 + 514);
EXPECT_NEAR(get_mag_strength_tesla(-20, 130) * 1e9, 51088, 145 + 511);
EXPECT_NEAR(get_mag_strength_tesla(-20, 135) * 1e9, 50735, 145 + 507);
EXPECT_NEAR(get_mag_strength_tesla(-20, 140) * 1e9, 50269, 145 + 503);
EXPECT_NEAR(get_mag_strength_tesla(-20, 145) * 1e9, 49684, 145 + 497);
EXPECT_NEAR(get_mag_strength_tesla(-20, 150) * 1e9, 48989, 145 + 490);
EXPECT_NEAR(get_mag_strength_tesla(-20, 155) * 1e9, 48197, 145 + 482);
EXPECT_NEAR(get_mag_strength_tesla(-20, 160) * 1e9, 47316, 145 + 473);
EXPECT_NEAR(get_mag_strength_tesla(-20, 165) * 1e9, 46358, 145 + 464);
EXPECT_NEAR(get_mag_strength_tesla(-20, 170) * 1e9, 45338, 145 + 453);
EXPECT_NEAR(get_mag_strength_tesla(-20, 175) * 1e9, 44275, 145 + 443);
EXPECT_NEAR(get_mag_strength_tesla(-20, 180) * 1e9, 43196, 145 + 432);
EXPECT_NEAR(get_mag_strength_tesla(-15, -180) * 1e9, 40441, 145 + 404);
EXPECT_NEAR(get_mag_strength_tesla(-15, -175) * 1e9, 39475, 145 + 395);
EXPECT_NEAR(get_mag_strength_tesla(-15, -170) * 1e9, 38527, 145 + 385);
EXPECT_NEAR(get_mag_strength_tesla(-15, -165) * 1e9, 37595, 145 + 376);
EXPECT_NEAR(get_mag_strength_tesla(-15, -160) * 1e9, 36675, 145 + 367);
EXPECT_NEAR(get_mag_strength_tesla(-15, -155) * 1e9, 35769, 145 + 358);
EXPECT_NEAR(get_mag_strength_tesla(-15, -150) * 1e9, 34880, 145 + 349);
EXPECT_NEAR(get_mag_strength_tesla(-15, -145) * 1e9, 34015, 145 + 340);
EXPECT_NEAR(get_mag_strength_tesla(-15, -140) * 1e9, 33183, 145 + 332);
EXPECT_NEAR(get_mag_strength_tesla(-15, -135) * 1e9, 32388, 145 + 324);
EXPECT_NEAR(get_mag_strength_tesla(-15, -130) * 1e9, 31635, 145 + 316);
EXPECT_NEAR(get_mag_strength_tesla(-15, -125) * 1e9, 30924, 145 + 309);
EXPECT_NEAR(get_mag_strength_tesla(-15, -120) * 1e9, 30253, 145 + 303);
EXPECT_NEAR(get_mag_strength_tesla(-15, -115) * 1e9, 29607, 145 + 296);
EXPECT_NEAR(get_mag_strength_tesla(-15, -110) * 1e9, 28964, 145 + 290);
EXPECT_NEAR(get_mag_strength_tesla(-15, -105) * 1e9, 28295, 145 + 283);
EXPECT_NEAR(get_mag_strength_tesla(-15, -100) * 1e9, 27580, 145 + 276);
EXPECT_NEAR(get_mag_strength_tesla(-15, -95) * 1e9, 26812, 145 + 268);
EXPECT_NEAR(get_mag_strength_tesla(-15, -90) * 1e9, 26009, 145 + 260);
EXPECT_NEAR(get_mag_strength_tesla(-15, -85) * 1e9, 25208, 145 + 252);
EXPECT_NEAR(get_mag_strength_tesla(-15, -80) * 1e9, 24461, 145 + 245);
EXPECT_NEAR(get_mag_strength_tesla(-15, -75) * 1e9, 23824, 145 + 238);
EXPECT_NEAR(get_mag_strength_tesla(-15, -70) * 1e9, 23349, 145 + 233);
EXPECT_NEAR(get_mag_strength_tesla(-15, -65) * 1e9, 23070, 145 + 231);
EXPECT_NEAR(get_mag_strength_tesla(-15, -60) * 1e9, 23000, 145 + 230);
EXPECT_NEAR(get_mag_strength_tesla(-15, -55) * 1e9, 23130, 145 + 231);
EXPECT_NEAR(get_mag_strength_tesla(-15, -50) * 1e9, 23427, 145 + 234);
EXPECT_NEAR(get_mag_strength_tesla(-15, -45) * 1e9, 23852, 145 + 239);
EXPECT_NEAR(get_mag_strength_tesla(-15, -40) * 1e9, 24370, 145 + 244);
EXPECT_NEAR(get_mag_strength_tesla(-15, -35) * 1e9, 24960, 145 + 250);
EXPECT_NEAR(get_mag_strength_tesla(-15, -30) * 1e9, 25616, 145 + 256);
EXPECT_NEAR(get_mag_strength_tesla(-15, -25) * 1e9, 26332, 145 + 263);
EXPECT_NEAR(get_mag_strength_tesla(-15, -20) * 1e9, 27093, 145 + 271);
EXPECT_NEAR(get_mag_strength_tesla(-15, -15) * 1e9, 27860, 145 + 279);
EXPECT_NEAR(get_mag_strength_tesla(-15, -10) * 1e9, 28579, 145 + 286);
EXPECT_NEAR(get_mag_strength_tesla(-15, -5) * 1e9, 29192, 145 + 292);
EXPECT_NEAR(get_mag_strength_tesla(-15, 0) * 1e9, 29657, 145 + 297);
EXPECT_NEAR(get_mag_strength_tesla(-15, 5) * 1e9, 29963, 145 + 300);
EXPECT_NEAR(get_mag_strength_tesla(-15, 10) * 1e9, 30129, 145 + 301);
EXPECT_NEAR(get_mag_strength_tesla(-15, 15) * 1e9, 30210, 145 + 302);
EXPECT_NEAR(get_mag_strength_tesla(-15, 20) * 1e9, 30290, 145 + 303);
EXPECT_NEAR(get_mag_strength_tesla(-15, 25) * 1e9, 30476, 145 + 305);
EXPECT_NEAR(get_mag_strength_tesla(-15, 30) * 1e9, 30883, 145 + 309);
EXPECT_NEAR(get_mag_strength_tesla(-15, 35) * 1e9, 31612, 145 + 316);
EXPECT_NEAR(get_mag_strength_tesla(-15, 40) * 1e9, 32718, 145 + 327);
EXPECT_NEAR(get_mag_strength_tesla(-15, 45) * 1e9, 34189, 145 + 342);
EXPECT_NEAR(get_mag_strength_tesla(-15, 50) * 1e9, 35952, 145 + 360);
EXPECT_NEAR(get_mag_strength_tesla(-15, 55) * 1e9, 37891, 145 + 379);
EXPECT_NEAR(get_mag_strength_tesla(-15, 60) * 1e9, 39886, 145 + 399);
EXPECT_NEAR(get_mag_strength_tesla(-15, 65) * 1e9, 41832, 145 + 418);
EXPECT_NEAR(get_mag_strength_tesla(-15, 70) * 1e9, 43652, 145 + 437);
EXPECT_NEAR(get_mag_strength_tesla(-15, 75) * 1e9, 45289, 145 + 453);
EXPECT_NEAR(get_mag_strength_tesla(-15, 80) * 1e9, 46694, 145 + 467);
EXPECT_NEAR(get_mag_strength_tesla(-15, 85) * 1e9, 47817, 145 + 478);
EXPECT_NEAR(get_mag_strength_tesla(-15, 90) * 1e9, 48619, 145 + 486);
EXPECT_NEAR(get_mag_strength_tesla(-15, 95) * 1e9, 49084, 145 + 491);
EXPECT_NEAR(get_mag_strength_tesla(-15, 100) * 1e9, 49242, 145 + 492);
EXPECT_NEAR(get_mag_strength_tesla(-15, 105) * 1e9, 49164, 145 + 492);
EXPECT_NEAR(get_mag_strength_tesla(-15, 110) * 1e9, 48951, 145 + 490);
EXPECT_NEAR(get_mag_strength_tesla(-15, 115) * 1e9, 48690, 145 + 487);
EXPECT_NEAR(get_mag_strength_tesla(-15, 120) * 1e9, 48432, 145 + 484);
EXPECT_NEAR(get_mag_strength_tesla(-15, 125) * 1e9, 48176, 145 + 482);
EXPECT_NEAR(get_mag_strength_tesla(-15, 130) * 1e9, 47888, 145 + 479);
EXPECT_NEAR(get_mag_strength_tesla(-15, 135) * 1e9, 47523, 145 + 475);
EXPECT_NEAR(get_mag_strength_tesla(-15, 140) * 1e9, 47053, 145 + 471);
EXPECT_NEAR(get_mag_strength_tesla(-15, 145) * 1e9, 46474, 145 + 465);
EXPECT_NEAR(get_mag_strength_tesla(-15, 150) * 1e9, 45797, 145 + 458);
EXPECT_NEAR(get_mag_strength_tesla(-15, 155) * 1e9, 45039, 145 + 450);
EXPECT_NEAR(get_mag_strength_tesla(-15, 160) * 1e9, 44210, 145 + 442);
EXPECT_NEAR(get_mag_strength_tesla(-15, 165) * 1e9, 43321, 145 + 433);
EXPECT_NEAR(get_mag_strength_tesla(-15, 170) * 1e9, 42384, 145 + 424);
EXPECT_NEAR(get_mag_strength_tesla(-15, 175) * 1e9, 41416, 145 + 414);
EXPECT_NEAR(get_mag_strength_tesla(-15, 180) * 1e9, 40441, 145 + 404);
EXPECT_NEAR(get_mag_strength_tesla(-10, -180) * 1e9, 37894, 145 + 379);
EXPECT_NEAR(get_mag_strength_tesla(-10, -175) * 1e9, 37070, 145 + 371);
EXPECT_NEAR(get_mag_strength_tesla(-10, -170) * 1e9, 36269, 145 + 363);
EXPECT_NEAR(get_mag_strength_tesla(-10, -165) * 1e9, 35488, 145 + 355);
EXPECT_NEAR(get_mag_strength_tesla(-10, -160) * 1e9, 34724, 145 + 347);
EXPECT_NEAR(get_mag_strength_tesla(-10, -155) * 1e9, 33977, 145 + 340);
EXPECT_NEAR(get_mag_strength_tesla(-10, -150) * 1e9, 33252, 145 + 333);
EXPECT_NEAR(get_mag_strength_tesla(-10, -145) * 1e9, 32556, 145 + 326);
EXPECT_NEAR(get_mag_strength_tesla(-10, -140) * 1e9, 31895, 145 + 319);
EXPECT_NEAR(get_mag_strength_tesla(-10, -135) * 1e9, 31273, 145 + 313);
EXPECT_NEAR(get_mag_strength_tesla(-10, -130) * 1e9, 30692, 145 + 307);
EXPECT_NEAR(get_mag_strength_tesla(-10, -125) * 1e9, 30152, 145 + 302);
EXPECT_NEAR(get_mag_strength_tesla(-10, -120) * 1e9, 29653, 145 + 297);
EXPECT_NEAR(get_mag_strength_tesla(-10, -115) * 1e9, 29182, 145 + 292);
EXPECT_NEAR(get_mag_strength_tesla(-10, -110) * 1e9, 28721, 145 + 287);
EXPECT_NEAR(get_mag_strength_tesla(-10, -105) * 1e9, 28245, 145 + 282);
EXPECT_NEAR(get_mag_strength_tesla(-10, -100) * 1e9, 27732, 145 + 277);
EXPECT_NEAR(get_mag_strength_tesla(-10, -95) * 1e9, 27172, 145 + 272);
EXPECT_NEAR(get_mag_strength_tesla(-10, -90) * 1e9, 26571, 145 + 266);
EXPECT_NEAR(get_mag_strength_tesla(-10, -85) * 1e9, 25951, 145 + 260);
EXPECT_NEAR(get_mag_strength_tesla(-10, -80) * 1e9, 25349, 145 + 253);
EXPECT_NEAR(get_mag_strength_tesla(-10, -75) * 1e9, 24809, 145 + 248);
EXPECT_NEAR(get_mag_strength_tesla(-10, -70) * 1e9, 24373, 145 + 244);
EXPECT_NEAR(get_mag_strength_tesla(-10, -65) * 1e9, 24080, 145 + 241);
EXPECT_NEAR(get_mag_strength_tesla(-10, -60) * 1e9, 23956, 145 + 240);
EXPECT_NEAR(get_mag_strength_tesla(-10, -55) * 1e9, 24012, 145 + 240);
EXPECT_NEAR(get_mag_strength_tesla(-10, -50) * 1e9, 24242, 145 + 242);
EXPECT_NEAR(get_mag_strength_tesla(-10, -45) * 1e9, 24626, 145 + 246);
EXPECT_NEAR(get_mag_strength_tesla(-10, -40) * 1e9, 25136, 145 + 251);
EXPECT_NEAR(get_mag_strength_tesla(-10, -35) * 1e9, 25746, 145 + 257);
EXPECT_NEAR(get_mag_strength_tesla(-10, -30) * 1e9, 26437, 145 + 264);
EXPECT_NEAR(get_mag_strength_tesla(-10, -25) * 1e9, 27192, 145 + 272);
EXPECT_NEAR(get_mag_strength_tesla(-10, -20) * 1e9, 27988, 145 + 280);
EXPECT_NEAR(get_mag_strength_tesla(-10, -15) * 1e9, 28791, 145 + 288);
EXPECT_NEAR(get_mag_strength_tesla(-10, -10) * 1e9, 29552, 145 + 296);
EXPECT_NEAR(get_mag_strength_tesla(-10, -5) * 1e9, 30217, 145 + 302);
EXPECT_NEAR(get_mag_strength_tesla(-10, 0) * 1e9, 30746, 145 + 307);
EXPECT_NEAR(get_mag_strength_tesla(-10, 5) * 1e9, 31118, 145 + 311);
EXPECT_NEAR(get_mag_strength_tesla(-10, 10) * 1e9, 31336, 145 + 313);
EXPECT_NEAR(get_mag_strength_tesla(-10, 15) * 1e9, 31432, 145 + 314);
EXPECT_NEAR(get_mag_strength_tesla(-10, 20) * 1e9, 31471, 145 + 315);
EXPECT_NEAR(get_mag_strength_tesla(-10, 25) * 1e9, 31546, 145 + 315);
EXPECT_NEAR(get_mag_strength_tesla(-10, 30) * 1e9, 31772, 145 + 318);
EXPECT_NEAR(get_mag_strength_tesla(-10, 35) * 1e9, 32256, 145 + 323);
EXPECT_NEAR(get_mag_strength_tesla(-10, 40) * 1e9, 33071, 145 + 331);
EXPECT_NEAR(get_mag_strength_tesla(-10, 45) * 1e9, 34222, 145 + 342);
EXPECT_NEAR(get_mag_strength_tesla(-10, 50) * 1e9, 35652, 145 + 357);
EXPECT_NEAR(get_mag_strength_tesla(-10, 55) * 1e9, 37262, 145 + 373);
EXPECT_NEAR(get_mag_strength_tesla(-10, 60) * 1e9, 38943, 145 + 389);
EXPECT_NEAR(get_mag_strength_tesla(-10, 65) * 1e9, 40600, 145 + 406);
EXPECT_NEAR(get_mag_strength_tesla(-10, 70) * 1e9, 42161, 145 + 422);
EXPECT_NEAR(get_mag_strength_tesla(-10, 75) * 1e9, 43572, 145 + 436);
EXPECT_NEAR(get_mag_strength_tesla(-10, 80) * 1e9, 44779, 145 + 448);
EXPECT_NEAR(get_mag_strength_tesla(-10, 85) * 1e9, 45726, 145 + 457);
EXPECT_NEAR(get_mag_strength_tesla(-10, 90) * 1e9, 46366, 145 + 464);
EXPECT_NEAR(get_mag_strength_tesla(-10, 95) * 1e9, 46678, 145 + 467);
EXPECT_NEAR(get_mag_strength_tesla(-10, 100) * 1e9, 46690, 145 + 467);
EXPECT_NEAR(get_mag_strength_tesla(-10, 105) * 1e9, 46482, 145 + 465);
EXPECT_NEAR(get_mag_strength_tesla(-10, 110) * 1e9, 46156, 145 + 462);
EXPECT_NEAR(get_mag_strength_tesla(-10, 115) * 1e9, 45806, 145 + 458);
EXPECT_NEAR(get_mag_strength_tesla(-10, 120) * 1e9, 45480, 145 + 455);
EXPECT_NEAR(get_mag_strength_tesla(-10, 125) * 1e9, 45175, 145 + 452);
EXPECT_NEAR(get_mag_strength_tesla(-10, 130) * 1e9, 44852, 145 + 449);
EXPECT_NEAR(get_mag_strength_tesla(-10, 135) * 1e9, 44462, 145 + 445);
EXPECT_NEAR(get_mag_strength_tesla(-10, 140) * 1e9, 43976, 145 + 440);
EXPECT_NEAR(get_mag_strength_tesla(-10, 145) * 1e9, 43393, 145 + 434);
EXPECT_NEAR(get_mag_strength_tesla(-10, 150) * 1e9, 42729, 145 + 427);
EXPECT_NEAR(get_mag_strength_tesla(-10, 155) * 1e9, 42004, 145 + 420);
EXPECT_NEAR(get_mag_strength_tesla(-10, 160) * 1e9, 41232, 145 + 412);
EXPECT_NEAR(get_mag_strength_tesla(-10, 165) * 1e9, 40423, 145 + 404);
EXPECT_NEAR(get_mag_strength_tesla(-10, 170) * 1e9, 39586, 145 + 396);
EXPECT_NEAR(get_mag_strength_tesla(-10, 175) * 1e9, 38737, 145 + 387);
EXPECT_NEAR(get_mag_strength_tesla(-10, 180) * 1e9, 37894, 145 + 379);
EXPECT_NEAR(get_mag_strength_tesla(-5, -180) * 1e9, 35733, 145 + 357);
EXPECT_NEAR(get_mag_strength_tesla(-5, -175) * 1e9, 35073, 145 + 351);
EXPECT_NEAR(get_mag_strength_tesla(-5, -170) * 1e9, 34440, 145 + 344);
EXPECT_NEAR(get_mag_strength_tesla(-5, -165) * 1e9, 33829, 145 + 338);
EXPECT_NEAR(get_mag_strength_tesla(-5, -160) * 1e9, 33238, 145 + 332);
EXPECT_NEAR(get_mag_strength_tesla(-5, -155) * 1e9, 32669, 145 + 327);
EXPECT_NEAR(get_mag_strength_tesla(-5, -150) * 1e9, 32129, 145 + 321);
EXPECT_NEAR(get_mag_strength_tesla(-5, -145) * 1e9, 31625, 145 + 316);
EXPECT_NEAR(get_mag_strength_tesla(-5, -140) * 1e9, 31161, 145 + 312);
EXPECT_NEAR(get_mag_strength_tesla(-5, -135) * 1e9, 30737, 145 + 307);
EXPECT_NEAR(get_mag_strength_tesla(-5, -130) * 1e9, 30352, 145 + 304);
EXPECT_NEAR(get_mag_strength_tesla(-5, -125) * 1e9, 30002, 145 + 300);
EXPECT_NEAR(get_mag_strength_tesla(-5, -120) * 1e9, 29686, 145 + 297);
EXPECT_NEAR(get_mag_strength_tesla(-5, -115) * 1e9, 29395, 145 + 294);
EXPECT_NEAR(get_mag_strength_tesla(-5, -110) * 1e9, 29115, 145 + 291);
EXPECT_NEAR(get_mag_strength_tesla(-5, -105) * 1e9, 28825, 145 + 288);
EXPECT_NEAR(get_mag_strength_tesla(-5, -100) * 1e9, 28503, 145 + 285);
EXPECT_NEAR(get_mag_strength_tesla(-5, -95) * 1e9, 28133, 145 + 281);
EXPECT_NEAR(get_mag_strength_tesla(-5, -90) * 1e9, 27708, 145 + 277);
EXPECT_NEAR(get_mag_strength_tesla(-5, -85) * 1e9, 27238, 145 + 272);
EXPECT_NEAR(get_mag_strength_tesla(-5, -80) * 1e9, 26745, 145 + 267);
EXPECT_NEAR(get_mag_strength_tesla(-5, -75) * 1e9, 26262, 145 + 263);
EXPECT_NEAR(get_mag_strength_tesla(-5, -70) * 1e9, 25827, 145 + 258);
EXPECT_NEAR(get_mag_strength_tesla(-5, -65) * 1e9, 25480, 145 + 255);
EXPECT_NEAR(get_mag_strength_tesla(-5, -60) * 1e9, 25259, 145 + 253);
EXPECT_NEAR(get_mag_strength_tesla(-5, -55) * 1e9, 25194, 145 + 252);
EXPECT_NEAR(get_mag_strength_tesla(-5, -50) * 1e9, 25305, 145 + 253);
EXPECT_NEAR(get_mag_strength_tesla(-5, -45) * 1e9, 25593, 145 + 256);
EXPECT_NEAR(get_mag_strength_tesla(-5, -40) * 1e9, 26038, 145 + 260);
EXPECT_NEAR(get_mag_strength_tesla(-5, -35) * 1e9, 26610, 145 + 266);
EXPECT_NEAR(get_mag_strength_tesla(-5, -30) * 1e9, 27277, 145 + 273);
EXPECT_NEAR(get_mag_strength_tesla(-5, -25) * 1e9, 28006, 145 + 280);
EXPECT_NEAR(get_mag_strength_tesla(-5, -20) * 1e9, 28771, 145 + 288);
EXPECT_NEAR(get_mag_strength_tesla(-5, -15) * 1e9, 29538, 145 + 295);
EXPECT_NEAR(get_mag_strength_tesla(-5, -10) * 1e9, 30268, 145 + 303);
EXPECT_NEAR(get_mag_strength_tesla(-5, -5) * 1e9, 30922, 145 + 309);
EXPECT_NEAR(get_mag_strength_tesla(-5, 0) * 1e9, 31464, 145 + 315);
EXPECT_NEAR(get_mag_strength_tesla(-5, 5) * 1e9, 31871, 145 + 319);
EXPECT_NEAR(get_mag_strength_tesla(-5, 10) * 1e9, 32135, 145 + 321);
EXPECT_NEAR(get_mag_strength_tesla(-5, 15) * 1e9, 32270, 145 + 323);
EXPECT_NEAR(get_mag_strength_tesla(-5, 20) * 1e9, 32320, 145 + 323);
EXPECT_NEAR(get_mag_strength_tesla(-5, 25) * 1e9, 32362, 145 + 324);
EXPECT_NEAR(get_mag_strength_tesla(-5, 30) * 1e9, 32500, 145 + 325);
EXPECT_NEAR(get_mag_strength_tesla(-5, 35) * 1e9, 32837, 145 + 328);
EXPECT_NEAR(get_mag_strength_tesla(-5, 40) * 1e9, 33445, 145 + 334);
EXPECT_NEAR(get_mag_strength_tesla(-5, 45) * 1e9, 34337, 145 + 343);
EXPECT_NEAR(get_mag_strength_tesla(-5, 50) * 1e9, 35472, 145 + 355);
EXPECT_NEAR(get_mag_strength_tesla(-5, 55) * 1e9, 36769, 145 + 368);
EXPECT_NEAR(get_mag_strength_tesla(-5, 60) * 1e9, 38138, 145 + 381);
EXPECT_NEAR(get_mag_strength_tesla(-5, 65) * 1e9, 39501, 145 + 395);
EXPECT_NEAR(get_mag_strength_tesla(-5, 70) * 1e9, 40797, 145 + 408);
EXPECT_NEAR(get_mag_strength_tesla(-5, 75) * 1e9, 41977, 145 + 420);
EXPECT_NEAR(get_mag_strength_tesla(-5, 80) * 1e9, 42987, 145 + 430);
EXPECT_NEAR(get_mag_strength_tesla(-5, 85) * 1e9, 43770, 145 + 438);
EXPECT_NEAR(get_mag_strength_tesla(-5, 90) * 1e9, 44275, 145 + 443);
EXPECT_NEAR(get_mag_strength_tesla(-5, 95) * 1e9, 44481, 145 + 445);
EXPECT_NEAR(get_mag_strength_tesla(-5, 100) * 1e9, 44410, 145 + 444);
EXPECT_NEAR(get_mag_strength_tesla(-5, 105) * 1e9, 44136, 145 + 441);
EXPECT_NEAR(get_mag_strength_tesla(-5, 110) * 1e9, 43753, 145 + 438);
EXPECT_NEAR(get_mag_strength_tesla(-5, 115) * 1e9, 43346, 145 + 433);
EXPECT_NEAR(get_mag_strength_tesla(-5, 120) * 1e9, 42962, 145 + 430);
EXPECT_NEAR(get_mag_strength_tesla(-5, 125) * 1e9, 42598, 145 + 426);
EXPECT_NEAR(get_mag_strength_tesla(-5, 130) * 1e9, 42216, 145 + 422);
EXPECT_NEAR(get_mag_strength_tesla(-5, 135) * 1e9, 41777, 145 + 418);
EXPECT_NEAR(get_mag_strength_tesla(-5, 140) * 1e9, 41255, 145 + 413);
EXPECT_NEAR(get_mag_strength_tesla(-5, 145) * 1e9, 40654, 145 + 407);
EXPECT_NEAR(get_mag_strength_tesla(-5, 150) * 1e9, 39994, 145 + 400);
EXPECT_NEAR(get_mag_strength_tesla(-5, 155) * 1e9, 39297, 145 + 393);
EXPECT_NEAR(get_mag_strength_tesla(-5, 160) * 1e9, 38581, 145 + 386);
EXPECT_NEAR(get_mag_strength_tesla(-5, 165) * 1e9, 37857, 145 + 379);
EXPECT_NEAR(get_mag_strength_tesla(-5, 170) * 1e9, 37133, 145 + 371);
EXPECT_NEAR(get_mag_strength_tesla(-5, 175) * 1e9, 36422, 145 + 364);
EXPECT_NEAR(get_mag_strength_tesla(-5, 180) * 1e9, 35733, 145 + 357);
EXPECT_NEAR(get_mag_strength_tesla(0, -180) * 1e9, 34117, 145 + 341);
EXPECT_NEAR(get_mag_strength_tesla(0, -175) * 1e9, 33632, 145 + 336);
EXPECT_NEAR(get_mag_strength_tesla(0, -170) * 1e9, 33175, 145 + 332);
EXPECT_NEAR(get_mag_strength_tesla(0, -165) * 1e9, 32739, 145 + 327);
EXPECT_NEAR(get_mag_strength_tesla(0, -160) * 1e9, 32324, 145 + 323);
EXPECT_NEAR(get_mag_strength_tesla(0, -155) * 1e9, 31937, 145 + 319);
EXPECT_NEAR(get_mag_strength_tesla(0, -150) * 1e9, 31588, 145 + 316);
EXPECT_NEAR(get_mag_strength_tesla(0, -145) * 1e9, 31286, 145 + 313);
EXPECT_NEAR(get_mag_strength_tesla(0, -140) * 1e9, 31031, 145 + 310);
EXPECT_NEAR(get_mag_strength_tesla(0, -135) * 1e9, 30820, 145 + 308);
EXPECT_NEAR(get_mag_strength_tesla(0, -130) * 1e9, 30645, 145 + 306);
EXPECT_NEAR(get_mag_strength_tesla(0, -125) * 1e9, 30498, 145 + 305);
EXPECT_NEAR(get_mag_strength_tesla(0, -120) * 1e9, 30374, 145 + 304);
EXPECT_NEAR(get_mag_strength_tesla(0, -115) * 1e9, 30267, 145 + 303);
EXPECT_NEAR(get_mag_strength_tesla(0, -110) * 1e9, 30166, 145 + 302);
EXPECT_NEAR(get_mag_strength_tesla(0, -105) * 1e9, 30053, 145 + 301);
EXPECT_NEAR(get_mag_strength_tesla(0, -100) * 1e9, 29903, 145 + 299);
EXPECT_NEAR(get_mag_strength_tesla(0, -95) * 1e9, 29693, 145 + 297);
EXPECT_NEAR(get_mag_strength_tesla(0, -90) * 1e9, 29407, 145 + 294);
EXPECT_NEAR(get_mag_strength_tesla(0, -85) * 1e9, 29042, 145 + 290);
EXPECT_NEAR(get_mag_strength_tesla(0, -80) * 1e9, 28614, 145 + 286);
EXPECT_NEAR(get_mag_strength_tesla(0, -75) * 1e9, 28147, 145 + 281);
EXPECT_NEAR(get_mag_strength_tesla(0, -70) * 1e9, 27679, 145 + 277);
EXPECT_NEAR(get_mag_strength_tesla(0, -65) * 1e9, 27249, 145 + 272);
EXPECT_NEAR(get_mag_strength_tesla(0, -60) * 1e9, 26903, 145 + 269);
EXPECT_NEAR(get_mag_strength_tesla(0, -55) * 1e9, 26686, 145 + 267);
EXPECT_NEAR(get_mag_strength_tesla(0, -50) * 1e9, 26638, 145 + 266);
EXPECT_NEAR(get_mag_strength_tesla(0, -45) * 1e9, 26778, 145 + 268);
EXPECT_NEAR(get_mag_strength_tesla(0, -40) * 1e9, 27099, 145 + 271);
EXPECT_NEAR(get_mag_strength_tesla(0, -35) * 1e9, 27570, 145 + 276);
EXPECT_NEAR(get_mag_strength_tesla(0, -30) * 1e9, 28149, 145 + 281);
EXPECT_NEAR(get_mag_strength_tesla(0, -25) * 1e9, 28795, 145 + 288);
EXPECT_NEAR(get_mag_strength_tesla(0, -20) * 1e9, 29475, 145 + 295);
EXPECT_NEAR(get_mag_strength_tesla(0, -15) * 1e9, 30158, 145 + 302);
EXPECT_NEAR(get_mag_strength_tesla(0, -10) * 1e9, 30815, 145 + 308);
EXPECT_NEAR(get_mag_strength_tesla(0, -5) * 1e9, 31420, 145 + 314);
EXPECT_NEAR(get_mag_strength_tesla(0, 0) * 1e9, 31945, 145 + 319);
EXPECT_NEAR(get_mag_strength_tesla(0, 5) * 1e9, 32367, 145 + 324);
EXPECT_NEAR(get_mag_strength_tesla(0, 10) * 1e9, 32672, 145 + 327);
EXPECT_NEAR(get_mag_strength_tesla(0, 15) * 1e9, 32863, 145 + 329);
EXPECT_NEAR(get_mag_strength_tesla(0, 20) * 1e9, 32970, 145 + 330);
EXPECT_NEAR(get_mag_strength_tesla(0, 25) * 1e9, 33054, 145 + 331);
EXPECT_NEAR(get_mag_strength_tesla(0, 30) * 1e9, 33199, 145 + 332);
EXPECT_NEAR(get_mag_strength_tesla(0, 35) * 1e9, 33490, 145 + 335);
EXPECT_NEAR(get_mag_strength_tesla(0, 40) * 1e9, 33986, 145 + 340);
EXPECT_NEAR(get_mag_strength_tesla(0, 45) * 1e9, 34701, 145 + 347);
EXPECT_NEAR(get_mag_strength_tesla(0, 50) * 1e9, 35602, 145 + 356);
EXPECT_NEAR(get_mag_strength_tesla(0, 55) * 1e9, 36631, 145 + 366);
EXPECT_NEAR(get_mag_strength_tesla(0, 60) * 1e9, 37720, 145 + 377);
EXPECT_NEAR(get_mag_strength_tesla(0, 65) * 1e9, 38814, 145 + 388);
EXPECT_NEAR(get_mag_strength_tesla(0, 70) * 1e9, 39863, 145 + 399);
EXPECT_NEAR(get_mag_strength_tesla(0, 75) * 1e9, 40824, 145 + 408);
EXPECT_NEAR(get_mag_strength_tesla(0, 80) * 1e9, 41649, 145 + 416);
EXPECT_NEAR(get_mag_strength_tesla(0, 85) * 1e9, 42283, 145 + 423);
EXPECT_NEAR(get_mag_strength_tesla(0, 90) * 1e9, 42681, 145 + 427);
EXPECT_NEAR(get_mag_strength_tesla(0, 95) * 1e9, 42820, 145 + 428);
EXPECT_NEAR(get_mag_strength_tesla(0, 100) * 1e9, 42718, 145 + 427);
EXPECT_NEAR(get_mag_strength_tesla(0, 105) * 1e9, 42429, 145 + 424);
EXPECT_NEAR(get_mag_strength_tesla(0, 110) * 1e9, 42031, 145 + 420);
EXPECT_NEAR(get_mag_strength_tesla(0, 115) * 1e9, 41591, 145 + 416);
EXPECT_NEAR(get_mag_strength_tesla(0, 120) * 1e9, 41147, 145 + 411);
EXPECT_NEAR(get_mag_strength_tesla(0, 125) * 1e9, 40700, 145 + 407);
EXPECT_NEAR(get_mag_strength_tesla(0, 130) * 1e9, 40229, 145 + 402);
EXPECT_NEAR(get_mag_strength_tesla(0, 135) * 1e9, 39706, 145 + 397);
EXPECT_NEAR(get_mag_strength_tesla(0, 140) * 1e9, 39119, 145 + 391);
EXPECT_NEAR(get_mag_strength_tesla(0, 145) * 1e9, 38478, 145 + 385);
EXPECT_NEAR(get_mag_strength_tesla(0, 150) * 1e9, 37805, 145 + 378);
EXPECT_NEAR(get_mag_strength_tesla(0, 155) * 1e9, 37125, 145 + 371);
EXPECT_NEAR(get_mag_strength_tesla(0, 160) * 1e9, 36458, 145 + 365);
EXPECT_NEAR(get_mag_strength_tesla(0, 165) * 1e9, 35815, 145 + 358);
EXPECT_NEAR(get_mag_strength_tesla(0, 170) * 1e9, 35207, 145 + 352);
EXPECT_NEAR(get_mag_strength_tesla(0, 175) * 1e9, 34640, 145 + 346);
EXPECT_NEAR(get_mag_strength_tesla(0, 180) * 1e9, 34117, 145 + 341);
EXPECT_NEAR(get_mag_strength_tesla(5, -180) * 1e9, 33141, 145 + 331);
EXPECT_NEAR(get_mag_strength_tesla(5, -175) * 1e9, 32822, 145 + 328);
EXPECT_NEAR(get_mag_strength_tesla(5, -170) * 1e9, 32534, 145 + 325);
EXPECT_NEAR(get_mag_strength_tesla(5, -165) * 1e9, 32266, 145 + 323);
EXPECT_NEAR(get_mag_strength_tesla(5, -160) * 1e9, 32019, 145 + 320);
EXPECT_NEAR(get_mag_strength_tesla(5, -155) * 1e9, 31806, 145 + 318);
EXPECT_NEAR(get_mag_strength_tesla(5, -150) * 1e9, 31642, 145 + 316);
EXPECT_NEAR(get_mag_strength_tesla(5, -145) * 1e9, 31537, 145 + 315);
EXPECT_NEAR(get_mag_strength_tesla(5, -140) * 1e9, 31492, 145 + 315);
EXPECT_NEAR(get_mag_strength_tesla(5, -135) * 1e9, 31497, 145 + 315);
EXPECT_NEAR(get_mag_strength_tesla(5, -130) * 1e9, 31537, 145 + 315);
EXPECT_NEAR(get_mag_strength_tesla(5, -125) * 1e9, 31599, 145 + 316);
EXPECT_NEAR(get_mag_strength_tesla(5, -120) * 1e9, 31673, 145 + 317);
EXPECT_NEAR(get_mag_strength_tesla(5, -115) * 1e9, 31753, 145 + 318);
EXPECT_NEAR(get_mag_strength_tesla(5, -110) * 1e9, 31828, 145 + 318);
EXPECT_NEAR(get_mag_strength_tesla(5, -105) * 1e9, 31879, 145 + 319);
EXPECT_NEAR(get_mag_strength_tesla(5, -100) * 1e9, 31877, 145 + 319);
EXPECT_NEAR(get_mag_strength_tesla(5, -95) * 1e9, 31794, 145 + 318);
EXPECT_NEAR(get_mag_strength_tesla(5, -90) * 1e9, 31605, 145 + 316);
EXPECT_NEAR(get_mag_strength_tesla(5, -85) * 1e9, 31302, 145 + 313);
EXPECT_NEAR(get_mag_strength_tesla(5, -80) * 1e9, 30895, 145 + 309);
EXPECT_NEAR(get_mag_strength_tesla(5, -75) * 1e9, 30409, 145 + 304);
EXPECT_NEAR(get_mag_strength_tesla(5, -70) * 1e9, 29880, 145 + 299);
EXPECT_NEAR(get_mag_strength_tesla(5, -65) * 1e9, 29350, 145 + 294);
EXPECT_NEAR(get_mag_strength_tesla(5, -60) * 1e9, 28870, 145 + 289);
EXPECT_NEAR(get_mag_strength_tesla(5, -55) * 1e9, 28492, 145 + 285);
EXPECT_NEAR(get_mag_strength_tesla(5, -50) * 1e9, 28270, 145 + 283);
EXPECT_NEAR(get_mag_strength_tesla(5, -45) * 1e9, 28235, 145 + 282);
EXPECT_NEAR(get_mag_strength_tesla(5, -40) * 1e9, 28391, 145 + 284);
EXPECT_NEAR(get_mag_strength_tesla(5, -35) * 1e9, 28711, 145 + 287);
EXPECT_NEAR(get_mag_strength_tesla(5, -30) * 1e9, 29154, 145 + 292);
EXPECT_NEAR(get_mag_strength_tesla(5, -25) * 1e9, 29676, 145 + 297);
EXPECT_NEAR(get_mag_strength_tesla(5, -20) * 1e9, 30240, 145 + 302);
EXPECT_NEAR(get_mag_strength_tesla(5, -15) * 1e9, 30820, 145 + 308);
EXPECT_NEAR(get_mag_strength_tesla(5, -10) * 1e9, 31395, 145 + 314);
EXPECT_NEAR(get_mag_strength_tesla(5, -5) * 1e9, 31944, 145 + 319);
EXPECT_NEAR(get_mag_strength_tesla(5, 0) * 1e9, 32446, 145 + 324);
EXPECT_NEAR(get_mag_strength_tesla(5, 5) * 1e9, 32878, 145 + 329);
EXPECT_NEAR(get_mag_strength_tesla(5, 10) * 1e9, 33226, 145 + 332);
EXPECT_NEAR(get_mag_strength_tesla(5, 15) * 1e9, 33487, 145 + 335);
EXPECT_NEAR(get_mag_strength_tesla(5, 20) * 1e9, 33684, 145 + 337);
EXPECT_NEAR(get_mag_strength_tesla(5, 25) * 1e9, 33862, 145 + 339);
EXPECT_NEAR(get_mag_strength_tesla(5, 30) * 1e9, 34084, 145 + 341);
EXPECT_NEAR(get_mag_strength_tesla(5, 35) * 1e9, 34412, 145 + 344);
EXPECT_NEAR(get_mag_strength_tesla(5, 40) * 1e9, 34881, 145 + 349);
EXPECT_NEAR(get_mag_strength_tesla(5, 45) * 1e9, 35495, 145 + 355);
EXPECT_NEAR(get_mag_strength_tesla(5, 50) * 1e9, 36232, 145 + 362);
EXPECT_NEAR(get_mag_strength_tesla(5, 55) * 1e9, 37052, 145 + 371);
EXPECT_NEAR(get_mag_strength_tesla(5, 60) * 1e9, 37916, 145 + 379);
EXPECT_NEAR(get_mag_strength_tesla(5, 65) * 1e9, 38787, 145 + 388);
EXPECT_NEAR(get_mag_strength_tesla(5, 70) * 1e9, 39629, 145 + 396);
EXPECT_NEAR(get_mag_strength_tesla(5, 75) * 1e9, 40405, 145 + 404);
EXPECT_NEAR(get_mag_strength_tesla(5, 80) * 1e9, 41072, 145 + 411);
EXPECT_NEAR(get_mag_strength_tesla(5, 85) * 1e9, 41583, 145 + 416);
EXPECT_NEAR(get_mag_strength_tesla(5, 90) * 1e9, 41899, 145 + 419);
EXPECT_NEAR(get_mag_strength_tesla(5, 95) * 1e9, 42002, 145 + 420);
EXPECT_NEAR(get_mag_strength_tesla(5, 100) * 1e9, 41899, 145 + 419);
EXPECT_NEAR(get_mag_strength_tesla(5, 105) * 1e9, 41627, 145 + 416);
EXPECT_NEAR(get_mag_strength_tesla(5, 110) * 1e9, 41235, 145 + 412);
EXPECT_NEAR(get_mag_strength_tesla(5, 115) * 1e9, 40767, 145 + 408);
EXPECT_NEAR(get_mag_strength_tesla(5, 120) * 1e9, 40251, 145 + 403);
EXPECT_NEAR(get_mag_strength_tesla(5, 125) * 1e9, 39696, 145 + 397);
EXPECT_NEAR(get_mag_strength_tesla(5, 130) * 1e9, 39099, 145 + 391);
EXPECT_NEAR(get_mag_strength_tesla(5, 135) * 1e9, 38454, 145 + 385);
EXPECT_NEAR(get_mag_strength_tesla(5, 140) * 1e9, 37768, 145 + 378);
EXPECT_NEAR(get_mag_strength_tesla(5, 145) * 1e9, 37057, 145 + 371);
EXPECT_NEAR(get_mag_strength_tesla(5, 150) * 1e9, 36346, 145 + 363);
EXPECT_NEAR(get_mag_strength_tesla(5, 155) * 1e9, 35661, 145 + 357);
EXPECT_NEAR(get_mag_strength_tesla(5, 160) * 1e9, 35022, 145 + 350);
EXPECT_NEAR(get_mag_strength_tesla(5, 165) * 1e9, 34446, 145 + 344);
EXPECT_NEAR(get_mag_strength_tesla(5, 170) * 1e9, 33940, 145 + 339);
EXPECT_NEAR(get_mag_strength_tesla(5, 175) * 1e9, 33508, 145 + 335);
EXPECT_NEAR(get_mag_strength_tesla(5, 180) * 1e9, 33141, 145 + 331);
EXPECT_NEAR(get_mag_strength_tesla(10, -180) * 1e9, 32823, 145 + 328);
EXPECT_NEAR(get_mag_strength_tesla(10, -175) * 1e9, 32644, 145 + 326);
EXPECT_NEAR(get_mag_strength_tesla(10, -170) * 1e9, 32502, 145 + 325);
EXPECT_NEAR(get_mag_strength_tesla(10, -165) * 1e9, 32382, 145 + 324);
EXPECT_NEAR(get_mag_strength_tesla(10, -160) * 1e9, 32287, 145 + 323);
EXPECT_NEAR(get_mag_strength_tesla(10, -155) * 1e9, 32233, 145 + 322);
EXPECT_NEAR(get_mag_strength_tesla(10, -150) * 1e9, 32240, 145 + 322);
EXPECT_NEAR(get_mag_strength_tesla(10, -145) * 1e9, 32322, 145 + 323);
EXPECT_NEAR(get_mag_strength_tesla(10, -140) * 1e9, 32476, 145 + 325);
EXPECT_NEAR(get_mag_strength_tesla(10, -135) * 1e9, 32690, 145 + 327);
EXPECT_NEAR(get_mag_strength_tesla(10, -130) * 1e9, 32941, 145 + 329);
EXPECT_NEAR(get_mag_strength_tesla(10, -125) * 1e9, 33210, 145 + 332);
EXPECT_NEAR(get_mag_strength_tesla(10, -120) * 1e9, 33482, 145 + 335);
EXPECT_NEAR(get_mag_strength_tesla(10, -115) * 1e9, 33748, 145 + 337);
EXPECT_NEAR(get_mag_strength_tesla(10, -110) * 1e9, 33993, 145 + 340);
EXPECT_NEAR(get_mag_strength_tesla(10, -105) * 1e9, 34195, 145 + 342);
EXPECT_NEAR(get_mag_strength_tesla(10, -100) * 1e9, 34321, 145 + 343);
EXPECT_NEAR(get_mag_strength_tesla(10, -95) * 1e9, 34336, 145 + 343);
EXPECT_NEAR(get_mag_strength_tesla(10, -90) * 1e9, 34210, 145 + 342);
EXPECT_NEAR(get_mag_strength_tesla(10, -85) * 1e9, 33934, 145 + 339);
EXPECT_NEAR(get_mag_strength_tesla(10, -80) * 1e9, 33516, 145 + 335);
EXPECT_NEAR(get_mag_strength_tesla(10, -75) * 1e9, 32985, 145 + 330);
EXPECT_NEAR(get_mag_strength_tesla(10, -70) * 1e9, 32377, 145 + 324);
EXPECT_NEAR(get_mag_strength_tesla(10, -65) * 1e9, 31741, 145 + 317);
EXPECT_NEAR(get_mag_strength_tesla(10, -60) * 1e9, 31130, 145 + 311);
EXPECT_NEAR(get_mag_strength_tesla(10, -55) * 1e9, 30604, 145 + 306);
EXPECT_NEAR(get_mag_strength_tesla(10, -50) * 1e9, 30220, 145 + 302);
EXPECT_NEAR(get_mag_strength_tesla(10, -45) * 1e9, 30016, 145 + 300);
EXPECT_NEAR(get_mag_strength_tesla(10, -40) * 1e9, 30001, 145 + 300);
EXPECT_NEAR(get_mag_strength_tesla(10, -35) * 1e9, 30155, 145 + 302);
EXPECT_NEAR(get_mag_strength_tesla(10, -30) * 1e9, 30442, 145 + 304);
EXPECT_NEAR(get_mag_strength_tesla(10, -25) * 1e9, 30822, 145 + 308);
EXPECT_NEAR(get_mag_strength_tesla(10, -20) * 1e9, 31264, 145 + 313);
EXPECT_NEAR(get_mag_strength_tesla(10, -15) * 1e9, 31746, 145 + 317);
EXPECT_NEAR(get_mag_strength_tesla(10, -10) * 1e9, 32250, 145 + 322);
EXPECT_NEAR(get_mag_strength_tesla(10, -5) * 1e9, 32759, 145 + 328);
EXPECT_NEAR(get_mag_strength_tesla(10, 0) * 1e9, 33249, 145 + 332);
EXPECT_NEAR(get_mag_strength_tesla(10, 5) * 1e9, 33699, 145 + 337);
EXPECT_NEAR(get_mag_strength_tesla(10, 10) * 1e9, 34092, 145 + 341);
EXPECT_NEAR(get_mag_strength_tesla(10, 15) * 1e9, 34428, 145 + 344);
EXPECT_NEAR(get_mag_strength_tesla(10, 20) * 1e9, 34726, 145 + 347);
EXPECT_NEAR(get_mag_strength_tesla(10, 25) * 1e9, 35021, 145 + 350);
EXPECT_NEAR(get_mag_strength_tesla(10, 30) * 1e9, 35356, 145 + 354);
EXPECT_NEAR(get_mag_strength_tesla(10, 35) * 1e9, 35764, 145 + 358);
EXPECT_NEAR(get_mag_strength_tesla(10, 40) * 1e9, 36258, 145 + 363);
EXPECT_NEAR(get_mag_strength_tesla(10, 45) * 1e9, 36830, 145 + 368);
EXPECT_NEAR(get_mag_strength_tesla(10, 50) * 1e9, 37463, 145 + 375);
EXPECT_NEAR(get_mag_strength_tesla(10, 55) * 1e9, 38138, 145 + 381);
EXPECT_NEAR(get_mag_strength_tesla(10, 60) * 1e9, 38838, 145 + 388);
EXPECT_NEAR(get_mag_strength_tesla(10, 65) * 1e9, 39546, 145 + 395);
EXPECT_NEAR(get_mag_strength_tesla(10, 70) * 1e9, 40237, 145 + 402);
EXPECT_NEAR(get_mag_strength_tesla(10, 75) * 1e9, 40878, 145 + 409);
EXPECT_NEAR(get_mag_strength_tesla(10, 80) * 1e9, 41431, 145 + 414);
EXPECT_NEAR(get_mag_strength_tesla(10, 85) * 1e9, 41855, 145 + 419);
EXPECT_NEAR(get_mag_strength_tesla(10, 90) * 1e9, 42120, 145 + 421);
EXPECT_NEAR(get_mag_strength_tesla(10, 95) * 1e9, 42208, 145 + 422);
EXPECT_NEAR(get_mag_strength_tesla(10, 100) * 1e9, 42122, 145 + 421);
EXPECT_NEAR(get_mag_strength_tesla(10, 105) * 1e9, 41875, 145 + 419);
EXPECT_NEAR(get_mag_strength_tesla(10, 110) * 1e9, 41490, 145 + 415);
EXPECT_NEAR(get_mag_strength_tesla(10, 115) * 1e9, 40987, 145 + 410);
EXPECT_NEAR(get_mag_strength_tesla(10, 120) * 1e9, 40384, 145 + 404);
EXPECT_NEAR(get_mag_strength_tesla(10, 125) * 1e9, 39698, 145 + 397);
EXPECT_NEAR(get_mag_strength_tesla(10, 130) * 1e9, 38946, 145 + 389);
EXPECT_NEAR(get_mag_strength_tesla(10, 135) * 1e9, 38147, 145 + 381);
EXPECT_NEAR(get_mag_strength_tesla(10, 140) * 1e9, 37326, 145 + 373);
EXPECT_NEAR(get_mag_strength_tesla(10, 145) * 1e9, 36511, 145 + 365);
EXPECT_NEAR(get_mag_strength_tesla(10, 150) * 1e9, 35730, 145 + 357);
EXPECT_NEAR(get_mag_strength_tesla(10, 155) * 1e9, 35008, 145 + 350);
EXPECT_NEAR(get_mag_strength_tesla(10, 160) * 1e9, 34369, 145 + 344);
EXPECT_NEAR(get_mag_strength_tesla(10, 165) * 1e9, 33827, 145 + 338);
EXPECT_NEAR(get_mag_strength_tesla(10, 170) * 1e9, 33393, 145 + 334);
EXPECT_NEAR(get_mag_strength_tesla(10, 175) * 1e9, 33064, 145 + 331);
EXPECT_NEAR(get_mag_strength_tesla(10, 180) * 1e9, 32823, 145 + 328);
EXPECT_NEAR(get_mag_strength_tesla(15, -180) * 1e9, 33125, 145 + 331);
EXPECT_NEAR(get_mag_strength_tesla(15, -175) * 1e9, 33044, 145 + 330);
EXPECT_NEAR(get_mag_strength_tesla(15, -170) * 1e9, 33014, 145 + 330);
EXPECT_NEAR(get_mag_strength_tesla(15, -165) * 1e9, 33016, 145 + 330);
EXPECT_NEAR(get_mag_strength_tesla(15, -160) * 1e9, 33053, 145 + 331);
EXPECT_NEAR(get_mag_strength_tesla(15, -155) * 1e9, 33143, 145 + 331);
EXPECT_NEAR(get_mag_strength_tesla(15, -150) * 1e9, 33307, 145 + 333);
EXPECT_NEAR(get_mag_strength_tesla(15, -145) * 1e9, 33558, 145 + 336);
EXPECT_NEAR(get_mag_strength_tesla(15, -140) * 1e9, 33896, 145 + 339);
EXPECT_NEAR(get_mag_strength_tesla(15, -135) * 1e9, 34302, 145 + 343);
EXPECT_NEAR(get_mag_strength_tesla(15, -130) * 1e9, 34750, 145 + 348);
EXPECT_NEAR(get_mag_strength_tesla(15, -125) * 1e9, 35216, 145 + 352);
EXPECT_NEAR(get_mag_strength_tesla(15, -120) * 1e9, 35678, 145 + 357);
EXPECT_NEAR(get_mag_strength_tesla(15, -115) * 1e9, 36122, 145 + 361);
EXPECT_NEAR(get_mag_strength_tesla(15, -110) * 1e9, 36528, 145 + 365);
EXPECT_NEAR(get_mag_strength_tesla(15, -105) * 1e9, 36868, 145 + 369);
EXPECT_NEAR(get_mag_strength_tesla(15, -100) * 1e9, 37104, 145 + 371);
EXPECT_NEAR(get_mag_strength_tesla(15, -95) * 1e9, 37196, 145 + 372);
EXPECT_NEAR(get_mag_strength_tesla(15, -90) * 1e9, 37114, 145 + 371);
EXPECT_NEAR(get_mag_strength_tesla(15, -85) * 1e9, 36845, 145 + 368);
EXPECT_NEAR(get_mag_strength_tesla(15, -80) * 1e9, 36401, 145 + 364);
EXPECT_NEAR(get_mag_strength_tesla(15, -75) * 1e9, 35810, 145 + 358);
EXPECT_NEAR(get_mag_strength_tesla(15, -70) * 1e9, 35118, 145 + 351);
EXPECT_NEAR(get_mag_strength_tesla(15, -65) * 1e9, 34379, 145 + 344);
EXPECT_NEAR(get_mag_strength_tesla(15, -60) * 1e9, 33653, 145 + 337);
EXPECT_NEAR(get_mag_strength_tesla(15, -55) * 1e9, 33003, 145 + 330);
EXPECT_NEAR(get_mag_strength_tesla(15, -50) * 1e9, 32487, 145 + 325);
EXPECT_NEAR(get_mag_strength_tesla(15, -45) * 1e9, 32144, 145 + 321);
EXPECT_NEAR(get_mag_strength_tesla(15, -40) * 1e9, 31982, 145 + 320);
EXPECT_NEAR(get_mag_strength_tesla(15, -35) * 1e9, 31987, 145 + 320);
EXPECT_NEAR(get_mag_strength_tesla(15, -30) * 1e9, 32129, 145 + 321);
EXPECT_NEAR(get_mag_strength_tesla(15, -25) * 1e9, 32375, 145 + 324);
EXPECT_NEAR(get_mag_strength_tesla(15, -20) * 1e9, 32706, 145 + 327);
EXPECT_NEAR(get_mag_strength_tesla(15, -15) * 1e9, 33104, 145 + 331);
EXPECT_NEAR(get_mag_strength_tesla(15, -10) * 1e9, 33557, 145 + 336);
EXPECT_NEAR(get_mag_strength_tesla(15, -5) * 1e9, 34043, 145 + 340);
EXPECT_NEAR(get_mag_strength_tesla(15, 0) * 1e9, 34537, 145 + 345);
EXPECT_NEAR(get_mag_strength_tesla(15, 5) * 1e9, 35012, 145 + 350);
EXPECT_NEAR(get_mag_strength_tesla(15, 10) * 1e9, 35452, 145 + 355);
EXPECT_NEAR(get_mag_strength_tesla(15, 15) * 1e9, 35856, 145 + 359);
EXPECT_NEAR(get_mag_strength_tesla(15, 20) * 1e9, 36245, 145 + 362);
EXPECT_NEAR(get_mag_strength_tesla(15, 25) * 1e9, 36647, 145 + 366);
EXPECT_NEAR(get_mag_strength_tesla(15, 30) * 1e9, 37090, 145 + 371);
EXPECT_NEAR(get_mag_strength_tesla(15, 35) * 1e9, 37582, 145 + 376);
EXPECT_NEAR(get_mag_strength_tesla(15, 40) * 1e9, 38118, 145 + 381);
EXPECT_NEAR(get_mag_strength_tesla(15, 45) * 1e9, 38682, 145 + 387);
EXPECT_NEAR(get_mag_strength_tesla(15, 50) * 1e9, 39259, 145 + 393);
EXPECT_NEAR(get_mag_strength_tesla(15, 55) * 1e9, 39846, 145 + 398);
EXPECT_NEAR(get_mag_strength_tesla(15, 60) * 1e9, 40444, 145 + 404);
EXPECT_NEAR(get_mag_strength_tesla(15, 65) * 1e9, 41051, 145 + 411);
EXPECT_NEAR(get_mag_strength_tesla(15, 70) * 1e9, 41652, 145 + 417);
EXPECT_NEAR(get_mag_strength_tesla(15, 75) * 1e9, 42216, 145 + 422);
EXPECT_NEAR(get_mag_strength_tesla(15, 80) * 1e9, 42708, 145 + 427);
EXPECT_NEAR(get_mag_strength_tesla(15, 85) * 1e9, 43092, 145 + 431);
EXPECT_NEAR(get_mag_strength_tesla(15, 90) * 1e9, 43339, 145 + 433);
EXPECT_NEAR(get_mag_strength_tesla(15, 95) * 1e9, 43434, 145 + 434);
EXPECT_NEAR(get_mag_strength_tesla(15, 100) * 1e9, 43371, 145 + 434);
EXPECT_NEAR(get_mag_strength_tesla(15, 105) * 1e9, 43146, 145 + 431);
EXPECT_NEAR(get_mag_strength_tesla(15, 110) * 1e9, 42759, 145 + 428);
EXPECT_NEAR(get_mag_strength_tesla(15, 115) * 1e9, 42211, 145 + 422);
EXPECT_NEAR(get_mag_strength_tesla(15, 120) * 1e9, 41513, 145 + 415);
EXPECT_NEAR(get_mag_strength_tesla(15, 125) * 1e9, 40687, 145 + 407);
EXPECT_NEAR(get_mag_strength_tesla(15, 130) * 1e9, 39767, 145 + 398);
EXPECT_NEAR(get_mag_strength_tesla(15, 135) * 1e9, 38796, 145 + 388);
EXPECT_NEAR(get_mag_strength_tesla(15, 140) * 1e9, 37816, 145 + 378);
EXPECT_NEAR(get_mag_strength_tesla(15, 145) * 1e9, 36868, 145 + 369);
EXPECT_NEAR(get_mag_strength_tesla(15, 150) * 1e9, 35984, 145 + 360);
EXPECT_NEAR(get_mag_strength_tesla(15, 155) * 1e9, 35192, 145 + 352);
EXPECT_NEAR(get_mag_strength_tesla(15, 160) * 1e9, 34514, 145 + 345);
EXPECT_NEAR(get_mag_strength_tesla(15, 165) * 1e9, 33967, 145 + 340);
EXPECT_NEAR(get_mag_strength_tesla(15, 170) * 1e9, 33560, 145 + 336);
EXPECT_NEAR(get_mag_strength_tesla(15, 175) * 1e9, 33286, 145 + 333);
EXPECT_NEAR(get_mag_strength_tesla(15, 180) * 1e9, 33125, 145 + 331);
EXPECT_NEAR(get_mag_strength_tesla(20, -180) * 1e9, 33989, 145 + 340);
EXPECT_NEAR(get_mag_strength_tesla(20, -175) * 1e9, 33959, 145 + 340);
EXPECT_NEAR(get_mag_strength_tesla(20, -170) * 1e9, 34002, 145 + 340);
EXPECT_NEAR(get_mag_strength_tesla(20, -165) * 1e9, 34098, 145 + 341);
EXPECT_NEAR(get_mag_strength_tesla(20, -160) * 1e9, 34248, 145 + 342);
EXPECT_NEAR(get_mag_strength_tesla(20, -155) * 1e9, 34466, 145 + 345);
EXPECT_NEAR(get_mag_strength_tesla(20, -150) * 1e9, 34772, 145 + 348);
EXPECT_NEAR(get_mag_strength_tesla(20, -145) * 1e9, 35178, 145 + 352);
EXPECT_NEAR(get_mag_strength_tesla(20, -140) * 1e9, 35678, 145 + 357);
EXPECT_NEAR(get_mag_strength_tesla(20, -135) * 1e9, 36254, 145 + 363);
EXPECT_NEAR(get_mag_strength_tesla(20, -130) * 1e9, 36876, 145 + 369);
EXPECT_NEAR(get_mag_strength_tesla(20, -125) * 1e9, 37516, 145 + 375);
EXPECT_NEAR(get_mag_strength_tesla(20, -120) * 1e9, 38148, 145 + 381);
EXPECT_NEAR(get_mag_strength_tesla(20, -115) * 1e9, 38751, 145 + 388);
EXPECT_NEAR(get_mag_strength_tesla(20, -110) * 1e9, 39299, 145 + 393);
EXPECT_NEAR(get_mag_strength_tesla(20, -105) * 1e9, 39760, 145 + 398);
EXPECT_NEAR(get_mag_strength_tesla(20, -100) * 1e9, 40090, 145 + 401);
EXPECT_NEAR(get_mag_strength_tesla(20, -95) * 1e9, 40248, 145 + 402);
EXPECT_NEAR(get_mag_strength_tesla(20, -90) * 1e9, 40201, 145 + 402);
EXPECT_NEAR(get_mag_strength_tesla(20, -85) * 1e9, 39936, 145 + 399);
EXPECT_NEAR(get_mag_strength_tesla(20, -80) * 1e9, 39465, 145 + 395);
EXPECT_NEAR(get_mag_strength_tesla(20, -75) * 1e9, 38820, 145 + 388);
EXPECT_NEAR(get_mag_strength_tesla(20, -70) * 1e9, 38052, 145 + 381);
EXPECT_NEAR(get_mag_strength_tesla(20, -65) * 1e9, 37223, 145 + 372);
EXPECT_NEAR(get_mag_strength_tesla(20, -60) * 1e9, 36402, 145 + 364);
EXPECT_NEAR(get_mag_strength_tesla(20, -55) * 1e9, 35656, 145 + 357);
EXPECT_NEAR(get_mag_strength_tesla(20, -50) * 1e9, 35042, 145 + 350);
EXPECT_NEAR(get_mag_strength_tesla(20, -45) * 1e9, 34595, 145 + 346);
EXPECT_NEAR(get_mag_strength_tesla(20, -40) * 1e9, 34322, 145 + 343);
EXPECT_NEAR(get_mag_strength_tesla(20, -35) * 1e9, 34210, 145 + 342);
EXPECT_NEAR(get_mag_strength_tesla(20, -30) * 1e9, 34232, 145 + 342);
EXPECT_NEAR(get_mag_strength_tesla(20, -25) * 1e9, 34368, 145 + 344);
EXPECT_NEAR(get_mag_strength_tesla(20, -20) * 1e9, 34605, 145 + 346);
EXPECT_NEAR(get_mag_strength_tesla(20, -15) * 1e9, 34935, 145 + 349);
EXPECT_NEAR(get_mag_strength_tesla(20, -10) * 1e9, 35348, 145 + 353);
EXPECT_NEAR(get_mag_strength_tesla(20, -5) * 1e9, 35820, 145 + 358);
EXPECT_NEAR(get_mag_strength_tesla(20, 0) * 1e9, 36322, 145 + 363);
EXPECT_NEAR(get_mag_strength_tesla(20, 5) * 1e9, 36821, 145 + 368);
EXPECT_NEAR(get_mag_strength_tesla(20, 10) * 1e9, 37298, 145 + 373);
EXPECT_NEAR(get_mag_strength_tesla(20, 15) * 1e9, 37755, 145 + 378);
EXPECT_NEAR(get_mag_strength_tesla(20, 20) * 1e9, 38211, 145 + 382);
EXPECT_NEAR(get_mag_strength_tesla(20, 25) * 1e9, 38689, 145 + 387);
EXPECT_NEAR(get_mag_strength_tesla(20, 30) * 1e9, 39206, 145 + 392);
EXPECT_NEAR(get_mag_strength_tesla(20, 35) * 1e9, 39758, 145 + 398);
EXPECT_NEAR(get_mag_strength_tesla(20, 40) * 1e9, 40329, 145 + 403);
EXPECT_NEAR(get_mag_strength_tesla(20, 45) * 1e9, 40897, 145 + 409);
EXPECT_NEAR(get_mag_strength_tesla(20, 50) * 1e9, 41453, 145 + 415);
EXPECT_NEAR(get_mag_strength_tesla(20, 55) * 1e9, 42002, 145 + 420);
EXPECT_NEAR(get_mag_strength_tesla(20, 60) * 1e9, 42556, 145 + 426);
EXPECT_NEAR(get_mag_strength_tesla(20, 65) * 1e9, 43122, 145 + 431);
EXPECT_NEAR(get_mag_strength_tesla(20, 70) * 1e9, 43691, 145 + 437);
EXPECT_NEAR(get_mag_strength_tesla(20, 75) * 1e9, 44236, 145 + 442);
EXPECT_NEAR(get_mag_strength_tesla(20, 80) * 1e9, 44720, 145 + 447);
EXPECT_NEAR(get_mag_strength_tesla(20, 85) * 1e9, 45108, 145 + 451);
EXPECT_NEAR(get_mag_strength_tesla(20, 90) * 1e9, 45373, 145 + 454);
EXPECT_NEAR(get_mag_strength_tesla(20, 95) * 1e9, 45495, 145 + 455);
EXPECT_NEAR(get_mag_strength_tesla(20, 100) * 1e9, 45460, 145 + 455);
EXPECT_NEAR(get_mag_strength_tesla(20, 105) * 1e9, 45251, 145 + 453);
EXPECT_NEAR(get_mag_strength_tesla(20, 110) * 1e9, 44854, 145 + 449);
EXPECT_NEAR(get_mag_strength_tesla(20, 115) * 1e9, 44257, 145 + 443);
EXPECT_NEAR(get_mag_strength_tesla(20, 120) * 1e9, 43467, 145 + 435);
EXPECT_NEAR(get_mag_strength_tesla(20, 125) * 1e9, 42510, 145 + 425);
EXPECT_NEAR(get_mag_strength_tesla(20, 130) * 1e9, 41433, 145 + 414);
EXPECT_NEAR(get_mag_strength_tesla(20, 135) * 1e9, 40293, 145 + 403);
EXPECT_NEAR(get_mag_strength_tesla(20, 140) * 1e9, 39151, 145 + 392);
EXPECT_NEAR(get_mag_strength_tesla(20, 145) * 1e9, 38056, 145 + 381);
EXPECT_NEAR(get_mag_strength_tesla(20, 150) * 1e9, 37049, 145 + 370);
EXPECT_NEAR(get_mag_strength_tesla(20, 155) * 1e9, 36160, 145 + 362);
EXPECT_NEAR(get_mag_strength_tesla(20, 160) * 1e9, 35412, 145 + 354);
EXPECT_NEAR(get_mag_strength_tesla(20, 165) * 1e9, 34820, 145 + 348);
EXPECT_NEAR(get_mag_strength_tesla(20, 170) * 1e9, 34392, 145 + 344);
EXPECT_NEAR(get_mag_strength_tesla(20, 175) * 1e9, 34122, 145 + 341);
EXPECT_NEAR(get_mag_strength_tesla(20, 180) * 1e9, 33989, 145 + 340);
EXPECT_NEAR(get_mag_strength_tesla(25, -180) * 1e9, 35366, 145 + 354);
EXPECT_NEAR(get_mag_strength_tesla(25, -175) * 1e9, 35343, 145 + 353);
EXPECT_NEAR(get_mag_strength_tesla(25, -170) * 1e9, 35423, 145 + 354);
EXPECT_NEAR(get_mag_strength_tesla(25, -165) * 1e9, 35586, 145 + 356);
EXPECT_NEAR(get_mag_strength_tesla(25, -160) * 1e9, 35829, 145 + 358);
EXPECT_NEAR(get_mag_strength_tesla(25, -155) * 1e9, 36161, 145 + 362);
EXPECT_NEAR(get_mag_strength_tesla(25, -150) * 1e9, 36595, 145 + 366);
EXPECT_NEAR(get_mag_strength_tesla(25, -145) * 1e9, 37137, 145 + 371);
EXPECT_NEAR(get_mag_strength_tesla(25, -140) * 1e9, 37778, 145 + 378);
EXPECT_NEAR(get_mag_strength_tesla(25, -135) * 1e9, 38496, 145 + 385);
EXPECT_NEAR(get_mag_strength_tesla(25, -130) * 1e9, 39260, 145 + 393);
EXPECT_NEAR(get_mag_strength_tesla(25, -125) * 1e9, 40041, 145 + 400);
EXPECT_NEAR(get_mag_strength_tesla(25, -120) * 1e9, 40810, 145 + 408);
EXPECT_NEAR(get_mag_strength_tesla(25, -115) * 1e9, 41540, 145 + 415);
EXPECT_NEAR(get_mag_strength_tesla(25, -110) * 1e9, 42201, 145 + 422);
EXPECT_NEAR(get_mag_strength_tesla(25, -105) * 1e9, 42757, 145 + 428);
EXPECT_NEAR(get_mag_strength_tesla(25, -100) * 1e9, 43163, 145 + 432);
EXPECT_NEAR(get_mag_strength_tesla(25, -95) * 1e9, 43375, 145 + 434);
EXPECT_NEAR(get_mag_strength_tesla(25, -90) * 1e9, 43360, 145 + 434);
EXPECT_NEAR(get_mag_strength_tesla(25, -85) * 1e9, 43104, 145 + 431);
EXPECT_NEAR(get_mag_strength_tesla(25, -80) * 1e9, 42617, 145 + 426);
EXPECT_NEAR(get_mag_strength_tesla(25, -75) * 1e9, 41934, 145 + 419);
EXPECT_NEAR(get_mag_strength_tesla(25, -70) * 1e9, 41112, 145 + 411);
EXPECT_NEAR(get_mag_strength_tesla(25, -65) * 1e9, 40217, 145 + 402);
EXPECT_NEAR(get_mag_strength_tesla(25, -60) * 1e9, 39326, 145 + 393);
EXPECT_NEAR(get_mag_strength_tesla(25, -55) * 1e9, 38509, 145 + 385);
EXPECT_NEAR(get_mag_strength_tesla(25, -50) * 1e9, 37822, 145 + 378);
EXPECT_NEAR(get_mag_strength_tesla(25, -45) * 1e9, 37298, 145 + 373);
EXPECT_NEAR(get_mag_strength_tesla(25, -40) * 1e9, 36941, 145 + 369);
EXPECT_NEAR(get_mag_strength_tesla(25, -35) * 1e9, 36738, 145 + 367);
EXPECT_NEAR(get_mag_strength_tesla(25, -30) * 1e9, 36667, 145 + 367);
EXPECT_NEAR(get_mag_strength_tesla(25, -25) * 1e9, 36714, 145 + 367);
EXPECT_NEAR(get_mag_strength_tesla(25, -20) * 1e9, 36873, 145 + 369);
EXPECT_NEAR(get_mag_strength_tesla(25, -15) * 1e9, 37143, 145 + 371);
EXPECT_NEAR(get_mag_strength_tesla(25, -10) * 1e9, 37516, 145 + 375);
EXPECT_NEAR(get_mag_strength_tesla(25, -5) * 1e9, 37968, 145 + 380);
EXPECT_NEAR(get_mag_strength_tesla(25, 0) * 1e9, 38466, 145 + 385);
EXPECT_NEAR(get_mag_strength_tesla(25, 5) * 1e9, 38975, 145 + 390);
EXPECT_NEAR(get_mag_strength_tesla(25, 10) * 1e9, 39474, 145 + 395);
EXPECT_NEAR(get_mag_strength_tesla(25, 15) * 1e9, 39961, 145 + 400);
EXPECT_NEAR(get_mag_strength_tesla(25, 20) * 1e9, 40452, 145 + 405);
EXPECT_NEAR(get_mag_strength_tesla(25, 25) * 1e9, 40967, 145 + 410);
EXPECT_NEAR(get_mag_strength_tesla(25, 30) * 1e9, 41517, 145 + 415);
EXPECT_NEAR(get_mag_strength_tesla(25, 35) * 1e9, 42096, 145 + 421);
EXPECT_NEAR(get_mag_strength_tesla(25, 40) * 1e9, 42684, 145 + 427);
EXPECT_NEAR(get_mag_strength_tesla(25, 45) * 1e9, 43262, 145 + 433);
EXPECT_NEAR(get_mag_strength_tesla(25, 50) * 1e9, 43823, 145 + 438);
EXPECT_NEAR(get_mag_strength_tesla(25, 55) * 1e9, 44377, 145 + 444);
EXPECT_NEAR(get_mag_strength_tesla(25, 60) * 1e9, 44938, 145 + 449);
EXPECT_NEAR(get_mag_strength_tesla(25, 65) * 1e9, 45518, 145 + 455);
EXPECT_NEAR(get_mag_strength_tesla(25, 70) * 1e9, 46107, 145 + 461);
EXPECT_NEAR(get_mag_strength_tesla(25, 75) * 1e9, 46679, 145 + 467);
EXPECT_NEAR(get_mag_strength_tesla(25, 80) * 1e9, 47199, 145 + 472);
EXPECT_NEAR(get_mag_strength_tesla(25, 85) * 1e9, 47629, 145 + 476);
EXPECT_NEAR(get_mag_strength_tesla(25, 90) * 1e9, 47938, 145 + 479);
EXPECT_NEAR(get_mag_strength_tesla(25, 95) * 1e9, 48102, 145 + 481);
EXPECT_NEAR(get_mag_strength_tesla(25, 100) * 1e9, 48098, 145 + 481);
EXPECT_NEAR(get_mag_strength_tesla(25, 105) * 1e9, 47904, 145 + 479);
EXPECT_NEAR(get_mag_strength_tesla(25, 110) * 1e9, 47494, 145 + 475);
EXPECT_NEAR(get_mag_strength_tesla(25, 115) * 1e9, 46855, 145 + 469);
EXPECT_NEAR(get_mag_strength_tesla(25, 120) * 1e9, 45990, 145 + 460);
EXPECT_NEAR(get_mag_strength_tesla(25, 125) * 1e9, 44928, 145 + 449);
EXPECT_NEAR(get_mag_strength_tesla(25, 130) * 1e9, 43724, 145 + 437);
EXPECT_NEAR(get_mag_strength_tesla(25, 135) * 1e9, 42445, 145 + 424);
EXPECT_NEAR(get_mag_strength_tesla(25, 140) * 1e9, 41160, 145 + 412);
EXPECT_NEAR(get_mag_strength_tesla(25, 145) * 1e9, 39931, 145 + 399);
EXPECT_NEAR(get_mag_strength_tesla(25, 150) * 1e9, 38803, 145 + 388);
EXPECT_NEAR(get_mag_strength_tesla(25, 155) * 1e9, 37810, 145 + 378);
EXPECT_NEAR(get_mag_strength_tesla(25, 160) * 1e9, 36973, 145 + 370);
EXPECT_NEAR(get_mag_strength_tesla(25, 165) * 1e9, 36310, 145 + 363);
EXPECT_NEAR(get_mag_strength_tesla(25, 170) * 1e9, 35826, 145 + 358);
EXPECT_NEAR(get_mag_strength_tesla(25, 175) * 1e9, 35517, 145 + 355);
EXPECT_NEAR(get_mag_strength_tesla(25, 180) * 1e9, 35366, 145 + 354);
EXPECT_NEAR(get_mag_strength_tesla(30, -180) * 1e9, 37220, 145 + 372);
EXPECT_NEAR(get_mag_strength_tesla(30, -175) * 1e9, 37174, 145 + 372);
EXPECT_NEAR(get_mag_strength_tesla(30, -170) * 1e9, 37262, 145 + 373);
EXPECT_NEAR(get_mag_strength_tesla(30, -165) * 1e9, 37466, 145 + 375);
EXPECT_NEAR(get_mag_strength_tesla(30, -160) * 1e9, 37783, 145 + 378);
EXPECT_NEAR(get_mag_strength_tesla(30, -155) * 1e9, 38212, 145 + 382);
EXPECT_NEAR(get_mag_strength_tesla(30, -150) * 1e9, 38758, 145 + 388);
EXPECT_NEAR(get_mag_strength_tesla(30, -145) * 1e9, 39414, 145 + 394);
EXPECT_NEAR(get_mag_strength_tesla(30, -140) * 1e9, 40169, 145 + 402);
EXPECT_NEAR(get_mag_strength_tesla(30, -135) * 1e9, 40996, 145 + 410);
EXPECT_NEAR(get_mag_strength_tesla(30, -130) * 1e9, 41865, 145 + 419);
EXPECT_NEAR(get_mag_strength_tesla(30, -125) * 1e9, 42744, 145 + 427);
EXPECT_NEAR(get_mag_strength_tesla(30, -120) * 1e9, 43605, 145 + 436);
EXPECT_NEAR(get_mag_strength_tesla(30, -115) * 1e9, 44419, 145 + 444);
EXPECT_NEAR(get_mag_strength_tesla(30, -110) * 1e9, 45153, 145 + 452);
EXPECT_NEAR(get_mag_strength_tesla(30, -105) * 1e9, 45769, 145 + 458);
EXPECT_NEAR(get_mag_strength_tesla(30, -100) * 1e9, 46222, 145 + 462);
EXPECT_NEAR(get_mag_strength_tesla(30, -95) * 1e9, 46471, 145 + 465);
EXPECT_NEAR(get_mag_strength_tesla(30, -90) * 1e9, 46481, 145 + 465);
EXPECT_NEAR(get_mag_strength_tesla(30, -85) * 1e9, 46238, 145 + 462);
EXPECT_NEAR(get_mag_strength_tesla(30, -80) * 1e9, 45752, 145 + 458);
EXPECT_NEAR(get_mag_strength_tesla(30, -75) * 1e9, 45057, 145 + 451);
EXPECT_NEAR(get_mag_strength_tesla(30, -70) * 1e9, 44208, 145 + 442);
EXPECT_NEAR(get_mag_strength_tesla(30, -65) * 1e9, 43278, 145 + 433);
EXPECT_NEAR(get_mag_strength_tesla(30, -60) * 1e9, 42344, 145 + 423);
EXPECT_NEAR(get_mag_strength_tesla(30, -55) * 1e9, 41479, 145 + 415);
EXPECT_NEAR(get_mag_strength_tesla(30, -50) * 1e9, 40736, 145 + 407);
EXPECT_NEAR(get_mag_strength_tesla(30, -45) * 1e9, 40148, 145 + 401);
EXPECT_NEAR(get_mag_strength_tesla(30, -40) * 1e9, 39720, 145 + 397);
EXPECT_NEAR(get_mag_strength_tesla(30, -35) * 1e9, 39439, 145 + 394);
EXPECT_NEAR(get_mag_strength_tesla(30, -30) * 1e9, 39289, 145 + 393);
EXPECT_NEAR(get_mag_strength_tesla(30, -25) * 1e9, 39260, 145 + 393);
EXPECT_NEAR(get_mag_strength_tesla(30, -20) * 1e9, 39349, 145 + 393);
EXPECT_NEAR(get_mag_strength_tesla(30, -15) * 1e9, 39558, 145 + 396);
EXPECT_NEAR(get_mag_strength_tesla(30, -10) * 1e9, 39881, 145 + 399);
EXPECT_NEAR(get_mag_strength_tesla(30, -5) * 1e9, 40295, 145 + 403);
EXPECT_NEAR(get_mag_strength_tesla(30, 0) * 1e9, 40768, 145 + 408);
EXPECT_NEAR(get_mag_strength_tesla(30, 5) * 1e9, 41265, 145 + 413);
EXPECT_NEAR(get_mag_strength_tesla(30, 10) * 1e9, 41761, 145 + 418);
EXPECT_NEAR(get_mag_strength_tesla(30, 15) * 1e9, 42251, 145 + 423);
EXPECT_NEAR(get_mag_strength_tesla(30, 20) * 1e9, 42748, 145 + 427);
EXPECT_NEAR(get_mag_strength_tesla(30, 25) * 1e9, 43267, 145 + 433);
EXPECT_NEAR(get_mag_strength_tesla(30, 30) * 1e9, 43817, 145 + 438);
EXPECT_NEAR(get_mag_strength_tesla(30, 35) * 1e9, 44396, 145 + 444);
EXPECT_NEAR(get_mag_strength_tesla(30, 40) * 1e9, 44988, 145 + 450);
EXPECT_NEAR(get_mag_strength_tesla(30, 45) * 1e9, 45579, 145 + 456);
EXPECT_NEAR(get_mag_strength_tesla(30, 50) * 1e9, 46168, 145 + 462);
EXPECT_NEAR(get_mag_strength_tesla(30, 55) * 1e9, 46761, 145 + 468);
EXPECT_NEAR(get_mag_strength_tesla(30, 60) * 1e9, 47373, 145 + 474);
EXPECT_NEAR(get_mag_strength_tesla(30, 65) * 1e9, 48008, 145 + 480);
EXPECT_NEAR(get_mag_strength_tesla(30, 70) * 1e9, 48658, 145 + 487);
EXPECT_NEAR(get_mag_strength_tesla(30, 75) * 1e9, 49293, 145 + 493);
EXPECT_NEAR(get_mag_strength_tesla(30, 80) * 1e9, 49877, 145 + 499);
EXPECT_NEAR(get_mag_strength_tesla(30, 85) * 1e9, 50370, 145 + 504);
EXPECT_NEAR(get_mag_strength_tesla(30, 90) * 1e9, 50737, 145 + 507);
EXPECT_NEAR(get_mag_strength_tesla(30, 95) * 1e9, 50950, 145 + 509);
EXPECT_NEAR(get_mag_strength_tesla(30, 100) * 1e9, 50979, 145 + 510);
EXPECT_NEAR(get_mag_strength_tesla(30, 105) * 1e9, 50797, 145 + 508);
EXPECT_NEAR(get_mag_strength_tesla(30, 110) * 1e9, 50379, 145 + 504);
EXPECT_NEAR(get_mag_strength_tesla(30, 115) * 1e9, 49710, 145 + 497);
EXPECT_NEAR(get_mag_strength_tesla(30, 120) * 1e9, 48797, 145 + 488);
EXPECT_NEAR(get_mag_strength_tesla(30, 125) * 1e9, 47670, 145 + 477);
EXPECT_NEAR(get_mag_strength_tesla(30, 130) * 1e9, 46386, 145 + 464);
EXPECT_NEAR(get_mag_strength_tesla(30, 135) * 1e9, 45016, 145 + 450);
EXPECT_NEAR(get_mag_strength_tesla(30, 140) * 1e9, 43636, 145 + 436);
EXPECT_NEAR(get_mag_strength_tesla(30, 145) * 1e9, 42309, 145 + 423);
EXPECT_NEAR(get_mag_strength_tesla(30, 150) * 1e9, 41087, 145 + 411);
EXPECT_NEAR(get_mag_strength_tesla(30, 155) * 1e9, 40005, 145 + 400);
EXPECT_NEAR(get_mag_strength_tesla(30, 160) * 1e9, 39086, 145 + 391);
EXPECT_NEAR(get_mag_strength_tesla(30, 165) * 1e9, 38345, 145 + 383);
EXPECT_NEAR(get_mag_strength_tesla(30, 170) * 1e9, 37790, 145 + 378);
EXPECT_NEAR(get_mag_strength_tesla(30, 175) * 1e9, 37419, 145 + 374);
EXPECT_NEAR(get_mag_strength_tesla(30, 180) * 1e9, 37220, 145 + 372);
EXPECT_NEAR(get_mag_strength_tesla(35, -180) * 1e9, 39521, 145 + 395);
EXPECT_NEAR(get_mag_strength_tesla(35, -175) * 1e9, 39439, 145 + 394);
EXPECT_NEAR(get_mag_strength_tesla(35, -170) * 1e9, 39517, 145 + 395);
EXPECT_NEAR(get_mag_strength_tesla(35, -165) * 1e9, 39743, 145 + 397);
EXPECT_NEAR(get_mag_strength_tesla(35, -160) * 1e9, 40110, 145 + 401);
EXPECT_NEAR(get_mag_strength_tesla(35, -155) * 1e9, 40612, 145 + 406);
EXPECT_NEAR(get_mag_strength_tesla(35, -150) * 1e9, 41240, 145 + 412);
EXPECT_NEAR(get_mag_strength_tesla(35, -145) * 1e9, 41982, 145 + 420);
EXPECT_NEAR(get_mag_strength_tesla(35, -140) * 1e9, 42816, 145 + 428);
EXPECT_NEAR(get_mag_strength_tesla(35, -135) * 1e9, 43712, 145 + 437);
EXPECT_NEAR(get_mag_strength_tesla(35, -130) * 1e9, 44641, 145 + 446);
EXPECT_NEAR(get_mag_strength_tesla(35, -125) * 1e9, 45572, 145 + 456);
EXPECT_NEAR(get_mag_strength_tesla(35, -120) * 1e9, 46474, 145 + 465);
EXPECT_NEAR(get_mag_strength_tesla(35, -115) * 1e9, 47320, 145 + 473);
EXPECT_NEAR(get_mag_strength_tesla(35, -110) * 1e9, 48078, 145 + 481);
EXPECT_NEAR(get_mag_strength_tesla(35, -105) * 1e9, 48711, 145 + 487);
EXPECT_NEAR(get_mag_strength_tesla(35, -100) * 1e9, 49177, 145 + 492);
EXPECT_NEAR(get_mag_strength_tesla(35, -95) * 1e9, 49437, 145 + 494);
EXPECT_NEAR(get_mag_strength_tesla(35, -90) * 1e9, 49459, 145 + 495);
EXPECT_NEAR(get_mag_strength_tesla(35, -85) * 1e9, 49230, 145 + 492);
EXPECT_NEAR(get_mag_strength_tesla(35, -80) * 1e9, 48756, 145 + 488);
EXPECT_NEAR(get_mag_strength_tesla(35, -75) * 1e9, 48071, 145 + 481);
EXPECT_NEAR(get_mag_strength_tesla(35, -70) * 1e9, 47227, 145 + 472);
EXPECT_NEAR(get_mag_strength_tesla(35, -65) * 1e9, 46294, 145 + 463);
EXPECT_NEAR(get_mag_strength_tesla(35, -60) * 1e9, 45346, 145 + 453);
EXPECT_NEAR(get_mag_strength_tesla(35, -55) * 1e9, 44453, 145 + 445);
EXPECT_NEAR(get_mag_strength_tesla(35, -50) * 1e9, 43668, 145 + 437);
EXPECT_NEAR(get_mag_strength_tesla(35, -45) * 1e9, 43023, 145 + 430);
EXPECT_NEAR(get_mag_strength_tesla(35, -40) * 1e9, 42527, 145 + 425);
EXPECT_NEAR(get_mag_strength_tesla(35, -35) * 1e9, 42171, 145 + 422);
EXPECT_NEAR(get_mag_strength_tesla(35, -30) * 1e9, 41946, 145 + 419);
EXPECT_NEAR(get_mag_strength_tesla(35, -25) * 1e9, 41842, 145 + 418);
EXPECT_NEAR(get_mag_strength_tesla(35, -20) * 1e9, 41862, 145 + 419);
EXPECT_NEAR(get_mag_strength_tesla(35, -15) * 1e9, 42004, 145 + 420);
EXPECT_NEAR(get_mag_strength_tesla(35, -10) * 1e9, 42262, 145 + 423);
EXPECT_NEAR(get_mag_strength_tesla(35, -5) * 1e9, 42618, 145 + 426);
EXPECT_NEAR(get_mag_strength_tesla(35, 0) * 1e9, 43040, 145 + 430);
EXPECT_NEAR(get_mag_strength_tesla(35, 5) * 1e9, 43496, 145 + 435);
EXPECT_NEAR(get_mag_strength_tesla(35, 10) * 1e9, 43963, 145 + 440);
EXPECT_NEAR(get_mag_strength_tesla(35, 15) * 1e9, 44433, 145 + 444);
EXPECT_NEAR(get_mag_strength_tesla(35, 20) * 1e9, 44912, 145 + 449);
EXPECT_NEAR(get_mag_strength_tesla(35, 25) * 1e9, 45412, 145 + 454);
EXPECT_NEAR(get_mag_strength_tesla(35, 30) * 1e9, 45945, 145 + 459);
EXPECT_NEAR(get_mag_strength_tesla(35, 35) * 1e9, 46510, 145 + 465);
EXPECT_NEAR(get_mag_strength_tesla(35, 40) * 1e9, 47103, 145 + 471);
EXPECT_NEAR(get_mag_strength_tesla(35, 45) * 1e9, 47716, 145 + 477);
EXPECT_NEAR(get_mag_strength_tesla(35, 50) * 1e9, 48350, 145 + 483);
EXPECT_NEAR(get_mag_strength_tesla(35, 55) * 1e9, 49009, 145 + 490);
EXPECT_NEAR(get_mag_strength_tesla(35, 60) * 1e9, 49699, 145 + 497);
EXPECT_NEAR(get_mag_strength_tesla(35, 65) * 1e9, 50419, 145 + 504);
EXPECT_NEAR(get_mag_strength_tesla(35, 70) * 1e9, 51152, 145 + 512);
EXPECT_NEAR(get_mag_strength_tesla(35, 75) * 1e9, 51868, 145 + 519);
EXPECT_NEAR(get_mag_strength_tesla(35, 80) * 1e9, 52527, 145 + 525);
EXPECT_NEAR(get_mag_strength_tesla(35, 85) * 1e9, 53088, 145 + 531);
EXPECT_NEAR(get_mag_strength_tesla(35, 90) * 1e9, 53514, 145 + 535);
EXPECT_NEAR(get_mag_strength_tesla(35, 95) * 1e9, 53771, 145 + 538);
EXPECT_NEAR(get_mag_strength_tesla(35, 100) * 1e9, 53828, 145 + 538);
EXPECT_NEAR(get_mag_strength_tesla(35, 105) * 1e9, 53658, 145 + 537);
EXPECT_NEAR(get_mag_strength_tesla(35, 110) * 1e9, 53238, 145 + 532);
EXPECT_NEAR(get_mag_strength_tesla(35, 115) * 1e9, 52560, 145 + 526);
EXPECT_NEAR(get_mag_strength_tesla(35, 120) * 1e9, 51630, 145 + 516);
EXPECT_NEAR(get_mag_strength_tesla(35, 125) * 1e9, 50484, 145 + 505);
EXPECT_NEAR(get_mag_strength_tesla(35, 130) * 1e9, 49177, 145 + 492);
EXPECT_NEAR(get_mag_strength_tesla(35, 135) * 1e9, 47780, 145 + 478);
EXPECT_NEAR(get_mag_strength_tesla(35, 140) * 1e9, 46365, 145 + 464);
EXPECT_NEAR(get_mag_strength_tesla(35, 145) * 1e9, 44998, 145 + 450);
EXPECT_NEAR(get_mag_strength_tesla(35, 150) * 1e9, 43731, 145 + 437);
EXPECT_NEAR(get_mag_strength_tesla(35, 155) * 1e9, 42599, 145 + 426);
EXPECT_NEAR(get_mag_strength_tesla(35, 160) * 1e9, 41625, 145 + 416);
EXPECT_NEAR(get_mag_strength_tesla(35, 165) * 1e9, 40826, 145 + 408);
EXPECT_NEAR(get_mag_strength_tesla(35, 170) * 1e9, 40208, 145 + 402);
EXPECT_NEAR(get_mag_strength_tesla(35, 175) * 1e9, 39774, 145 + 398);
EXPECT_NEAR(get_mag_strength_tesla(35, 180) * 1e9, 39521, 145 + 395);
EXPECT_NEAR(get_mag_strength_tesla(40, -180) * 1e9, 42218, 145 + 422);
EXPECT_NEAR(get_mag_strength_tesla(40, -175) * 1e9, 42104, 145 + 421);
EXPECT_NEAR(get_mag_strength_tesla(40, -170) * 1e9, 42164, 145 + 422);
EXPECT_NEAR(get_mag_strength_tesla(40, -165) * 1e9, 42394, 145 + 424);
EXPECT_NEAR(get_mag_strength_tesla(40, -160) * 1e9, 42783, 145 + 428);
EXPECT_NEAR(get_mag_strength_tesla(40, -155) * 1e9, 43322, 145 + 433);
EXPECT_NEAR(get_mag_strength_tesla(40, -150) * 1e9, 43993, 145 + 440);
EXPECT_NEAR(get_mag_strength_tesla(40, -145) * 1e9, 44775, 145 + 448);
EXPECT_NEAR(get_mag_strength_tesla(40, -140) * 1e9, 45641, 145 + 456);
EXPECT_NEAR(get_mag_strength_tesla(40, -135) * 1e9, 46559, 145 + 466);
EXPECT_NEAR(get_mag_strength_tesla(40, -130) * 1e9, 47498, 145 + 475);
EXPECT_NEAR(get_mag_strength_tesla(40, -125) * 1e9, 48428, 145 + 484);
EXPECT_NEAR(get_mag_strength_tesla(40, -120) * 1e9, 49320, 145 + 493);
EXPECT_NEAR(get_mag_strength_tesla(40, -115) * 1e9, 50147, 145 + 501);
EXPECT_NEAR(get_mag_strength_tesla(40, -110) * 1e9, 50879, 145 + 509);
EXPECT_NEAR(get_mag_strength_tesla(40, -105) * 1e9, 51483, 145 + 515);
EXPECT_NEAR(get_mag_strength_tesla(40, -100) * 1e9, 51923, 145 + 519);
EXPECT_NEAR(get_mag_strength_tesla(40, -95) * 1e9, 52165, 145 + 522);
EXPECT_NEAR(get_mag_strength_tesla(40, -90) * 1e9, 52182, 145 + 522);
EXPECT_NEAR(get_mag_strength_tesla(40, -85) * 1e9, 51960, 145 + 520);
EXPECT_NEAR(get_mag_strength_tesla(40, -80) * 1e9, 51507, 145 + 515);
EXPECT_NEAR(get_mag_strength_tesla(40, -75) * 1e9, 50851, 145 + 509);
EXPECT_NEAR(get_mag_strength_tesla(40, -70) * 1e9, 50038, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(40, -65) * 1e9, 49130, 145 + 491);
EXPECT_NEAR(get_mag_strength_tesla(40, -60) * 1e9, 48196, 145 + 482);
EXPECT_NEAR(get_mag_strength_tesla(40, -55) * 1e9, 47298, 145 + 473);
EXPECT_NEAR(get_mag_strength_tesla(40, -50) * 1e9, 46488, 145 + 465);
EXPECT_NEAR(get_mag_strength_tesla(40, -45) * 1e9, 45796, 145 + 458);
EXPECT_NEAR(get_mag_strength_tesla(40, -40) * 1e9, 45236, 145 + 452);
EXPECT_NEAR(get_mag_strength_tesla(40, -35) * 1e9, 44808, 145 + 448);
EXPECT_NEAR(get_mag_strength_tesla(40, -30) * 1e9, 44508, 145 + 445);
EXPECT_NEAR(get_mag_strength_tesla(40, -25) * 1e9, 44330, 145 + 443);
EXPECT_NEAR(get_mag_strength_tesla(40, -20) * 1e9, 44274, 145 + 443);
EXPECT_NEAR(get_mag_strength_tesla(40, -15) * 1e9, 44340, 145 + 443);
EXPECT_NEAR(get_mag_strength_tesla(40, -10) * 1e9, 44520, 145 + 445);
EXPECT_NEAR(get_mag_strength_tesla(40, -5) * 1e9, 44797, 145 + 448);
EXPECT_NEAR(get_mag_strength_tesla(40, 0) * 1e9, 45145, 145 + 451);
EXPECT_NEAR(get_mag_strength_tesla(40, 5) * 1e9, 45538, 145 + 455);
EXPECT_NEAR(get_mag_strength_tesla(40, 10) * 1e9, 45954, 145 + 460);
EXPECT_NEAR(get_mag_strength_tesla(40, 15) * 1e9, 46383, 145 + 464);
EXPECT_NEAR(get_mag_strength_tesla(40, 20) * 1e9, 46830, 145 + 468);
EXPECT_NEAR(get_mag_strength_tesla(40, 25) * 1e9, 47303, 145 + 473);
EXPECT_NEAR(get_mag_strength_tesla(40, 30) * 1e9, 47814, 145 + 478);
EXPECT_NEAR(get_mag_strength_tesla(40, 35) * 1e9, 48368, 145 + 484);
EXPECT_NEAR(get_mag_strength_tesla(40, 40) * 1e9, 48968, 145 + 490);
EXPECT_NEAR(get_mag_strength_tesla(40, 45) * 1e9, 49613, 145 + 496);
EXPECT_NEAR(get_mag_strength_tesla(40, 50) * 1e9, 50303, 145 + 503);
EXPECT_NEAR(get_mag_strength_tesla(40, 55) * 1e9, 51039, 145 + 510);
EXPECT_NEAR(get_mag_strength_tesla(40, 60) * 1e9, 51819, 145 + 518);
EXPECT_NEAR(get_mag_strength_tesla(40, 65) * 1e9, 52630, 145 + 526);
EXPECT_NEAR(get_mag_strength_tesla(40, 70) * 1e9, 53450, 145 + 534);
EXPECT_NEAR(get_mag_strength_tesla(40, 75) * 1e9, 54244, 145 + 542);
EXPECT_NEAR(get_mag_strength_tesla(40, 80) * 1e9, 54972, 145 + 550);
EXPECT_NEAR(get_mag_strength_tesla(40, 85) * 1e9, 55592, 145 + 556);
EXPECT_NEAR(get_mag_strength_tesla(40, 90) * 1e9, 56064, 145 + 561);
EXPECT_NEAR(get_mag_strength_tesla(40, 95) * 1e9, 56353, 145 + 564);
EXPECT_NEAR(get_mag_strength_tesla(40, 100) * 1e9, 56431, 145 + 564);
EXPECT_NEAR(get_mag_strength_tesla(40, 105) * 1e9, 56272, 145 + 563);
EXPECT_NEAR(get_mag_strength_tesla(40, 110) * 1e9, 55861, 145 + 559);
EXPECT_NEAR(get_mag_strength_tesla(40, 115) * 1e9, 55194, 145 + 552);
EXPECT_NEAR(get_mag_strength_tesla(40, 120) * 1e9, 54285, 145 + 543);
EXPECT_NEAR(get_mag_strength_tesla(40, 125) * 1e9, 53169, 145 + 532);
EXPECT_NEAR(get_mag_strength_tesla(40, 130) * 1e9, 51898, 145 + 519);
EXPECT_NEAR(get_mag_strength_tesla(40, 135) * 1e9, 50539, 145 + 505);
EXPECT_NEAR(get_mag_strength_tesla(40, 140) * 1e9, 49158, 145 + 492);
EXPECT_NEAR(get_mag_strength_tesla(40, 145) * 1e9, 47818, 145 + 478);
EXPECT_NEAR(get_mag_strength_tesla(40, 150) * 1e9, 46566, 145 + 466);
EXPECT_NEAR(get_mag_strength_tesla(40, 155) * 1e9, 45438, 145 + 454);
EXPECT_NEAR(get_mag_strength_tesla(40, 160) * 1e9, 44456, 145 + 445);
EXPECT_NEAR(get_mag_strength_tesla(40, 165) * 1e9, 43635, 145 + 436);
EXPECT_NEAR(get_mag_strength_tesla(40, 170) * 1e9, 42985, 145 + 430);
EXPECT_NEAR(get_mag_strength_tesla(40, 175) * 1e9, 42512, 145 + 425);
EXPECT_NEAR(get_mag_strength_tesla(40, 180) * 1e9, 42218, 145 + 422);
EXPECT_NEAR(get_mag_strength_tesla(45, -180) * 1e9, 45210, 145 + 452);
EXPECT_NEAR(get_mag_strength_tesla(45, -175) * 1e9, 45076, 145 + 451);
EXPECT_NEAR(get_mag_strength_tesla(45, -170) * 1e9, 45117, 145 + 451);
EXPECT_NEAR(get_mag_strength_tesla(45, -165) * 1e9, 45332, 145 + 453);
EXPECT_NEAR(get_mag_strength_tesla(45, -160) * 1e9, 45712, 145 + 457);
EXPECT_NEAR(get_mag_strength_tesla(45, -155) * 1e9, 46242, 145 + 462);
EXPECT_NEAR(get_mag_strength_tesla(45, -150) * 1e9, 46903, 145 + 469);
EXPECT_NEAR(get_mag_strength_tesla(45, -145) * 1e9, 47669, 145 + 477);
EXPECT_NEAR(get_mag_strength_tesla(45, -140) * 1e9, 48509, 145 + 485);
EXPECT_NEAR(get_mag_strength_tesla(45, -135) * 1e9, 49392, 145 + 494);
EXPECT_NEAR(get_mag_strength_tesla(45, -130) * 1e9, 50285, 145 + 503);
EXPECT_NEAR(get_mag_strength_tesla(45, -125) * 1e9, 51161, 145 + 512);
EXPECT_NEAR(get_mag_strength_tesla(45, -120) * 1e9, 51992, 145 + 520);
EXPECT_NEAR(get_mag_strength_tesla(45, -115) * 1e9, 52752, 145 + 528);
EXPECT_NEAR(get_mag_strength_tesla(45, -110) * 1e9, 53415, 145 + 534);
EXPECT_NEAR(get_mag_strength_tesla(45, -105) * 1e9, 53952, 145 + 540);
EXPECT_NEAR(get_mag_strength_tesla(45, -100) * 1e9, 54334, 145 + 543);
EXPECT_NEAR(get_mag_strength_tesla(45, -95) * 1e9, 54533, 145 + 545);
EXPECT_NEAR(get_mag_strength_tesla(45, -90) * 1e9, 54527, 145 + 545);
EXPECT_NEAR(get_mag_strength_tesla(45, -85) * 1e9, 54307, 145 + 543);
EXPECT_NEAR(get_mag_strength_tesla(45, -80) * 1e9, 53878, 145 + 539);
EXPECT_NEAR(get_mag_strength_tesla(45, -75) * 1e9, 53264, 145 + 533);
EXPECT_NEAR(get_mag_strength_tesla(45, -70) * 1e9, 52504, 145 + 525);
EXPECT_NEAR(get_mag_strength_tesla(45, -65) * 1e9, 51649, 145 + 516);
EXPECT_NEAR(get_mag_strength_tesla(45, -60) * 1e9, 50756, 145 + 508);
EXPECT_NEAR(get_mag_strength_tesla(45, -55) * 1e9, 49880, 145 + 499);
EXPECT_NEAR(get_mag_strength_tesla(45, -50) * 1e9, 49066, 145 + 491);
EXPECT_NEAR(get_mag_strength_tesla(45, -45) * 1e9, 48345, 145 + 483);
EXPECT_NEAR(get_mag_strength_tesla(45, -40) * 1e9, 47737, 145 + 477);
EXPECT_NEAR(get_mag_strength_tesla(45, -35) * 1e9, 47246, 145 + 472);
EXPECT_NEAR(get_mag_strength_tesla(45, -30) * 1e9, 46876, 145 + 469);
EXPECT_NEAR(get_mag_strength_tesla(45, -25) * 1e9, 46624, 145 + 466);
EXPECT_NEAR(get_mag_strength_tesla(45, -20) * 1e9, 46490, 145 + 465);
EXPECT_NEAR(get_mag_strength_tesla(45, -15) * 1e9, 46473, 145 + 465);
EXPECT_NEAR(get_mag_strength_tesla(45, -10) * 1e9, 46565, 145 + 466);
EXPECT_NEAR(get_mag_strength_tesla(45, -5) * 1e9, 46751, 145 + 468);
EXPECT_NEAR(get_mag_strength_tesla(45, 0) * 1e9, 47011, 145 + 470);
EXPECT_NEAR(get_mag_strength_tesla(45, 5) * 1e9, 47325, 145 + 473);
EXPECT_NEAR(get_mag_strength_tesla(45, 10) * 1e9, 47676, 145 + 477);
EXPECT_NEAR(get_mag_strength_tesla(45, 15) * 1e9, 48055, 145 + 481);
EXPECT_NEAR(get_mag_strength_tesla(45, 20) * 1e9, 48465, 145 + 485);
EXPECT_NEAR(get_mag_strength_tesla(45, 25) * 1e9, 48913, 145 + 489);
EXPECT_NEAR(get_mag_strength_tesla(45, 30) * 1e9, 49409, 145 + 494);
EXPECT_NEAR(get_mag_strength_tesla(45, 35) * 1e9, 49962, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(45, 40) * 1e9, 50579, 145 + 506);
EXPECT_NEAR(get_mag_strength_tesla(45, 45) * 1e9, 51261, 145 + 513);
EXPECT_NEAR(get_mag_strength_tesla(45, 50) * 1e9, 52008, 145 + 520);
EXPECT_NEAR(get_mag_strength_tesla(45, 55) * 1e9, 52816, 145 + 528);
EXPECT_NEAR(get_mag_strength_tesla(45, 60) * 1e9, 53674, 145 + 537);
EXPECT_NEAR(get_mag_strength_tesla(45, 65) * 1e9, 54561, 145 + 546);
EXPECT_NEAR(get_mag_strength_tesla(45, 70) * 1e9, 55449, 145 + 554);
EXPECT_NEAR(get_mag_strength_tesla(45, 75) * 1e9, 56301, 145 + 563);
EXPECT_NEAR(get_mag_strength_tesla(45, 80) * 1e9, 57075, 145 + 571);
EXPECT_NEAR(get_mag_strength_tesla(45, 85) * 1e9, 57730, 145 + 577);
EXPECT_NEAR(get_mag_strength_tesla(45, 90) * 1e9, 58228, 145 + 582);
EXPECT_NEAR(get_mag_strength_tesla(45, 95) * 1e9, 58536, 145 + 585);
EXPECT_NEAR(get_mag_strength_tesla(45, 100) * 1e9, 58628, 145 + 586);
EXPECT_NEAR(get_mag_strength_tesla(45, 105) * 1e9, 58484, 145 + 585);
EXPECT_NEAR(get_mag_strength_tesla(45, 110) * 1e9, 58095, 145 + 581);
EXPECT_NEAR(get_mag_strength_tesla(45, 115) * 1e9, 57466, 145 + 575);
EXPECT_NEAR(get_mag_strength_tesla(45, 120) * 1e9, 56614, 145 + 566);
EXPECT_NEAR(get_mag_strength_tesla(45, 125) * 1e9, 55574, 145 + 556);
EXPECT_NEAR(get_mag_strength_tesla(45, 130) * 1e9, 54396, 145 + 544);
EXPECT_NEAR(get_mag_strength_tesla(45, 135) * 1e9, 53137, 145 + 531);
EXPECT_NEAR(get_mag_strength_tesla(45, 140) * 1e9, 51857, 145 + 519);
EXPECT_NEAR(get_mag_strength_tesla(45, 145) * 1e9, 50608, 145 + 506);
EXPECT_NEAR(get_mag_strength_tesla(45, 150) * 1e9, 49434, 145 + 494);
EXPECT_NEAR(get_mag_strength_tesla(45, 155) * 1e9, 48368, 145 + 484);
EXPECT_NEAR(get_mag_strength_tesla(45, 160) * 1e9, 47430, 145 + 474);
EXPECT_NEAR(get_mag_strength_tesla(45, 165) * 1e9, 46636, 145 + 466);
EXPECT_NEAR(get_mag_strength_tesla(45, 170) * 1e9, 45996, 145 + 460);
EXPECT_NEAR(get_mag_strength_tesla(45, 175) * 1e9, 45518, 145 + 455);
EXPECT_NEAR(get_mag_strength_tesla(45, 180) * 1e9, 45210, 145 + 452);
EXPECT_NEAR(get_mag_strength_tesla(50, -180) * 1e9, 48320, 145 + 483);
EXPECT_NEAR(get_mag_strength_tesla(50, -175) * 1e9, 48181, 145 + 482);
EXPECT_NEAR(get_mag_strength_tesla(50, -170) * 1e9, 48203, 145 + 482);
EXPECT_NEAR(get_mag_strength_tesla(50, -165) * 1e9, 48385, 145 + 484);
EXPECT_NEAR(get_mag_strength_tesla(50, -160) * 1e9, 48720, 145 + 487);
EXPECT_NEAR(get_mag_strength_tesla(50, -155) * 1e9, 49195, 145 + 492);
EXPECT_NEAR(get_mag_strength_tesla(50, -150) * 1e9, 49789, 145 + 498);
EXPECT_NEAR(get_mag_strength_tesla(50, -145) * 1e9, 50477, 145 + 505);
EXPECT_NEAR(get_mag_strength_tesla(50, -140) * 1e9, 51230, 145 + 512);
EXPECT_NEAR(get_mag_strength_tesla(50, -135) * 1e9, 52018, 145 + 520);
EXPECT_NEAR(get_mag_strength_tesla(50, -130) * 1e9, 52811, 145 + 528);
EXPECT_NEAR(get_mag_strength_tesla(50, -125) * 1e9, 53583, 145 + 536);
EXPECT_NEAR(get_mag_strength_tesla(50, -120) * 1e9, 54307, 145 + 543);
EXPECT_NEAR(get_mag_strength_tesla(50, -115) * 1e9, 54961, 145 + 550);
EXPECT_NEAR(get_mag_strength_tesla(50, -110) * 1e9, 55522, 145 + 555);
EXPECT_NEAR(get_mag_strength_tesla(50, -105) * 1e9, 55964, 145 + 560);
EXPECT_NEAR(get_mag_strength_tesla(50, -100) * 1e9, 56267, 145 + 563);
EXPECT_NEAR(get_mag_strength_tesla(50, -95) * 1e9, 56407, 145 + 564);
EXPECT_NEAR(get_mag_strength_tesla(50, -90) * 1e9, 56371, 145 + 564);
EXPECT_NEAR(get_mag_strength_tesla(50, -85) * 1e9, 56150, 145 + 562);
EXPECT_NEAR(get_mag_strength_tesla(50, -80) * 1e9, 55750, 145 + 558);
EXPECT_NEAR(get_mag_strength_tesla(50, -75) * 1e9, 55190, 145 + 552);
EXPECT_NEAR(get_mag_strength_tesla(50, -70) * 1e9, 54500, 145 + 545);
EXPECT_NEAR(get_mag_strength_tesla(50, -65) * 1e9, 53720, 145 + 537);
EXPECT_NEAR(get_mag_strength_tesla(50, -60) * 1e9, 52896, 145 + 529);
EXPECT_NEAR(get_mag_strength_tesla(50, -55) * 1e9, 52070, 145 + 521);
EXPECT_NEAR(get_mag_strength_tesla(50, -50) * 1e9, 51283, 145 + 513);
EXPECT_NEAR(get_mag_strength_tesla(50, -45) * 1e9, 50563, 145 + 506);
EXPECT_NEAR(get_mag_strength_tesla(50, -40) * 1e9, 49932, 145 + 499);
EXPECT_NEAR(get_mag_strength_tesla(50, -35) * 1e9, 49400, 145 + 494);
EXPECT_NEAR(get_mag_strength_tesla(50, -30) * 1e9, 48975, 145 + 490);
EXPECT_NEAR(get_mag_strength_tesla(50, -25) * 1e9, 48659, 145 + 487);
EXPECT_NEAR(get_mag_strength_tesla(50, -20) * 1e9, 48453, 145 + 485);
EXPECT_NEAR(get_mag_strength_tesla(50, -15) * 1e9, 48354, 145 + 484);
EXPECT_NEAR(get_mag_strength_tesla(50, -10) * 1e9, 48357, 145 + 484);
EXPECT_NEAR(get_mag_strength_tesla(50, -5) * 1e9, 48450, 145 + 484);
EXPECT_NEAR(get_mag_strength_tesla(50, 0) * 1e9, 48620, 145 + 486);
EXPECT_NEAR(get_mag_strength_tesla(50, 5) * 1e9, 48852, 145 + 489);
EXPECT_NEAR(get_mag_strength_tesla(50, 10) * 1e9, 49136, 145 + 491);
EXPECT_NEAR(get_mag_strength_tesla(50, 15) * 1e9, 49465, 145 + 495);
EXPECT_NEAR(get_mag_strength_tesla(50, 20) * 1e9, 49840, 145 + 498);
EXPECT_NEAR(get_mag_strength_tesla(50, 25) * 1e9, 50269, 145 + 503);
EXPECT_NEAR(get_mag_strength_tesla(50, 30) * 1e9, 50760, 145 + 508);
EXPECT_NEAR(get_mag_strength_tesla(50, 35) * 1e9, 51320, 145 + 513);
EXPECT_NEAR(get_mag_strength_tesla(50, 40) * 1e9, 51958, 145 + 520);
EXPECT_NEAR(get_mag_strength_tesla(50, 45) * 1e9, 52673, 145 + 527);
EXPECT_NEAR(get_mag_strength_tesla(50, 50) * 1e9, 53463, 145 + 535);
EXPECT_NEAR(get_mag_strength_tesla(50, 55) * 1e9, 54319, 145 + 543);
EXPECT_NEAR(get_mag_strength_tesla(50, 60) * 1e9, 55223, 145 + 552);
EXPECT_NEAR(get_mag_strength_tesla(50, 65) * 1e9, 56150, 145 + 562);
EXPECT_NEAR(get_mag_strength_tesla(50, 70) * 1e9, 57069, 145 + 571);
EXPECT_NEAR(get_mag_strength_tesla(50, 75) * 1e9, 57941, 145 + 579);
EXPECT_NEAR(get_mag_strength_tesla(50, 80) * 1e9, 58727, 145 + 587);
EXPECT_NEAR(get_mag_strength_tesla(50, 85) * 1e9, 59388, 145 + 594);
EXPECT_NEAR(get_mag_strength_tesla(50, 90) * 1e9, 59889, 145 + 599);
EXPECT_NEAR(get_mag_strength_tesla(50, 95) * 1e9, 60201, 145 + 602);
EXPECT_NEAR(get_mag_strength_tesla(50, 100) * 1e9, 60303, 145 + 603);
EXPECT_NEAR(get_mag_strength_tesla(50, 105) * 1e9, 60182, 145 + 602);
EXPECT_NEAR(get_mag_strength_tesla(50, 110) * 1e9, 59835, 145 + 598);
EXPECT_NEAR(get_mag_strength_tesla(50, 115) * 1e9, 59272, 145 + 593);
EXPECT_NEAR(get_mag_strength_tesla(50, 120) * 1e9, 58514, 145 + 585);
EXPECT_NEAR(get_mag_strength_tesla(50, 125) * 1e9, 57595, 145 + 576);
EXPECT_NEAR(get_mag_strength_tesla(50, 130) * 1e9, 56557, 145 + 566);
EXPECT_NEAR(get_mag_strength_tesla(50, 135) * 1e9, 55450, 145 + 555);
EXPECT_NEAR(get_mag_strength_tesla(50, 140) * 1e9, 54323, 145 + 543);
EXPECT_NEAR(get_mag_strength_tesla(50, 145) * 1e9, 53220, 145 + 532);
EXPECT_NEAR(get_mag_strength_tesla(50, 150) * 1e9, 52178, 145 + 522);
EXPECT_NEAR(get_mag_strength_tesla(50, 155) * 1e9, 51224, 145 + 512);
EXPECT_NEAR(get_mag_strength_tesla(50, 160) * 1e9, 50378, 145 + 504);
EXPECT_NEAR(get_mag_strength_tesla(50, 165) * 1e9, 49655, 145 + 497);
EXPECT_NEAR(get_mag_strength_tesla(50, 170) * 1e9, 49065, 145 + 491);
EXPECT_NEAR(get_mag_strength_tesla(50, 175) * 1e9, 48617, 145 + 486);
EXPECT_NEAR(get_mag_strength_tesla(50, 180) * 1e9, 48320, 145 + 483);
EXPECT_NEAR(get_mag_strength_tesla(55, -180) * 1e9, 51313, 145 + 513);
EXPECT_NEAR(get_mag_strength_tesla(55, -175) * 1e9, 51175, 145 + 512);
EXPECT_NEAR(get_mag_strength_tesla(55, -170) * 1e9, 51173, 145 + 512);
EXPECT_NEAR(get_mag_strength_tesla(55, -165) * 1e9, 51305, 145 + 513);
EXPECT_NEAR(get_mag_strength_tesla(55, -160) * 1e9, 51566, 145 + 516);
EXPECT_NEAR(get_mag_strength_tesla(55, -155) * 1e9, 51944, 145 + 519);
EXPECT_NEAR(get_mag_strength_tesla(55, -150) * 1e9, 52423, 145 + 524);
EXPECT_NEAR(get_mag_strength_tesla(55, -145) * 1e9, 52982, 145 + 530);
EXPECT_NEAR(get_mag_strength_tesla(55, -140) * 1e9, 53595, 145 + 536);
EXPECT_NEAR(get_mag_strength_tesla(55, -135) * 1e9, 54237, 145 + 542);
EXPECT_NEAR(get_mag_strength_tesla(55, -130) * 1e9, 54883, 145 + 549);
EXPECT_NEAR(get_mag_strength_tesla(55, -125) * 1e9, 55509, 145 + 555);
EXPECT_NEAR(get_mag_strength_tesla(55, -120) * 1e9, 56092, 145 + 561);
EXPECT_NEAR(get_mag_strength_tesla(55, -115) * 1e9, 56612, 145 + 566);
EXPECT_NEAR(get_mag_strength_tesla(55, -110) * 1e9, 57048, 145 + 570);
EXPECT_NEAR(get_mag_strength_tesla(55, -105) * 1e9, 57382, 145 + 574);
EXPECT_NEAR(get_mag_strength_tesla(55, -100) * 1e9, 57596, 145 + 576);
EXPECT_NEAR(get_mag_strength_tesla(55, -95) * 1e9, 57675, 145 + 577);
EXPECT_NEAR(get_mag_strength_tesla(55, -90) * 1e9, 57608, 145 + 576);
EXPECT_NEAR(get_mag_strength_tesla(55, -85) * 1e9, 57391, 145 + 574);
EXPECT_NEAR(get_mag_strength_tesla(55, -80) * 1e9, 57029, 145 + 570);
EXPECT_NEAR(get_mag_strength_tesla(55, -75) * 1e9, 56534, 145 + 565);
EXPECT_NEAR(get_mag_strength_tesla(55, -70) * 1e9, 55930, 145 + 559);
EXPECT_NEAR(get_mag_strength_tesla(55, -65) * 1e9, 55246, 145 + 552);
EXPECT_NEAR(get_mag_strength_tesla(55, -60) * 1e9, 54515, 145 + 545);
EXPECT_NEAR(get_mag_strength_tesla(55, -55) * 1e9, 53771, 145 + 538);
EXPECT_NEAR(get_mag_strength_tesla(55, -50) * 1e9, 53044, 145 + 530);
EXPECT_NEAR(get_mag_strength_tesla(55, -45) * 1e9, 52362, 145 + 524);
EXPECT_NEAR(get_mag_strength_tesla(55, -40) * 1e9, 51744, 145 + 517);
EXPECT_NEAR(get_mag_strength_tesla(55, -35) * 1e9, 51204, 145 + 512);
EXPECT_NEAR(get_mag_strength_tesla(55, -30) * 1e9, 50752, 145 + 508);
EXPECT_NEAR(get_mag_strength_tesla(55, -25) * 1e9, 50394, 145 + 504);
EXPECT_NEAR(get_mag_strength_tesla(55, -20) * 1e9, 50133, 145 + 501);
EXPECT_NEAR(get_mag_strength_tesla(55, -15) * 1e9, 49967, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, -10) * 1e9, 49893, 145 + 499);
EXPECT_NEAR(get_mag_strength_tesla(55, -5) * 1e9, 49906, 145 + 499);
EXPECT_NEAR(get_mag_strength_tesla(55, 0) * 1e9, 49996, 145 + 500);
EXPECT_NEAR(get_mag_strength_tesla(55, 5) * 1e9, 50157, 145 + 502);
EXPECT_NEAR(get_mag_strength_tesla(55, 10) * 1e9, 50381, 145 + 504);
EXPECT_NEAR(get_mag_strength_tesla(55, 15) * 1e9, 50666, 145 + 507);
EXPECT_NEAR(get_mag_strength_tesla(55, 20) * 1e9, 51014, 145 + 510);
EXPECT_NEAR(get_mag_strength_tesla(55, 25) * 1e9, 51428, 145 + 514);
EXPECT_NEAR(get_mag_strength_tesla(55, 30) * 1e9, 51916, 145 + 519);
EXPECT_NEAR(get_mag_strength_tesla(55, 35) * 1e9, 52482, 145 + 525);
EXPECT_NEAR(get_mag_strength_tesla(55, 40) * 1e9, 53130, 145 + 531);
EXPECT_NEAR(get_mag_strength_tesla(55, 45) * 1e9, 53859, 145 + 539);
EXPECT_NEAR(get_mag_strength_tesla(55, 50) * 1e9, 54662, 145 + 547);
EXPECT_NEAR(get_mag_strength_tesla(55, 55) * 1e9, 55525, 145 + 555);
EXPECT_NEAR(get_mag_strength_tesla(55, 60) * 1e9, 56428, 145 + 564);
EXPECT_NEAR(get_mag_strength_tesla(55, 65) * 1e9, 57346, 145 + 573);
EXPECT_NEAR(get_mag_strength_tesla(55, 70) * 1e9, 58245, 145 + 582);
EXPECT_NEAR(get_mag_strength_tesla(55, 75) * 1e9, 59091, 145 + 591);
EXPECT_NEAR(get_mag_strength_tesla(55, 80) * 1e9, 59848, 145 + 598);
EXPECT_NEAR(get_mag_strength_tesla(55, 85) * 1e9, 60482, 145 + 605);
EXPECT_NEAR(get_mag_strength_tesla(55, 90) * 1e9, 60963, 145 + 610);
EXPECT_NEAR(get_mag_strength_tesla(55, 95) * 1e9, 61268, 145 + 613);
EXPECT_NEAR(get_mag_strength_tesla(55, 100) * 1e9, 61382, 145 + 614);
EXPECT_NEAR(get_mag_strength_tesla(55, 105) * 1e9, 61296, 145 + 613);
EXPECT_NEAR(get_mag_strength_tesla(55, 110) * 1e9, 61013, 145 + 610);
EXPECT_NEAR(get_mag_strength_tesla(55, 115) * 1e9, 60546, 145 + 605);
EXPECT_NEAR(get_mag_strength_tesla(55, 120) * 1e9, 59915, 145 + 599);
EXPECT_NEAR(get_mag_strength_tesla(55, 125) * 1e9, 59151, 145 + 592);
EXPECT_NEAR(get_mag_strength_tesla(55, 130) * 1e9, 58290, 145 + 583);
EXPECT_NEAR(get_mag_strength_tesla(55, 135) * 1e9, 57371, 145 + 574);
EXPECT_NEAR(get_mag_strength_tesla(55, 140) * 1e9, 56433, 145 + 564);
EXPECT_NEAR(get_mag_strength_tesla(55, 145) * 1e9, 55512, 145 + 555);
EXPECT_NEAR(get_mag_strength_tesla(55, 150) * 1e9, 54636, 145 + 546);
EXPECT_NEAR(get_mag_strength_tesla(55, 155) * 1e9, 53830, 145 + 538);
EXPECT_NEAR(get_mag_strength_tesla(55, 160) * 1e9, 53110, 145 + 531);
EXPECT_NEAR(get_mag_strength_tesla(55, 165) * 1e9, 52488, 145 + 525);
EXPECT_NEAR(get_mag_strength_tesla(55, 170) * 1e9, 51976, 145 + 520);
EXPECT_NEAR(get_mag_strength_tesla(55, 175) * 1e9, 51582, 145 + 516);
EXPECT_NEAR(get_mag_strength_tesla(55, 180) * 1e9, 51313, 145 + 513);
EXPECT_NEAR(get_mag_strength_tesla(60, -180) * 1e9, 53927, 145 + 539);
EXPECT_NEAR(get_mag_strength_tesla(60, -175) * 1e9, 53791, 145 + 538);
EXPECT_NEAR(get_mag_strength_tesla(60, -170) * 1e9, 53758, 145 + 538);
EXPECT_NEAR(get_mag_strength_tesla(60, -165) * 1e9, 53828, 145 + 538);
EXPECT_NEAR(get_mag_strength_tesla(60, -160) * 1e9, 53996, 145 + 540);
EXPECT_NEAR(get_mag_strength_tesla(60, -155) * 1e9, 54255, 145 + 543);
EXPECT_NEAR(get_mag_strength_tesla(60, -150) * 1e9, 54591, 145 + 546);
EXPECT_NEAR(get_mag_strength_tesla(60, -145) * 1e9, 54988, 145 + 550);
EXPECT_NEAR(get_mag_strength_tesla(60, -140) * 1e9, 55430, 145 + 554);
EXPECT_NEAR(get_mag_strength_tesla(60, -135) * 1e9, 55896, 145 + 559);
EXPECT_NEAR(get_mag_strength_tesla(60, -130) * 1e9, 56365, 145 + 564);
EXPECT_NEAR(get_mag_strength_tesla(60, -125) * 1e9, 56820, 145 + 568);
EXPECT_NEAR(get_mag_strength_tesla(60, -120) * 1e9, 57241, 145 + 572);
EXPECT_NEAR(get_mag_strength_tesla(60, -115) * 1e9, 57612, 145 + 576);
EXPECT_NEAR(get_mag_strength_tesla(60, -110) * 1e9, 57916, 145 + 579);
EXPECT_NEAR(get_mag_strength_tesla(60, -105) * 1e9, 58139, 145 + 581);
EXPECT_NEAR(get_mag_strength_tesla(60, -100) * 1e9, 58266, 145 + 583);
EXPECT_NEAR(get_mag_strength_tesla(60, -95) * 1e9, 58288, 145 + 583);
EXPECT_NEAR(get_mag_strength_tesla(60, -90) * 1e9, 58198, 145 + 582);
EXPECT_NEAR(get_mag_strength_tesla(60, -85) * 1e9, 57993, 145 + 580);
EXPECT_NEAR(get_mag_strength_tesla(60, -80) * 1e9, 57676, 145 + 577);
EXPECT_NEAR(get_mag_strength_tesla(60, -75) * 1e9, 57258, 145 + 573);
EXPECT_NEAR(get_mag_strength_tesla(60, -70) * 1e9, 56752, 145 + 568);
EXPECT_NEAR(get_mag_strength_tesla(60, -65) * 1e9, 56180, 145 + 562);
EXPECT_NEAR(get_mag_strength_tesla(60, -60) * 1e9, 55564, 145 + 556);
EXPECT_NEAR(get_mag_strength_tesla(60, -55) * 1e9, 54928, 145 + 549);
EXPECT_NEAR(get_mag_strength_tesla(60, -50) * 1e9, 54297, 145 + 543);
EXPECT_NEAR(get_mag_strength_tesla(60, -45) * 1e9, 53690, 145 + 537);
EXPECT_NEAR(get_mag_strength_tesla(60, -40) * 1e9, 53125, 145 + 531);
EXPECT_NEAR(get_mag_strength_tesla(60, -35) * 1e9, 52617, 145 + 526);
EXPECT_NEAR(get_mag_strength_tesla(60, -30) * 1e9, 52177, 145 + 522);
EXPECT_NEAR(get_mag_strength_tesla(60, -25) * 1e9, 51812, 145 + 518);
EXPECT_NEAR(get_mag_strength_tesla(60, -20) * 1e9, 51526, 145 + 515);
EXPECT_NEAR(get_mag_strength_tesla(60, -15) * 1e9, 51322, 145 + 513);
EXPECT_NEAR(get_mag_strength_tesla(60, -10) * 1e9, 51200, 145 + 512);
EXPECT_NEAR(get_mag_strength_tesla(60, -5) * 1e9, 51158, 145 + 512);
EXPECT_NEAR(get_mag_strength_tesla(60, 0) * 1e9, 51192, 145 + 512);
EXPECT_NEAR(get_mag_strength_tesla(60, 5) * 1e9, 51300, 145 + 513);
EXPECT_NEAR(get_mag_strength_tesla(60, 10) * 1e9, 51480, 145 + 515);
EXPECT_NEAR(get_mag_strength_tesla(60, 15) * 1e9, 51731, 145 + 517);
EXPECT_NEAR(get_mag_strength_tesla(60, 20) * 1e9, 52054, 145 + 521);
EXPECT_NEAR(get_mag_strength_tesla(60, 25) * 1e9, 52452, 145 + 525);
EXPECT_NEAR(get_mag_strength_tesla(60, 30) * 1e9, 52927, 145 + 529);
EXPECT_NEAR(get_mag_strength_tesla(60, 35) * 1e9, 53482, 145 + 535);
EXPECT_NEAR(get_mag_strength_tesla(60, 40) * 1e9, 54115, 145 + 541);
EXPECT_NEAR(get_mag_strength_tesla(60, 45) * 1e9, 54822, 145 + 548);
EXPECT_NEAR(get_mag_strength_tesla(60, 50) * 1e9, 55592, 145 + 556);
EXPECT_NEAR(get_mag_strength_tesla(60, 55) * 1e9, 56411, 145 + 564);
EXPECT_NEAR(get_mag_strength_tesla(60, 60) * 1e9, 57259, 145 + 573);
EXPECT_NEAR(get_mag_strength_tesla(60, 65) * 1e9, 58110, 145 + 581);
EXPECT_NEAR(get_mag_strength_tesla(60, 70) * 1e9, 58937, 145 + 589);
EXPECT_NEAR(get_mag_strength_tesla(60, 75) * 1e9, 59709, 145 + 597);
EXPECT_NEAR(get_mag_strength_tesla(60, 80) * 1e9, 60397, 145 + 604);
EXPECT_NEAR(get_mag_strength_tesla(60, 85) * 1e9, 60974, 145 + 610);
EXPECT_NEAR(get_mag_strength_tesla(60, 90) * 1e9, 61417, 145 + 614);
EXPECT_NEAR(get_mag_strength_tesla(60, 95) * 1e9, 61707, 145 + 617);
EXPECT_NEAR(get_mag_strength_tesla(60, 100) * 1e9, 61834, 145 + 618);
EXPECT_NEAR(get_mag_strength_tesla(60, 105) * 1e9, 61796, 145 + 618);
EXPECT_NEAR(get_mag_strength_tesla(60, 110) * 1e9, 61596, 145 + 616);
EXPECT_NEAR(get_mag_strength_tesla(60, 115) * 1e9, 61246, 145 + 612);
EXPECT_NEAR(get_mag_strength_tesla(60, 120) * 1e9, 60766, 145 + 608);
EXPECT_NEAR(get_mag_strength_tesla(60, 125) * 1e9, 60179, 145 + 602);
EXPECT_NEAR(get_mag_strength_tesla(60, 130) * 1e9, 59515, 145 + 595);
EXPECT_NEAR(get_mag_strength_tesla(60, 135) * 1e9, 58802, 145 + 588);
EXPECT_NEAR(get_mag_strength_tesla(60, 140) * 1e9, 58070, 145 + 581);
EXPECT_NEAR(get_mag_strength_tesla(60, 145) * 1e9, 57346, 145 + 573);
EXPECT_NEAR(get_mag_strength_tesla(60, 150) * 1e9, 56653, 145 + 567);
EXPECT_NEAR(get_mag_strength_tesla(60, 155) * 1e9, 56009, 145 + 560);
EXPECT_NEAR(get_mag_strength_tesla(60, 160) * 1e9, 55428, 145 + 554);
EXPECT_NEAR(get_mag_strength_tesla(60, 165) * 1e9, 54921, 145 + 549);
EXPECT_NEAR(get_mag_strength_tesla(60, 170) * 1e9, 54497, 145 + 545);
EXPECT_NEAR(get_mag_strength_tesla(60, 175) * 1e9, 54164, 145 + 542);
EXPECT_NEAR(get_mag_strength_tesla(60, 180) * 1e9, 53927, 145 + 539);
}