[tests] more test coverage
This commit is contained in:
parent
0afe2297b0
commit
267d161769
8 changed files with 410 additions and 4 deletions
74
meanas/test/test_fdfd_farfield.py
Normal file
74
meanas/test/test_fdfd_farfield.py
Normal file
|
|
@ -0,0 +1,74 @@
|
|||
import numpy
|
||||
import pytest
|
||||
|
||||
from ..fdfd import farfield
|
||||
|
||||
|
||||
NEAR_SHAPE = (2, 3)
|
||||
E_NEAR = [numpy.zeros(NEAR_SHAPE, dtype=complex), numpy.zeros(NEAR_SHAPE, dtype=complex)]
|
||||
H_NEAR = [numpy.zeros(NEAR_SHAPE, dtype=complex), numpy.zeros(NEAR_SHAPE, dtype=complex)]
|
||||
|
||||
|
||||
def test_near_to_farfield_rejects_wrong_length_inputs() -> None:
|
||||
with pytest.raises(Exception, match='E_near must be a length-2 list'):
|
||||
farfield.near_to_farfield(E_NEAR[:1], H_NEAR, dx=0.2, dy=0.3)
|
||||
|
||||
with pytest.raises(Exception, match='H_near must be a length-2 list'):
|
||||
farfield.near_to_farfield(E_NEAR, H_NEAR[:1], dx=0.2, dy=0.3)
|
||||
|
||||
|
||||
def test_near_to_farfield_rejects_mismatched_shapes() -> None:
|
||||
bad_h_near = [H_NEAR[0], numpy.zeros((2, 4), dtype=complex)]
|
||||
|
||||
with pytest.raises(Exception, match='All fields must be the same shape'):
|
||||
farfield.near_to_farfield(E_NEAR, bad_h_near, dx=0.2, dy=0.3)
|
||||
|
||||
|
||||
def test_near_to_farfield_uses_default_and_scalar_padding_shapes() -> None:
|
||||
default_result = farfield.near_to_farfield(E_NEAR, H_NEAR, dx=0.2, dy=0.3)
|
||||
scalar_result = farfield.near_to_farfield(E_NEAR, H_NEAR, dx=0.2, dy=0.3, padded_size=8)
|
||||
|
||||
assert default_result['E'][0].shape == (2, 4)
|
||||
assert default_result['H'][0].shape == (2, 4)
|
||||
assert scalar_result['E'][0].shape == (8, 8)
|
||||
assert scalar_result['H'][0].shape == (8, 8)
|
||||
|
||||
|
||||
def test_far_to_nearfield_rejects_wrong_length_inputs() -> None:
|
||||
ff = farfield.near_to_farfield(E_NEAR, H_NEAR, dx=0.2, dy=0.3, padded_size=8)
|
||||
|
||||
with pytest.raises(Exception, match='E_far must be a length-2 list'):
|
||||
farfield.far_to_nearfield(ff['E'][:1], ff['H'], ff['dkx'], ff['dky'])
|
||||
|
||||
with pytest.raises(Exception, match='H_far must be a length-2 list'):
|
||||
farfield.far_to_nearfield(ff['E'], ff['H'][:1], ff['dkx'], ff['dky'])
|
||||
|
||||
|
||||
def test_far_to_nearfield_rejects_mismatched_shapes() -> None:
|
||||
ff = farfield.near_to_farfield(E_NEAR, H_NEAR, dx=0.2, dy=0.3, padded_size=8)
|
||||
bad_h_far = [ff['H'][0], numpy.zeros((8, 4), dtype=complex)]
|
||||
|
||||
with pytest.raises(Exception, match='All fields must be the same shape'):
|
||||
farfield.far_to_nearfield(ff['E'], bad_h_far, ff['dkx'], ff['dky'])
|
||||
|
||||
|
||||
def test_far_to_nearfield_uses_default_and_scalar_padding_shapes() -> None:
|
||||
ff = farfield.near_to_farfield(E_NEAR, H_NEAR, dx=0.2, dy=0.3, padded_size=8)
|
||||
default_result = farfield.far_to_nearfield(
|
||||
[field.copy() for field in ff['E']],
|
||||
[field.copy() for field in ff['H']],
|
||||
ff['dkx'],
|
||||
ff['dky'],
|
||||
)
|
||||
scalar_result = farfield.far_to_nearfield(
|
||||
[field.copy() for field in ff['E']],
|
||||
[field.copy() for field in ff['H']],
|
||||
ff['dkx'],
|
||||
ff['dky'],
|
||||
padded_size=4,
|
||||
)
|
||||
|
||||
assert default_result['E'][0].shape == (8, 8)
|
||||
assert default_result['H'][0].shape == (8, 8)
|
||||
assert scalar_result['E'][0].shape == (4, 4)
|
||||
assert scalar_result['H'][0].shape == (4, 4)
|
||||
Loading…
Add table
Add a link
Reference in a new issue