Files
pg-rad/tests/test_sources.py

35 lines
882 B
Python

import numpy as np
import pytest
from pg_rad.sources import PointSource
@pytest.fixture
def test_sources():
pos_a = np.random.rand(3)
pos_b = np.random.rand(3)
a = PointSource(*tuple(pos_a), strength = None)
b = PointSource(*tuple(pos_b), strength = None)
return pos_a, pos_b, a, b
def test_if_distances_equal(test_sources):
"""Verify whether from PointSource A to PointSource B is the same as B to A."""
_, _, a, b = test_sources
assert a.distance_to(b) == b.distance_to(a)
def test_distance_calculation(test_sources):
"""Verify whether distance between two PointSources is calculated correctly."""
pos_a, pos_b, a, b = test_sources
dx = pos_b[0] - pos_a[0]
dy = pos_b[1] - pos_a[1]
dz = pos_b[2] - pos_a[2]
assert np.isclose(
a.distance_to(b),
np.sqrt(dx**2 + dy**2 + dz**2),
rtol = 1e-12)