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

44 lines
1.4 KiB
Python

from numpy import array
from skyfield.searchlib import _choose_brackets, _identify_maxima
def test_brackets_of_simple_peak():
y = array((10, 11, 12, 11, 10))
left, right = _choose_brackets(y)
assert list(left) == [1, 2]
assert list(right) == [2, 3]
def test_brackets_of_small_plateau():
y = array((10, 11, 12, 12, 11, 10))
left, right = _choose_brackets(y)
assert list(left) == [1, 2, 3]
assert list(right) == [2, 3, 4]
def test_brackets_of_wide_plateau():
y = array((10, 11, 12, 12, 12, 12, 12, 11, 10))
left, right = _choose_brackets(y)
assert list(left) == [1, 2, 5, 6]
assert list(right) == [2, 3, 6, 7]
def test_simple_maxima():
x = array((2451545.0, 2451546.0, 2451547.0))
y = array((11, 12, 11))
x, y = _identify_maxima(x, y)
assert list(x) == [2451546.0]
assert list(y) == [12]
def test_maxima_of_small_plateau():
x = array((2451545.0, 2451546.0, 2451547.0, 2451548.0))
y = array((11, 12, 12, 11))
x, y = _identify_maxima(x, y)
assert list(x) == [2451546.5]
assert list(y) == [12]
def test_both_kinds_of_maxima_at_once():
# We put what could be maxima at each end, to make sure they are not
# detected as when we can't confirm them.
y = array((12, 11, 12, 12, 11, 13, 11, 12, 12))
x = 2451545.0 + array(range(len(y)))
x, y = _identify_maxima(x, y)
assert list(x) == [2451547.5, 2451550.0]
assert list(y) == [12, 13]