Lines Matching refs:tol

82 def approx_equal(x, y, tol=1e-12, rel=1e-7):
83 """approx_equal(x, y [, tol [, rel]]) => True|False
90 an absolute error tol or a relative error rel, whichever is bigger.
92 If given, both tol and rel must be finite, non-negative numbers. If not
93 given, default values are tol=1e-12 and rel=1e-7.
95 >>> approx_equal(1.2589, 1.2587, tol=0.0003, rel=0)
97 >>> approx_equal(1.2589, 1.2587, tol=0.0001, rel=0)
101 tol, x and y are considered approximately equal.
116 if tol < 0 or rel < 0:
131 allowed_error = max(tol, rel*max(abs(x), abs(y)))
153 >>> approx_equal(12.345, 12.346, tol=1e-3)
155 >>> approx_equal(12.345e6, 12.346e6, tol=1e-3) # tol is too small.
172 >>> approx_equal(12.345e6, 12.346e6, tol=1e-3, rel=1e-4)
209 tol = rel = 0
212 self, first, second, tol=None, rel=None, msg=None
217 within ``tol``, an absolute error, or ``rel``, a relative error.
219 If either ``tol`` or ``rel`` are None or not given, they default to
229 ... self.assertApproxEqual(y, 1.0, tol=1e-15)
242 if tol is None:
243 tol = self.tol
253 check(first, second, tol, rel, msg)
255 def _check_approx_seq(self, first, second, tol, rel, msg):
264 self._check_approx_num(a, e, tol, rel, msg, i)
266 def _check_approx_num(self, first, second, tol, rel, msg, idx=None):
267 if approx_equal(first, second, tol, rel):
271 standardMsg = self._make_std_err_msg(first, second, tol, rel, idx)
276 def _make_std_err_msg(first, second, tol, rel, idx):
281 ' values differ by more than tol=%r and rel=%r\n'
290 return template % (first, second, tol, rel, abs_err, rel_err)
335 self.assertTrue(approx_equal(a, b, tol=0, rel=rel))
336 self.assertTrue(approx_equal(b, a, tol=0, rel=rel))
348 # 1) actual error <= tol, <= rel
349 self.do_symmetry_test(x, y, tol=delta, rel=r)
350 self.do_symmetry_test(x, y, tol=delta+1, rel=2*r)
351 # 2) actual error > tol, > rel
352 self.do_symmetry_test(x, y, tol=delta-1, rel=r/2)
353 # 3) actual error <= tol, > rel
354 self.do_symmetry_test(x, y, tol=delta, rel=r/2)
355 # 4) actual error > tol, <= rel
356 self.do_symmetry_test(x, y, tol=delta-1, rel=r)
357 self.do_symmetry_test(x, y, tol=delta-1, rel=2*r)
359 self.do_symmetry_test(x, x, tol=0, rel=0)
360 self.do_symmetry_test(x, y, tol=0, rel=0)
362 def do_symmetry_test(self, a, b, tol, rel):
364 flag1 = approx_equal(a, b, tol, rel)
365 flag2 = approx_equal(b, a, tol, rel)
366 self.assertEqual(flag1, flag2, template.format((a, b, tol, rel)))
375 def do_exactly_equal_test(self, x, tol, rel):
376 result = approx_equal(x, x, tol=tol, rel=rel)
378 result = approx_equal(-x, -x, tol=tol, rel=rel)
426 # Test that equal values are equal when both tol and rel are given.
439 result = approx_equal(a, a+1, tol=0, rel=0)
474 self.assertTrue(approx_equal(x, y, tol=2*delta, rel=0), msg)
475 self.assertFalse(approx_equal(x, y, tol=delta/2, rel=0), msg)
507 self.assertTrue(approx_equal(1e-5, -1e-5, tol=1e-4, rel=0))
515 self.assertTrue(approx_equal(x, y, tol=0, rel=2*delta), msg)
516 self.assertFalse(approx_equal(x, y, tol=0, rel=delta/2), msg)
520 self.assertTrue(approx_equal(64, 47, tol=0, rel=0.36))
521 self.assertTrue(approx_equal(64, 47, tol=0, rel=0.37))
523 self.assertTrue(approx_equal(449, 512, tol=0, rel=0.125))
524 self.assertTrue(approx_equal(448, 512, tol=0, rel=0.125))
525 self.assertFalse(approx_equal(447, 512, tol=0, rel=0.125))
556 def do_check_both(self, a, b, tol, rel, tol_flag, rel_flag):
558 check(approx_equal(a, b, tol=tol, rel=0))
560 check(approx_equal(a, b, tol=0, rel=rel))
562 check(approx_equal(a, b, tol=tol, rel=rel))
604 self.assertTrue(approx_equal(nzero, 0.0, tol=0.1, rel=0.1))
608 self.assertTrue(approx_equal(nzero, Decimal(0), tol=0.1, rel=0.1))
615 # Test negative tol raises.
654 def generate_substrings(self, first, second, tol, rel, idx):
658 'tol=%r' % tol,
1716 self.assertApproxEqual(self.func(data, 2), 20.66666667, tol=1e-8)
1722 self.assertApproxEqual(self.func(data, 5), 19.16666667, tol=1e-8)
1726 self.assertApproxEqual(self.func(data), 3.83333333, tol=1e-8)
1793 self.assertApproxEqual(self.func(data, 0.25), 2.83333333, tol=1e-8)
1981 self.assertApproxEqual(result, 0.0, tol=5e-17)
1989 # some tolerance away from "no change at all" by setting tol and/or rel