5 print " Testing 2-argument pow() function..."
6 for i
in range(-1000, 1000):
7 if (pow(type(i
),0)!=1):
8 raise ValueError, 'pow('+str(i
)+',0) != 1'
9 if (pow(type(i
),1)!=type(i
)):
10 raise ValueError, 'pow('+str(i
)+',1) != '+str(i
)
11 if (pow(type(0),1)!=type(0)):
12 raise ValueError, 'pow(0,'+str(i
)+') != 0'
13 if (pow(type(1),1)!=type(1)):
14 raise ValueError, 'pow(1,'+str(i
)+') != 1'
16 for i
in range(-100, 100):
17 if (pow(type(i
),3)!=i
*i
*i
):
18 raise ValueError, 'pow('+str(i
)+',3) != '+str(i
*i
*i
)
23 raise ValueError, 'pow(2,'+str(i
)+') != '+str(pow2
)
24 if (i
!=30): pow2
=pow2
*2
26 print " Testing 3-argument pow() function..."
36 for i
in range(il
, ih
+1):
37 for j
in range(jl
,jh
+1):
38 for k
in range(kl
, kh
+1):
40 if (pow(type(i
),j
,k
)!=pow(type(i
),j
)% type(k
) ):
41 raise ValueError, "pow(" +str(i
)+ "," +str(j
)+ \
42 "," +str(k
)+ ") != pow(" +str(i
)+ "," + \
43 str(j
)+ ") % " +str(k
)
46 print 'Testing integer mode...'
48 print 'Testing long integer mode...'
50 print 'Testing floating point mode...'
53 # Other tests-- not very systematic
55 print 'The number in both columns should match.'
56 print pow(3,3) % 8, pow(3,3,8)
57 print pow(3,3) % -8, pow(3,3,-8)
58 print pow(3,2) % -2, pow(3,2,-2)
59 print pow(-3,3) % 8, pow(-3,3,8)
60 print pow(-3,3) % -8, pow(-3,3,-8)
61 print pow(5,2) % -8, pow(5,2,-8)
64 print pow(3L,3L) % 8, pow(3L,3L,8)
65 print pow(3L,3L) % -8, pow(3L,3L,-8)
66 print pow(3L,2) % -2, pow(3L,2,-2)
67 print pow(-3L,3L) % 8, pow(-3L,3L,8)
68 print pow(-3L,3L) % -8, pow(-3L,3L,-8)
69 print pow(5L,2) % -8, pow(5L,2,-8)
72 print pow(3.0,3.0) % 8, pow(3.0,3.0,8)
73 print pow(3.0,3.0) % -8, pow(3.0,3.0,-8)
74 print pow(3.0,2) % -2, pow(3.0,2,-2)
75 print pow(5.0,2) % -8, pow(5.0,2,-8)
78 for i
in range(-10, 11):
80 for k
in range(-7, 11):
84 if (o
!=n
): print 'Integer mismatch:', i
,j
,k
88 if (o
!=n
): print 'Long mismatch:', i
,j
,k
92 if (o
!=n
): print 'Float mismatch:', i
,j
,k