def test_failed_case(): from compare_float import feq, flge #--------------------------------------------- beta0 = 0.7636902920551788 beta = 0.76369029205517769 assert feq(beta0, beta, 15) == False assert feq(beta0, beta, 14) == True #--------------------------------------------- a = 0.078539816339744856 b = 0.07853981633974483 assert feq(a, b, 15) == True #--------------------------------------------- a0, b0 = -0.026179938779915091, -0.75938935817214992 a1, a2 = -0.078539816339744856, -0.021707871342270618 b1, b2 = -0.76369029205517769, -0.70685834705770345 assert flge(a1, a0, a2) == True assert flge(b1, b0, b2) == True #--------------------------------------------- a = -0.10700554748256769 b = -0.10700554748256959885 assert feq(a, b, 15) == False assert feq(a, b, 14) == True
def test_feq_float64(): from compare_float import feq a = np.float64('0.123456789012345678') b = np.float64('0.123456789012345901') assert feq(a, b, 15) == True assert feq(a, b, 16) == False a = np.float64('0.00123456789012345678') b = np.float64('0.00123456789012345901') assert feq(a, b, 15) == True assert feq(a, b, 16) == False a = np.float64('0.00000123456789012345678') b = np.float64('0.00000123456789012345901') assert feq(a, b, 15) == True assert feq(a, b, 16) == False a = np.float64('1.23456789012345678') b = np.float64('1.23456789012345901') assert feq(a, b, 15) == True assert feq(a, b, 16) == False a = np.float64('123456.789012345678') b = np.float64('123456.789012345901') assert feq(a, b, 15) == True assert feq(a, b, 16) == False
def test_feq_float32(): from compare_float import feq a = np.float32('0.123456789012345678') b = np.float32('0.123456789012345901') assert feq(a, b, 15) == True assert feq(a, b, 16) == True a = np.float32('0.123456789012') b = np.float32('0.123456789703') assert feq(a, b, 9) == True assert feq(a, b, 10) == True a = np.float32('0.12345678901') b = np.float32('0.12345678123') assert feq(a, b, 8) == True assert feq(a, b, 9) == False # => 32 bit float number has 9 digit. a = np.float32('12345.678901') b = np.float32('12345.678123') assert feq(a, b, 8) == True assert feq(a, b, 9) == False
def gq_integrate_2d_iterate(self, x1, x2, y1, y2, func, qtype='lobatto'): gq_integrate = self.gq_integrate_2d int1 = gq_integrate_2d(x1, x2, y1, y2, func, 5, qtype) int2 = gq_integrate_2d(x1, x2, y1, y2, func, 7, qtype) for p_order in range(10,101,5): int3 = gq_integrate_2d(x1, x2, y1, y2, func, p_order, qtype) if feq(int1,int3) and feq(int2,int3): break else: int1, int2 = int2, int3 return int3, p_order
def test_feq_zero(): from compare_float import feq a = np.float64('0.123456789012345678') b = np.float64('0.000000000000000521') assert feq(b, 0, 15) == True assert feq(b, 0, 16) == True assert feq(b, 0, 17) == False a = np.float64('0.123456789012345678') b = np.float64('0.000006789012345678') assert feq(b, 0, 5) == True assert feq(b, 0, 6) == True assert feq(b, 0, 7) == False assert feq(b, 0, 8) == False a = np.float64('0.123456789012345678') b = np.float64('8') assert feq(b, 0, 5) == False assert feq(8, 0, 5) == False