1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
|
# This code is part of the Biopython distribution and governed by its
# license. Please see the LICENSE file that should have been included
# as part of this package.
"""Tests for lowess module."""
try:
from numpy import array, median
except ImportError:
from Bio import MissingExternalDependencyError
raise MissingExternalDependencyError(
"Install NumPy if you want to use Bio.Statistics.lowess."
) from None
from Bio.Statistics.lowess import lowess
import unittest
class test_lowess(unittest.TestCase):
def test_Precomputed(self):
x = array([0.0, 1.0, 2.0, 3.0, 5.0, 9.0, 11.0])
y = x ** 2
# Precalculated smooth output
ys = array(
[
-2.96219015,
1.72680044,
6.58686813,
11.62986671,
28.18598762,
86.85271581,
116.83893423,
]
)
# Smooth output calculated by the lowess function
output = lowess(x, y, f=2.0 / 3.0, iter=3)
for precomputed, calculated in zip(ys, output):
self.assertAlmostEqual(precomputed, calculated, places=4)
if __name__ == "__main__":
runner = unittest.TextTestRunner(verbosity=2)
unittest.main(testRunner=runner)
|