MCPcopy Index your code
hub / github.com/RustPython/RustPython / powtest

Method powtest

Lib/test/test_pow.py:6–57  ·  view source on GitHub ↗
(self, type)

Source from the content-addressed store, hash-verified

4class PowTest(unittest.TestCase):
5
6 def powtest(self, type):
7 if type != float:
8 for i in range(-1000, 1000):
9 self.assertEqual(pow(type(i), 0), 1)
10 self.assertEqual(pow(type(i), 1), type(i))
11 self.assertEqual(pow(type(0), 1), type(0))
12 self.assertEqual(pow(type(1), 1), type(1))
13
14 for i in range(-100, 100):
15 self.assertEqual(pow(type(i), 3), i*i*i)
16
17 pow2 = 1
18 for i in range(0, 31):
19 self.assertEqual(pow(2, i), pow2)
20 if i != 30 : pow2 = pow2*2
21
22 for i in list(range(-10, 0)) + list(range(1, 10)):
23 ii = type(i)
24 inv = pow(ii, -1) # inverse of ii
25 for jj in range(-10, 0):
26 self.assertAlmostEqual(pow(ii, jj), pow(inv, -jj))
27
28 for othertype in int, float:
29 for i in range(1, 100):
30 zero = type(0)
31 exp = -othertype(i/10.0)
32 if exp == 0:
33 continue
34 self.assertRaises(ZeroDivisionError, pow, zero, exp)
35
36 il, ih = -20, 20
37 jl, jh = -5, 5
38 kl, kh = -10, 10
39 asseq = self.assertEqual
40 if type == float:
41 il = 1
42 asseq = self.assertAlmostEqual
43 elif type == int:
44 jl = 0
45 elif type == int:
46 jl, jh = 0, 15
47 for i in range(il, ih+1):
48 for j in range(jl, jh+1):
49 for k in range(kl, kh+1):
50 if k != 0:
51 if type == float or j < 0:
52 self.assertRaises(TypeError, pow, type(i), j, k)
53 continue
54 asseq(
55 pow(type(i),j,k),
56 pow(type(i),j)% type(k)
57 )
58
59 def test_powint(self):
60 self.powtest(int)

Callers 2

test_powintMethod · 0.95
test_powfloatMethod · 0.95

Calls 5

listClass · 0.85
powFunction · 0.50
assertEqualMethod · 0.45
assertAlmostEqualMethod · 0.45
assertRaisesMethod · 0.45

Tested by

no test coverage detected