65 lines
2 KiB
Python
65 lines
2 KiB
Python
from numpy.testing import assert_equal, assert_allclose
|
|
from numpy import pi
|
|
|
|
from ..repetition import Grid, Arbitrary
|
|
|
|
|
|
def test_grid_displacements() -> None:
|
|
# 2x2 grid
|
|
grid = Grid(a_vector=(10, 0), b_vector=(0, 5), a_count=2, b_count=2)
|
|
disps = sorted([tuple(d) for d in grid.displacements])
|
|
assert disps == [(0.0, 0.0), (0.0, 5.0), (10.0, 0.0), (10.0, 5.0)]
|
|
|
|
|
|
def test_grid_1d() -> None:
|
|
grid = Grid(a_vector=(10, 0), a_count=3)
|
|
disps = sorted([tuple(d) for d in grid.displacements])
|
|
assert disps == [(0.0, 0.0), (10.0, 0.0), (20.0, 0.0)]
|
|
|
|
|
|
def test_grid_rotate() -> None:
|
|
grid = Grid(a_vector=(10, 0), a_count=2)
|
|
grid.rotate(pi / 2)
|
|
assert_allclose(grid.a_vector, [0, 10], atol=1e-10)
|
|
|
|
|
|
def test_grid_get_bounds() -> None:
|
|
grid = Grid(a_vector=(10, 0), b_vector=(0, 5), a_count=2, b_count=2)
|
|
bounds = grid.get_bounds()
|
|
assert_equal(bounds, [[0, 0], [10, 5]])
|
|
|
|
|
|
def test_arbitrary_displacements() -> None:
|
|
pts = [[0, 0], [10, 20], [-5, 30]]
|
|
arb = Arbitrary(pts)
|
|
# They should be sorted by displacements.setter
|
|
disps = arb.displacements
|
|
assert len(disps) == 3
|
|
assert any((disps == [0, 0]).all(axis=1))
|
|
assert any((disps == [10, 20]).all(axis=1))
|
|
assert any((disps == [-5, 30]).all(axis=1))
|
|
|
|
|
|
def test_arbitrary_transform() -> None:
|
|
arb = Arbitrary([[10, 0]])
|
|
arb.rotate(pi / 2)
|
|
assert_allclose(arb.displacements, [[0, 10]], atol=1e-10)
|
|
|
|
arb.mirror(0) # Mirror x across y axis? Wait, mirror(axis=0) in repetition.py is:
|
|
# self.displacements[:, 1 - axis] *= -1
|
|
# if axis=0, 1-axis=1, so y *= -1
|
|
assert_allclose(arb.displacements, [[0, -10]], atol=1e-10)
|
|
|
|
|
|
def test_repetition_less_equal_includes_equality() -> None:
|
|
grid_a = Grid(a_vector=(10, 0), a_count=2)
|
|
grid_b = Grid(a_vector=(10, 0), a_count=2)
|
|
assert grid_a == grid_b
|
|
assert grid_a <= grid_b
|
|
assert grid_a >= grid_b
|
|
|
|
arb_a = Arbitrary([[0, 0], [1, 0]])
|
|
arb_b = Arbitrary([[0, 0], [1, 0]])
|
|
assert arb_a == arb_b
|
|
assert arb_a <= arb_b
|
|
assert arb_a >= arb_b
|