35 lines
1 KiB
Python
35 lines
1 KiB
Python
import numpy as np
|
|
from skimage.measure import points_in_poly, grid_points_in_poly
|
|
|
|
from skimage._shared.testing import assert_array_equal
|
|
|
|
|
|
class TestNpnpoly():
|
|
def test_square(self):
|
|
v = np.array([[0, 0],
|
|
[0, 1],
|
|
[1, 1],
|
|
[1, 0]])
|
|
assert(points_in_poly([[0.5, 0.5]], v)[0])
|
|
assert(not points_in_poly([[-0.1, 0.1]], v)[0])
|
|
|
|
def test_triangle(self):
|
|
v = np.array([[0, 0],
|
|
[1, 0],
|
|
[0.5, 0.75]])
|
|
assert(points_in_poly([[0.5, 0.7]], v)[0])
|
|
assert(not points_in_poly([[0.5, 0.76]], v)[0])
|
|
assert(not points_in_poly([[0.7, 0.5]], v)[0])
|
|
|
|
def test_type(self):
|
|
assert(points_in_poly([[0, 0]], [[0, 0]]).dtype == np.bool)
|
|
|
|
|
|
def test_grid_points_in_poly():
|
|
v = np.array([[0, 0],
|
|
[5, 0],
|
|
[5, 5]])
|
|
|
|
expected = np.tril(np.ones((5, 5), dtype=bool))
|
|
|
|
assert_array_equal(grid_points_in_poly((5, 5), v), expected)
|