#!/usr/bin/env python
import unittest
import pygsl._numobj as Numeric
from pygsl import spline, interpolation, errors
class _test_common(unittest.TestCase):
def setUp(self):
x = Numeric.arange(100)
y = 2*x + 1
self.x = x
self.y1 = y[:80]
self.interp = self._testtype(100)
self.interp.init(x,y)
def test_wrong_init(self):
self.assertRaises(errors.gsl_BadLength, self.interp.init, self.x, self.y1)
def test_name(self):
self.interp.name()
def test_eval_e(self):
v = self.interp.eval_e(10)
assert(v==21)
def test_eval_deriv_e(self):
v = self.interp.eval_deriv_e(10)
assert(v==2)
def test_eval_deriv2_e(self):
v = self.interp.eval_deriv2_e(10)
assert(v==0)
def test_eval_integ_e(self):
v = self.interp.eval_integ_e(0,10)
assert(v==110)
def test_accel_reset(self):
t = self.interp.accel_reset()
assert(t==None)
def test_accel_find(self):
v = self.interp.accel_find(10.5)
assert(v==10)
def test_bsearch(self):
v = self.interp.bsearch(10.5, 3, 30)
assert(v==10)
def test_bsearch_0_false(self):
self.assertRaises(ValueError, self.interp.bsearch, 10.5, 3, 300)
#def test_bsearch_1_false(self):
# self.assertRaises(ValueError, self.interp.bsearch, 10.5, -3, 300)
def test_eval(self):
v = self.interp.eval(10)
assert(v==21)
def test_eval_wrong(self):
v = self.interp.eval(10)
assert(v==21)
def test_eval_deriv(self):
v = self.interp.eval_deriv(10)
assert(v==2)
def test_eval_deriv2(self):
v = self.interp.eval_deriv2(10)
assert(v==0)
def test_eval_integ(self):
v = self.interp.eval_integ(0,10)
assert(v==110)
class _interp_test(_test_common):
def test_min_size(self):
tmp = self.interp.min_size()
assert(tmp>0)
class _spline_test(_test_common):
pass
class interpolation_linear (_interp_test): _testtype = interpolation.linear
class interpolation_polynomial (_interp_test): _testtype = interpolation.polynomial
class interpolation_cspline (_interp_test): _testtype = interpolation.cspline
class interpolation_cspline_periodic (_interp_test): _testtype = interpolation.cspline_periodic
class interpolation_akima (_interp_test): _testtype = interpolation.akima
class interpolation_akima_periodic (_interp_test): _testtype = interpolation.akima_periodic
class spline_linear (_spline_test): _testtype = spline.linear
class spline_polynomial (_spline_test): _testtype = spline.polynomial
class spline_cspline (_spline_test): _testtype = spline.cspline
class spline_cspline_periodic (_spline_test): _testtype = spline.cspline_periodic
class spline_akima (_spline_test): _testtype = spline.akima
class spline_akima_periodic (_spline_test): _testtype = spline.akima_periodic
del _test_common
del _interp_test
del _spline_test
if __name__ == '__main__':
unittest.main()
syntax highlighted by Code2HTML, v. 0.9.1