#!/usr/bin/env python
import unittest
import pygsl.diff
lone = lambda x: x**3
ltwo = lambda x, y: x**3
lthree = lambda x, y: x**3 * y
lfour = lambda x, y: (x**3, y)
def lfive(x, args):
return x**3, 1
class _TestDiff(unittest.TestCase):
func = None
def test1(self):
self.failUnlessRaises(TypeError, self.func, lone, 1)
def test2(self):
tmp = self.func(ltwo, 1)
test = 0
try:
assert((tmp[0] - 3) < tmp[1]*5)
test = 1
finally:
if test == 0:
print "I recieved %s. But it should be (3, ??)" % (tmp,)
def test3(self):
tmp = self.func(lthree, 1, 2)
test = 0
try:
assert((tmp[0] - 3*2) < tmp[1]*5)
test = 1
finally:
if test == 0:
print "I recieved %s. But it should be (3, ??)" % (tmp,)
def test4(self):
"""
Check if it flags an error if not a float is returned
Why is it put to float, and not the number of arguments are checked?XF
"""
self.failUnlessRaises(TypeError, self.func, lfour, 1)
def test5(self):
"""
Check if it flags an error if more than a float is returned
"""
self.failUnlessRaises(TypeError, self.func, lfour, 1)
class TestCentral(_TestDiff):
func = pygsl.diff.central
class TestForward(_TestDiff):
func = pygsl.diff.forward
class TestBackward(_TestDiff):
func = pygsl.diff.backward
del _TestDiff
if __name__ == '__main__':
unittest.main()
print pygsl.diff.__doc__
syntax highlighted by Code2HTML, v. 0.9.1