def test_trig(self): z = interval[-10, 10].newton(lambda x: imath.cospi(x / 3) - 0.5, lambda x: -imath.pi * imath.sinpi(x / 3) / 3) w = interval(-7, -5, -1, 1, 5, 7) assert w in z assert max(helpers.ulpwidth(z)) == 4
def test_width(self): self.assertEqual(helpers.ulpwidth(interval[3]**-1), [1]) self.assertEqual(helpers.ulpwidth(interval([9007199254740991 * 2.0 ** -51, 4503599627370496 * 2.0 ** -50], [9007199254740991 * 2.0 ** -49, 16], [-16, -9007199254740991 * 2.0 ** -49], )),[1, 1, 1]) self.assertEqual(helpers.ulpwidth(interval([5249383869325653 * 2.0 ** -51, 5249383869325655 * 2.0 ** -51])),[2]) self.assertEqual(helpers.ulpwidth(interval[123.34]), [0]) self.assertEqual(helpers.ulpwidth(interval[fpu.infinity]), [0]) self.assertEqual(helpers.ulpwidth(interval[2, fpu.infinity]), [fpu.infinity])
def test_width(self): assert helpers.ulpwidth(interval[3] ** -1) == [1] assert [1, 1, 1] == helpers.ulpwidth(interval( [9007199254740991 * 2.0 ** -51, 4503599627370496 * 2.0 ** -50], [9007199254740991 * 2.0 ** -49, 16], [-16, -9007199254740991 * 2.0 ** -49])) assert helpers.ulpwidth(interval([5249383869325653 * 2.0 ** -51, 5249383869325655 * 2.0 ** -51])) == [2] assert helpers.ulpwidth(interval[123.34]) == [0] assert helpers.ulpwidth(interval[fpu.infinity]) == [0] assert helpers.ulpwidth(interval[2, fpu.infinity]) == [fpu.infinity]
def test_width(self): assert helpers.ulpwidth(interval[3]**-1) == [1] assert [1, 1, 1] == helpers.ulpwidth( interval( [9007199254740991 * 2.0**-51, 4503599627370496 * 2.0**-50], [9007199254740991 * 2.0**-49, 16], [-16, -9007199254740991 * 2.0**-49])) assert helpers.ulpwidth( interval( [5249383869325653 * 2.0**-51, 5249383869325655 * 2.0**-51])) == [2] assert helpers.ulpwidth(interval[123.34]) == [0] assert helpers.ulpwidth(interval[fpu.infinity]) == [0] assert helpers.ulpwidth(interval[2, fpu.infinity]) == [fpu.infinity]
def test_width(self): self.assertEqual(helpers.ulpwidth(interval[3]**-1), [1]) self.assertEqual( helpers.ulpwidth( interval( [9007199254740991 * 2.0**-51, 4503599627370496 * 2.0**-50], [9007199254740991 * 2.0**-49, 16], [-16, -9007199254740991 * 2.0**-49], )), [1, 1, 1]) self.assertEqual( helpers.ulpwidth( interval( [5249383869325653 * 2.0**-51, 5249383869325655 * 2.0**-51])), [2]) self.assertEqual(helpers.ulpwidth(interval[123.34]), [0]) self.assertEqual(helpers.ulpwidth(interval[fpu.infinity]), [0]) self.assertEqual(helpers.ulpwidth(interval[2, fpu.infinity]), [fpu.infinity])
def test_trig(self): z = interval[-10, 10].newton(lambda x: imath.cospi(x/3) - 0.5, lambda x: -imath.pi * imath.sinpi(x/3) / 3) w = interval(-7, -5, -1, 1, 5, 7) assert w in z assert max(helpers.ulpwidth(z)) == 4
def assertApproximate(self, value, reference, maxdelta): self.assertEqual(max(helpers.ulpwidth(value) or [0]), maxdelta) self.assertTrue(value == reference or reference in value)
def within(x, y, d): return y in x and all(c < d for c in helpers.ulpwidth(x))
def assertApproximate(self, value, reference, maxdelta): assert max(helpers.ulpwidth(value) or [0]) == maxdelta assert value == reference or reference in value