MCPcopy Index your code
hub / github.com/python/cpython / test_integers

Method test_integers

Lib/test/test_numeric_tower.py:49–85  ·  view source on GitHub ↗
(self)

Source from the content-addressed store, hash-verified

47 self.check_equal_hash(True, 1)
48
49 def test_integers(self):
50 # check that equal values hash equal
51
52 # exact integers
53 for i in range(-1000, 1000):
54 self.check_equal_hash(i, float(i))
55 self.check_equal_hash(i, D(i))
56 self.check_equal_hash(i, F(i))
57
58 # the current hash is based on reduction modulo 2**n-1 for some
59 # n, so pay special attention to numbers of the form 2**n and 2**n-1.
60 for i in range(100):
61 n = 2**i - 1
62 if n == int(float(n)):
63 self.check_equal_hash(n, float(n))
64 self.check_equal_hash(-n, -float(n))
65 self.check_equal_hash(n, D(n))
66 self.check_equal_hash(n, F(n))
67 self.check_equal_hash(-n, D(-n))
68 self.check_equal_hash(-n, F(-n))
69
70 n = 2**i
71 self.check_equal_hash(n, float(n))
72 self.check_equal_hash(-n, -float(n))
73 self.check_equal_hash(n, D(n))
74 self.check_equal_hash(n, F(n))
75 self.check_equal_hash(-n, D(-n))
76 self.check_equal_hash(-n, F(-n))
77
78 # random values of various sizes
79 for _ in range(1000):
80 e = random.randrange(300)
81 n = random.randrange(-10**e, 10**e)
82 self.check_equal_hash(n, D(n))
83 self.check_equal_hash(n, F(n))
84 if n == int(float(n)):
85 self.check_equal_hash(n, float(n))
86
87 def test_binary_floats(self):
88 # check that floats hash equal to corresponding Fractions and Decimals

Callers

nothing calls this directly

Calls 4

check_equal_hashMethod · 0.95
DClass · 0.90
randrangeMethod · 0.80
FClass · 0.70

Tested by

no test coverage detected