mirror of
https://github.com/pim-n/pg-rad
synced 2026-03-10 19:48:12 +01:00
45 lines
963 B
Python
45 lines
963 B
Python
import numpy as np
|
|
import pytest
|
|
|
|
from pg_rad.objects import PointSource
|
|
from pg_rad.isotopes import CS137
|
|
|
|
|
|
@pytest.fixture
|
|
def test_sources():
|
|
iso = CS137()
|
|
pos_a = np.random.rand(3)
|
|
pos_b = np.random.rand(3)
|
|
|
|
a = PointSource(pos=pos_a, activity=None, isotope=iso)
|
|
b = PointSource(pos=pos_b, activity=None, isotope=iso)
|
|
|
|
return pos_a, pos_b, a, b
|
|
|
|
|
|
def test_if_distances_equal(test_sources):
|
|
"""
|
|
Verify whether distance from PointSource A to 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 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)
|