Files
skyview.astronomiemuseum.de/public/py/vendor_linux/skyfield/tests/test_curves.py
T
2026-07-13 20:00:07 +02:00

33 lines
1.1 KiB
Python

from skyfield.curvelib import Splines, build_spline_given_ends
def test_spline_and_derivative():
parameters = 10, 12, 2.0, 3.0, 5.0, 7.0
x = 8.0, 9.0, 10.0, 11.0, 12.0
expected_values = 3.0, 5.0, 7.0, 10.5, 17.0
expected_slope = 2.5, 1.75, 2.5, 4.75, 8.5
# Does the Spline class work?
curve = Splines(parameters)
assert tuple(curve(x)) == expected_values
assert tuple(curve.derivative(x)) == expected_slope
# Can we rebuild the parameters from its endpoints and slopes?
parameters2 = build_spline_given_ends(
10, curve(10), curve.derivative(10),
12, curve(12), curve.derivative(12))
assert parameters == parameters2
# If we rebuild the spline around different bounds, does it still
# produce the same curve?
for lower, upper in (8,10), (8,9), (21,23):
parameters3 = build_spline_given_ends(
lower, curve(lower), curve.derivative(lower),
upper, curve(upper), curve.derivative(upper))
curve3 = Splines(parameters3)
assert tuple(curve3(x)) == expected_values
assert tuple(curve3.derivative(x)) == expected_slope