Files
pyGUI/tests/test_rbf_heatmap.py
T

30 lines
1.0 KiB
Python

"""Tests for src/pygui/backend/rbf_heatmap.py."""
import numpy as np
from pygui.backend.rbf_heatmap import interpolate_field, BACKEND
def test_field_shape_and_interpolates_at_sites():
xs = np.array([0.0, 10.0, -10.0, 0.0])
ys = np.array([10.0, -10.0, -10.0, 0.0])
vs = np.array([149.0, 150.0, 148.0, 149.5])
field = interpolate_field(xs, ys, vs, width=64, height=64,
extent=(-15, 15, -15, 15))
assert field.shape == (64, 64)
assert np.isfinite(field).all()
assert field.min() <= 150.0 and field.max() >= 148.0
def test_round_clip_produces_nans_outside_circle():
xs = np.array([0.0, 5.0, -5.0])
ys = np.array([5.0, -5.0, 0.0])
vs = np.array([149.0, 150.0, 148.0])
field = interpolate_field(xs, ys, vs, width=64, height=64,
extent=(-15, 15, -15, 15), round_clip=True)
assert np.isnan(field).any()
# center pixel must be finite
assert np.isfinite(field[32, 32])
def test_backend_reported():
assert BACKEND in ("cupy", "numpy")