Removed the subdir.
This commit is contained in:
61
pyrate/tests/sense/vision/test_image_line.py
Normal file
61
pyrate/tests/sense/vision/test_image_line.py
Normal file
@ -0,0 +1,61 @@
|
||||
"""This test suite runs additional tests for ``ImageLine`` that are not covered in ``TestObstacleLocator``"""
|
||||
|
||||
# Testing
|
||||
from unittest import TestCase
|
||||
|
||||
# Hypothesis
|
||||
from hypothesis import given
|
||||
from hypothesis.strategies import composite
|
||||
from hypothesis.strategies import floats
|
||||
from hypothesis.strategies import integers
|
||||
from hypothesis.strategies import just
|
||||
from hypothesis.strategies import tuples
|
||||
|
||||
# Scientific
|
||||
from numpy import pi
|
||||
|
||||
# Module under test
|
||||
from pyrate.sense.vision.image_line import ImageLine
|
||||
|
||||
|
||||
@composite
|
||||
def image_dimensions_and_points(draw):
|
||||
"""Generate image dimensions and points left and right on that image"""
|
||||
|
||||
image_dims = draw(tuples(integers(1, 10000), integers(1, 10000)))
|
||||
point_a = draw(tuples(just(0), integers(0, image_dims[1] - 1)))
|
||||
point_b = draw(tuples(just(image_dims[0] - 1), integers(0, image_dims[1] - 1)))
|
||||
|
||||
return image_dims, point_a, point_b
|
||||
|
||||
|
||||
class TestImageLine(TestCase):
|
||||
|
||||
"""Tests the remaining methods of ``ImageLine`` not covered by testing ``ObstacleLocator``"""
|
||||
|
||||
@given(floats(1, 10000), floats(1, 10000), floats(-5000, 5000), floats(0, 2 * pi))
|
||||
def test_from_height_angle(self, image_width, image_height, height, angle):
|
||||
"""Test that creates (from height and angle) and tests ``ImageLine``s"""
|
||||
|
||||
image_line = ImageLine.from_height_angle((image_width, image_height), height, angle)
|
||||
|
||||
self.assertTrue(image_line.image_width == image_width and image_line.image_height == image_height)
|
||||
self.assertTrue(image_line.angle == angle)
|
||||
self.assertAlmostEqual(image_line.height, int(height + image_height / 2))
|
||||
|
||||
end_points = image_line.end_points
|
||||
self.assertTrue(
|
||||
end_points[0][0] == 0 and end_points[1][0] == image_width,
|
||||
msg=f"x1={end_points[0][0]} x2={end_points[1][0]}",
|
||||
)
|
||||
|
||||
@given(test_input=image_dimensions_and_points())
|
||||
def test_indices(self, test_input):
|
||||
"""Test that tests the ``indices`` property of ``ImageLine``"""
|
||||
|
||||
image_dims, point1, point2 = test_input
|
||||
|
||||
image_line = ImageLine.from_points(image_dims, (point1, point2))
|
||||
x_coords, y_coords = image_line.indices
|
||||
self.assertTrue(((50 <= x_coords) <= 50).all())
|
||||
self.assertTrue(((0 <= y_coords) <= 200).all())
|
Reference in New Issue
Block a user