Skip to content
Open
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 14 additions & 18 deletions tests/_test_utils/test_coordinate.py
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
tests._test_utils.test_coordinate
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

This module provides pytest functions to tests mslib.utils.coordinate
This module provides pytest functions to test mslib.utils.coordinate.

This file is part of MSS.

Expand All @@ -24,6 +24,7 @@
See the License for the specific language governing permissions and
limitations under the License.
"""

import logging
import datetime

Expand All @@ -39,13 +40,13 @@

class TestGetDistance:
"""
tests for distance based calculations
Tests for distance-based calculations.
"""
# we don't test the utils method here, may be that method should me refactored off

def test_get_distance(self):
coordinates_distance = [(50.355136, 7.566077, 50.353968, 4.577915, 212),
(-5.135943, -42.792442, 4.606085, 120.028077, 18130)]
coordinates_distance = [
(50.355136, 7.566077, 50.353968, 4.577915, 212),
(-5.135943, -42.792442, 4.606085, 120.028077, 18130)
]
for lat0, lon0, lat1, lon1, distance in coordinates_distance:
assert int(coordinate.get_distance(lat0, lon0, lat1, lon1)) == distance

Expand All @@ -67,9 +68,8 @@ def test_get_projection_params(self):

class TestAngles:
"""
tests about angles
Tests for angle-related calculations.
"""

def test_normalize_angle(self):
assert coordinate.fix_angle(0) == 0
assert coordinate.fix_angle(180) == 180
Expand All @@ -80,10 +80,12 @@ def test_normalize_angle(self):
assert coordinate.fix_angle(420) == 60

def test_rotate_point(self):
assert coordinate.rotate_point([0, 0], 0) == (0.0, 0.0)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I do not see why the old tests should be removed. They provide coverage for corner cases and have no issues with decimal points. The new test is a good addition, though.

assert coordinate.rotate_point([0, 0], 180) == (0.0, 0.0)
assert coordinate.rotate_point([1, 0], 0) == (1.0, 0.0)
assert coordinate.rotate_point([100, 90], 90) == (-90, 100)
point = [0.0, 2.5]
angle = 45
# on github we need more decimal places
rotated_point = (-1.767767, 1.767767)

assert coordinate.rotate_point(point, angle) == pytest.approx(rotated_point, rel=1e-6, abs=1e-6)


class TestLatLonPoints:
Expand Down Expand Up @@ -112,12 +114,6 @@ def test_linear(self):
assert len(lons) == 3
assert all(lons == [0, 5, 10])

lats, lons = coordinate.latlon_points(ref_lats[0], ref_lons[0], ref_lats[1], ref_lons[1],
numpoints=3, connection="linear")
assert len(lats) == 3
assert len(lons) == 3
assert all(lons == [0, 5, 10])

def test_greatcircle(self):
ref_lats = [0, 10]
ref_lons = [0, 0]
Expand Down
Loading