Version 2.0.0 release

This commit is contained in:
Tom Keffer
2012-11-04 17:12:55 +00:00
parent d338559cd1
commit 41ccb72cda
14 changed files with 111 additions and 40 deletions

View File

@@ -42,6 +42,12 @@ def scale(fmn, fmx, prescale = (None, None, None), nsteps = 10):
(-2.0, 14.0, 2.0)
>>> print scale(-12.1, -5.3)
(-13.0, -5.0, 1.0)
>>> print scale(10.0, 10.0)
(10.0, 10.1, 0.01)
>>> print "(%.4f, %.4f, %.5f)" % scale(10.0, 10.001)
(10.0000, 10.0010, 0.00010)
>>> print scale(10.0, 10.0+1e-8)
(10.0, 10.1, 0.01)
>>> print scale(0.0, 0.05, (None, None, .1), 10)
(0.0, 1.0, 0.1)
>>> print scale(0.0, 0.21, (None, None, .02))
@@ -62,7 +68,7 @@ def scale(fmn, fmx, prescale = (None, None, None), nsteps = 10):
if fmx < fmn :
raise weeplot.ViolatedPrecondition, "scale() called with max value less than min value"
if fmx == fmn :
if _rel_approx_equal(fmn, fmx) :
if fmn == 0.0 :
fmx = 1.0
else :
@@ -217,7 +223,8 @@ class ScaledDraw(object):
lri = imagebox[1]
lls = scaledbox[0]
urs = scaledbox[1]
if urs[1] == lls[1]:
pass
self.xscale = float(lri[0] - uli[0]) / float(urs[0] - lls[0])
self.yscale = -float(lri[1] - uli[1]) / float(urs[1] - lls[1])
self.xoffset = int(lri[0] - urs[0] * self.xscale + 0.5)
@@ -411,6 +418,27 @@ def get_font_handle(fontpath, *args):
return font
def _rel_approx_equal(x, y, rel=1e-7):
"""Relative test for equality.
Example
>>> _rel_approx_equal(1.23456, 1.23457)
False
>>> _rel_approx_equal(1.2345678, 1.2345679)
True
>>> _rel_approx_equal(0.0, 0.0)
True
>>> _rel_approx_equal(0.0, 0.1)
False
>>> _rel_approx_equal(0.0, 1e-9)
False
>>> _rel_approx_equal(1.0, 1.0+1e-9)
True
>>> _rel_approx_equal(1e8, 1e8+1e-3)
True
"""
return abs(x-y) <= rel*max(abs(x), abs(y))
if __name__ == "__main__":
import doctest