blob: 6a89d2209aba55d43a61b86cea4012fca21f7a42 [file] [log] [blame]
Guido van Rossum3bead091992-01-27 17:00:37 +00001# Python test set -- part 4a, built-in functions a-m
2
3from test_support import *
4
Guido van Rossumeecf0351994-12-30 17:17:46 +00005print '__import__'
6__import__('sys')
7__import__('strop')
8__import__('string')
9try: __import__('spamspam')
10except ImportError: pass
11else: raise TestFailed, "__import__('spamspam') should fail"
12
Guido van Rossum3bead091992-01-27 17:00:37 +000013print 'abs'
14if abs(0) <> 0: raise TestFailed, 'abs(0)'
15if abs(1234) <> 1234: raise TestFailed, 'abs(1234)'
16if abs(-1234) <> 1234: raise TestFailed, 'abs(-1234)'
17#
18if abs(0.0) <> 0.0: raise TestFailed, 'abs(0.0)'
19if abs(3.14) <> 3.14: raise TestFailed, 'abs(3.14)'
20if abs(-3.14) <> 3.14: raise TestFailed, 'abs(-3.14)'
21#
22if abs(0L) <> 0L: raise TestFailed, 'abs(0L)'
23if abs(1234L) <> 1234L: raise TestFailed, 'abs(1234L)'
24if abs(-1234L) <> 1234L: raise TestFailed, 'abs(-1234L)'
25
26print 'apply'
27def f0(*args):
Guido van Rossum27d445f1998-08-10 20:12:34 +000028 if args != (): raise TestFailed, 'f0 called with ' + `args`
Guido van Rossum3bead091992-01-27 17:00:37 +000029def f1(a1):
Guido van Rossum27d445f1998-08-10 20:12:34 +000030 if a1 != 1: raise TestFailed, 'f1 called with ' + `a1`
Guido van Rossum3bead091992-01-27 17:00:37 +000031def f2(a1, a2):
Guido van Rossum27d445f1998-08-10 20:12:34 +000032 if a1 != 1 or a2 != 2:
33 raise TestFailed, 'f2 called with ' + `a1, a2`
Guido van Rossum3bead091992-01-27 17:00:37 +000034def f3(a1, a2, a3):
Guido van Rossum27d445f1998-08-10 20:12:34 +000035 if a1 != 1 or a2 != 2 or a3 != 3:
36 raise TestFailed, 'f3 called with ' + `a1, a2, a3`
Guido van Rossum3bead091992-01-27 17:00:37 +000037apply(f0, ())
38apply(f1, (1,))
39apply(f2, (1, 2))
40apply(f3, (1, 2, 3))
41
Guido van Rossume23b62f1994-11-10 22:25:26 +000042print 'callable'
43if not callable(len):raise TestFailed, 'callable(len)'
44def f(): pass
45if not callable(f): raise TestFailed, 'callable(f)'
46class C:
Guido van Rossum27d445f1998-08-10 20:12:34 +000047 def meth(self): pass
Guido van Rossume23b62f1994-11-10 22:25:26 +000048if not callable(C): raise TestFailed, 'callable(C)'
49x = C()
50if not callable(x.meth): raise TestFailed, 'callable(x.meth)'
51if callable(x): raise TestFailed, 'callable(x)'
52class D(C):
Guido van Rossum27d445f1998-08-10 20:12:34 +000053 def __call__(self): pass
Guido van Rossume23b62f1994-11-10 22:25:26 +000054y = D()
55if not callable(y): raise TestFailed, 'callable(y)'
56
Guido van Rossum3bead091992-01-27 17:00:37 +000057print 'chr'
58if chr(32) <> ' ': raise TestFailed, 'chr(32)'
59if chr(65) <> 'A': raise TestFailed, 'chr(65)'
60if chr(97) <> 'a': raise TestFailed, 'chr(97)'
61
Guido van Rossum85f18201992-11-27 22:53:50 +000062print 'cmp'
63if cmp(-1, 1) <> -1: raise TestFailed, 'cmp(-1, 1)'
64if cmp(1, -1) <> 1: raise TestFailed, 'cmp(1, -1)'
65if cmp(1, 1) <> 0: raise TestFailed, 'cmp(1, 1)'
66
67print 'coerce'
Guido van Rossum35fb82a1993-01-26 13:04:43 +000068if fcmp(coerce(1, 1.1), (1.0, 1.1)): raise TestFailed, 'coerce(1, 1.1)'
Guido van Rossum85f18201992-11-27 22:53:50 +000069if coerce(1, 1L) <> (1L, 1L): raise TestFailed, 'coerce(1, 1L)'
Guido van Rossum35fb82a1993-01-26 13:04:43 +000070if fcmp(coerce(1L, 1.1), (1.0, 1.1)): raise TestFailed, 'coerce(1L, 1.1)'
Guido van Rossum85f18201992-11-27 22:53:50 +000071
Guido van Rossume23b62f1994-11-10 22:25:26 +000072print 'compile'
73compile('print 1\n', '', 'exec')
74
Guido van Rossumdddf7a61997-03-31 17:13:17 +000075print 'complex'
76if complex(1,10) <> 1+10j: raise TestFailed, 'complex(1,10)'
77if complex(1,10L) <> 1+10j: raise TestFailed, 'complex(1,10L)'
78if complex(1,10.0) <> 1+10j: raise TestFailed, 'complex(1,10.0)'
79if complex(1L,10) <> 1+10j: raise TestFailed, 'complex(1L,10)'
80if complex(1L,10L) <> 1+10j: raise TestFailed, 'complex(1L,10L)'
81if complex(1L,10.0) <> 1+10j: raise TestFailed, 'complex(1L,10.0)'
82if complex(1.0,10) <> 1+10j: raise TestFailed, 'complex(1.0,10)'
83if complex(1.0,10L) <> 1+10j: raise TestFailed, 'complex(1.0,10L)'
84if complex(1.0,10.0) <> 1+10j: raise TestFailed, 'complex(1.0,10.0)'
85if complex(3.14+0j) <> 3.14+0j: raise TestFailed, 'complex(3.14)'
86if complex(3.14) <> 3.14+0j: raise TestFailed, 'complex(3.14)'
87if complex(314) <> 314.0+0j: raise TestFailed, 'complex(314)'
88if complex(314L) <> 314.0+0j: raise TestFailed, 'complex(314L)'
89if complex(3.14+0j, 0j) <> 3.14+0j: raise TestFailed, 'complex(3.14, 0j)'
90if complex(3.14, 0.0) <> 3.14+0j: raise TestFailed, 'complex(3.14, 0.0)'
91if complex(314, 0) <> 314.0+0j: raise TestFailed, 'complex(314, 0)'
92if complex(314L, 0L) <> 314.0+0j: raise TestFailed, 'complex(314L, 0L)'
93if complex(0j, 3.14j) <> -3.14+0j: raise TestFailed, 'complex(0j, 3.14j)'
94if complex(0.0, 3.14j) <> -3.14+0j: raise TestFailed, 'complex(0.0, 3.14j)'
95if complex(0j, 3.14) <> 3.14j: raise TestFailed, 'complex(0j, 3.14)'
96if complex(0.0, 3.14) <> 3.14j: raise TestFailed, 'complex(0.0, 3.14)'
Guido van Rossum52a0d7d1999-03-25 21:25:01 +000097if complex(" 3.14+J ") <> 3.14+1j: raise TestFailed, 'complex(" 3.14+J )"'
Guido van Rossum9e896b32000-04-05 20:11:21 +000098if complex(u" 3.14+J ") <> 3.14+1j: raise TestFailed, 'complex(u" 3.14+J )"'
Guido van Rossumdddf7a61997-03-31 17:13:17 +000099class Z:
100 def __complex__(self): return 3.14j
101z = Z()
102if complex(z) <> 3.14j: raise TestFailed, 'complex(classinstance)'
103
Guido van Rossume23b62f1994-11-10 22:25:26 +0000104print 'delattr'
105import sys
106sys.spam = 1
107delattr(sys, 'spam')
108
Guido van Rossum3bead091992-01-27 17:00:37 +0000109print 'dir'
110x = 1
111if 'x' not in dir(): raise TestFailed, 'dir()'
112import sys
113if 'modules' not in dir(sys): raise TestFailed, 'dir(sys)'
114
115print 'divmod'
116if divmod(12, 7) <> (1, 5): raise TestFailed, 'divmod(12, 7)'
117if divmod(-12, 7) <> (-2, 2): raise TestFailed, 'divmod(-12, 7)'
118if divmod(12, -7) <> (-2, -2): raise TestFailed, 'divmod(12, -7)'
119if divmod(-12, -7) <> (1, -5): raise TestFailed, 'divmod(-12, -7)'
120#
121if divmod(12L, 7L) <> (1L, 5L): raise TestFailed, 'divmod(12L, 7L)'
122if divmod(-12L, 7L) <> (-2L, 2L): raise TestFailed, 'divmod(-12L, 7L)'
123if divmod(12L, -7L) <> (-2L, -2L): raise TestFailed, 'divmod(12L, -7L)'
124if divmod(-12L, -7L) <> (1L, -5L): raise TestFailed, 'divmod(-12L, -7L)'
125#
126if divmod(12, 7L) <> (1, 5L): raise TestFailed, 'divmod(12, 7L)'
127if divmod(-12, 7L) <> (-2, 2L): raise TestFailed, 'divmod(-12, 7L)'
128if divmod(12L, -7) <> (-2L, -2): raise TestFailed, 'divmod(12L, -7)'
129if divmod(-12L, -7) <> (1L, -5): raise TestFailed, 'divmod(-12L, -7)'
130#
Guido van Rossum35fb82a1993-01-26 13:04:43 +0000131if fcmp(divmod(3.25, 1.0), (3.0, 0.25)):
Guido van Rossum27d445f1998-08-10 20:12:34 +0000132 raise TestFailed, 'divmod(3.25, 1.0)'
Guido van Rossum35fb82a1993-01-26 13:04:43 +0000133if fcmp(divmod(-3.25, 1.0), (-4.0, 0.75)):
Guido van Rossum27d445f1998-08-10 20:12:34 +0000134 raise TestFailed, 'divmod(-3.25, 1.0)'
Guido van Rossum35fb82a1993-01-26 13:04:43 +0000135if fcmp(divmod(3.25, -1.0), (-4.0, -0.75)):
Guido van Rossum27d445f1998-08-10 20:12:34 +0000136 raise TestFailed, 'divmod(3.25, -1.0)'
Guido van Rossum35fb82a1993-01-26 13:04:43 +0000137if fcmp(divmod(-3.25, -1.0), (3.0, -0.25)):
Guido van Rossum27d445f1998-08-10 20:12:34 +0000138 raise TestFailed, 'divmod(-3.25, -1.0)'
Guido van Rossum3bead091992-01-27 17:00:37 +0000139
140print 'eval'
141if eval('1+1') <> 2: raise TestFailed, 'eval(\'1+1\')'
Guido van Rossum85f18201992-11-27 22:53:50 +0000142if eval(' 1+1\n') <> 2: raise TestFailed, 'eval(\' 1+1\\n\')'
Guido van Rossum824de251995-01-02 18:38:42 +0000143globals = {'a': 1, 'b': 2}
144locals = {'b': 200, 'c': 300}
145if eval('a', globals) <> 1: raise TestFailed, "eval(1)"
146if eval('a', globals, locals) <> 1: raise TestFailed, "eval(2)"
147if eval('b', globals, locals) <> 200: raise TestFailed, "eval(3)"
148if eval('c', globals, locals) <> 300: raise TestFailed, "eval(4)"
Guido van Rossum3bead091992-01-27 17:00:37 +0000149
Guido van Rossum85f18201992-11-27 22:53:50 +0000150print 'execfile'
151z = 0
152f = open(TESTFN, 'w')
153f.write('z = z+1\n')
154f.write('z = z*2\n')
155f.close()
156execfile(TESTFN)
Guido van Rossum824de251995-01-02 18:38:42 +0000157if z <> 2: raise TestFailed, "execfile(1)"
158globals['z'] = 0
159execfile(TESTFN, globals)
160if globals['z'] <> 2: raise TestFailed, "execfile(1)"
161locals['z'] = 0
162execfile(TESTFN, globals, locals)
163if locals['z'] <> 2: raise TestFailed, "execfile(1)"
Guido van Rossum85f18201992-11-27 22:53:50 +0000164unlink(TESTFN)
Guido van Rossum3bead091992-01-27 17:00:37 +0000165
Guido van Rossume65cce51993-11-08 15:05:21 +0000166print 'filter'
Guido van Rossumae3b3a31993-11-30 13:43:54 +0000167if filter(lambda c: 'a' <= c <= 'z', 'Hello World') <> 'elloorld':
Guido van Rossum27d445f1998-08-10 20:12:34 +0000168 raise TestFailed, 'filter (filter a string)'
Guido van Rossume65cce51993-11-08 15:05:21 +0000169if filter(None, [1, 'hello', [], [3], '', None, 9, 0]) <> [1, 'hello', [3], 9]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000170 raise TestFailed, 'filter (remove false values)'
Guido van Rossumae3b3a31993-11-30 13:43:54 +0000171if filter(lambda x: x > 0, [1, -3, 9, 0, 2]) <> [1, 9, 2]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000172 raise TestFailed, 'filter (keep positives)'
Guido van Rossumb6775db1994-08-01 11:34:53 +0000173class Squares:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000174 def __init__(self, max):
175 self.max = max
176 self.sofar = []
177 def __len__(self): return len(self.sofar)
178 def __getitem__(self, i):
179 if not 0 <= i < self.max: raise IndexError
180 n = len(self.sofar)
181 while n <= i:
182 self.sofar.append(n*n)
183 n = n+1
184 return self.sofar[i]
Guido van Rossumb6775db1994-08-01 11:34:53 +0000185if filter(None, Squares(10)) != [1, 4, 9, 16, 25, 36, 49, 64, 81]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000186 raise TestFailed, 'filter(None, Squares(10))'
Guido van Rossumb6775db1994-08-01 11:34:53 +0000187if filter(lambda x: x%2, Squares(10)) != [1, 9, 25, 49, 81]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000188 raise TestFailed, 'filter(oddp, Squares(10))'
Barry Warsawab11f601999-01-28 19:44:06 +0000189class StrSquares:
190 def __init__(self, max):
191 self.max = max
192 self.sofar = []
193 def __len__(self):
194 return len(self.sofar)
195 def __getitem__(self, i):
196 if not 0 <= i < self.max:
197 raise IndexError
198 n = len(self.sofar)
199 while n <= i:
200 self.sofar.append(str(n*n))
201 n = n+1
202 return self.sofar[i]
203def identity(item):
204 return 1
205filter(identity, Squares(5))
Guido van Rossume65cce51993-11-08 15:05:21 +0000206
Guido van Rossum3bead091992-01-27 17:00:37 +0000207print 'float'
208if float(3.14) <> 3.14: raise TestFailed, 'float(3.14)'
209if float(314) <> 314.0: raise TestFailed, 'float(314)'
210if float(314L) <> 314.0: raise TestFailed, 'float(314L)'
Guido van Rossum52a0d7d1999-03-25 21:25:01 +0000211if float(" 3.14 ") <> 3.14: raise TestFailed, 'float(" 3.14 ")'
Guido van Rossum9e896b32000-04-05 20:11:21 +0000212if float(u" 3.14 ") <> 3.14: raise TestFailed, 'float(u" 3.14 ")'
213if float(u" \u0663.\u0661\u0664 ") <> 3.14:
214 raise TestFailed, 'float(u" \u0663.\u0661\u0664 ")'
Guido van Rossum3bead091992-01-27 17:00:37 +0000215
216print 'getattr'
217import sys
218if getattr(sys, 'stdout') is not sys.stdout: raise TestFailed, 'getattr'
219
Guido van Rossume23b62f1994-11-10 22:25:26 +0000220print 'hasattr'
221import sys
222if not hasattr(sys, 'stdout'): raise TestFailed, 'hasattr'
223
224print 'hash'
225hash(None)
226if not hash(1) == hash(1L) == hash(1.0): raise TestFailed, 'numeric hash()'
227hash('spam')
228hash((0,1,2,3))
229def f(): pass
230
Guido van Rossum3bead091992-01-27 17:00:37 +0000231print 'hex'
232if hex(16) != '0x10': raise TestFailed, 'hex(16)'
233if hex(16L) != '0x10L': raise TestFailed, 'hex(16L)'
Guido van Rossumc1c96d11997-05-14 21:37:23 +0000234if len(hex(-1)) != len(hex(sys.maxint)): raise TestFailed, 'len(hex(-1))'
235if hex(-16) not in ('0xfffffff0', '0xfffffffffffffff0'):
236 raise TestFailed, 'hex(-16)'
Guido van Rossum3bead091992-01-27 17:00:37 +0000237if hex(-16L) != '-0x10L': raise TestFailed, 'hex(-16L)'
238
Guido van Rossume23b62f1994-11-10 22:25:26 +0000239print 'id'
240id(None)
241id(1)
242id(1L)
243id(1.0)
244id('spam')
245id((0,1,2,3))
246id([0,1,2,3])
247id({'spam': 1, 'eggs': 2, 'ham': 3})
248
Guido van Rossum3bead091992-01-27 17:00:37 +0000249# Test input() later, together with raw_input
250
251print 'int'
252if int(314) <> 314: raise TestFailed, 'int(314)'
253if int(3.14) <> 3: raise TestFailed, 'int(3.14)'
254if int(314L) <> 314: raise TestFailed, 'int(314L)'
Guido van Rossumdddf7a61997-03-31 17:13:17 +0000255# Check that conversion from float truncates towards zero
256if int(-3.14) <> -3: raise TestFailed, 'int(-3.14)'
257if int(3.9) <> 3: raise TestFailed, 'int(3.9)'
258if int(-3.9) <> -3: raise TestFailed, 'int(-3.9)'
259if int(3.5) <> 3: raise TestFailed, 'int(3.5)'
260if int(-3.5) <> -3: raise TestFailed, 'int(-3.5)'
Guido van Rossum9e896b32000-04-05 20:11:21 +0000261# Different base:
262if int("10",16) <> 16L: raise TestFailed, 'int("10",16)'
263if int(u"10",16) <> 16L: raise TestFailed, 'int(u"10",16)'
Guido van Rossum70115041998-06-30 17:02:20 +0000264# Test conversion fron strings and various anomalies
265L = [
Guido van Rossum27d445f1998-08-10 20:12:34 +0000266 ('0', 0),
267 ('1', 1),
268 ('9', 9),
269 ('10', 10),
270 ('99', 99),
271 ('100', 100),
272 ('314', 314),
273 (' 314', 314),
274 ('314 ', 314),
275 (' \t\t 314 \t\t ', 314),
276 (`sys.maxint`, sys.maxint),
Guido van Rossum9e896b32000-04-05 20:11:21 +0000277 (' 1x', ValueError),
278 (' 1 ', 1),
279 (' 1\02 ', ValueError),
Guido van Rossum27d445f1998-08-10 20:12:34 +0000280 ('', ValueError),
281 (' ', ValueError),
282 (' \t\t ', ValueError),
Guido van Rossum9e896b32000-04-05 20:11:21 +0000283 (u'0', 0),
284 (u'1', 1),
285 (u'9', 9),
286 (u'10', 10),
287 (u'99', 99),
288 (u'100', 100),
289 (u'314', 314),
290 (u' 314', 314),
291 (u'\u0663\u0661\u0664 ', 314),
292 (u' \t\t 314 \t\t ', 314),
293 (u' 1x', ValueError),
294 (u' 1 ', 1),
295 (u' 1\02 ', ValueError),
296 (u'', ValueError),
297 (u' ', ValueError),
298 (u' \t\t ', ValueError),
Guido van Rossum70115041998-06-30 17:02:20 +0000299]
300for s, v in L:
301 for sign in "", "+", "-":
Guido van Rossum27d445f1998-08-10 20:12:34 +0000302 for prefix in "", " ", "\t", " \t\t ":
303 ss = prefix + sign + s
304 vv = v
305 if sign == "-" and v is not ValueError:
306 vv = -v
307 try:
308 if int(ss) != vv:
309 raise TestFailed, "int(%s)" % `ss`
310 except v:
311 pass
312 except ValueError, e:
313 raise TestFailed, "int(%s) raised ValueError: %s" % (`ss`, e)
Guido van Rossum70115041998-06-30 17:02:20 +0000314s = `-1-sys.maxint`
315if int(s)+1 != -sys.maxint:
316 raise TestFailed, "int(%s)" % `s`
317try:
318 int(s[1:])
319except ValueError:
320 pass
321else:
322 raise TestFailed, "int(%s)" % `s[1:]` + " should raise ValueError"
Guido van Rossum3bead091992-01-27 17:00:37 +0000323
Barry Warsawd5430771997-08-22 21:27:03 +0000324print 'isinstance'
325class C:
326 pass
327class D(C):
328 pass
329class E:
330 pass
331c = C()
332d = D()
333e = E()
334if not isinstance(c, C): raise TestFailed, 'isinstance(c, C)'
335if not isinstance(d, C): raise TestFailed, 'isinstance(d, C)'
336if isinstance(e, C): raise TestFailed, 'isinstance(e, C)'
337if isinstance(c, D): raise TestFailed, 'isinstance(c, D)'
338if isinstance('foo', E): raise TestFailed, 'isinstance("Foo", E)'
339try:
340 isinstance(E, 'foo')
341 raise TestFailed, 'isinstance(E, "foo")'
342except TypeError:
343 pass
344
345print 'issubclass'
346if not issubclass(D, C): raise TestFailed, 'issubclass(D, C)'
347if not issubclass(C, C): raise TestFailed, 'issubclass(C, C)'
348if issubclass(C, D): raise TestFailed, 'issubclass(C, D)'
349try:
350 issubclass('foo', E)
351 raise TestFailed, 'issubclass("foo", E)'
352except TypeError:
353 pass
354try:
355 issubclass(E, 'foo')
356 raise TestFailed, 'issubclass(E, "foo")'
357except TypeError:
358 pass
359
Guido van Rossum3bead091992-01-27 17:00:37 +0000360print 'len'
361if len('123') <> 3: raise TestFailed, 'len(\'123\')'
362if len(()) <> 0: raise TestFailed, 'len(())'
363if len((1, 2, 3, 4)) <> 4: raise TestFailed, 'len((1, 2, 3, 4))'
364if len([1, 2, 3, 4]) <> 4: raise TestFailed, 'len([1, 2, 3, 4])'
365if len({}) <> 0: raise TestFailed, 'len({})'
366if len({'a':1, 'b': 2}) <> 2: raise TestFailed, 'len({\'a\':1, \'b\': 2})'
367
368print 'long'
369if long(314) <> 314L: raise TestFailed, 'long(314)'
370if long(3.14) <> 3L: raise TestFailed, 'long(3.14)'
371if long(314L) <> 314L: raise TestFailed, 'long(314L)'
Guido van Rossumdddf7a61997-03-31 17:13:17 +0000372# Check that conversion from float truncates towards zero
373if long(-3.14) <> -3L: raise TestFailed, 'long(-3.14)'
374if long(3.9) <> 3L: raise TestFailed, 'long(3.9)'
375if long(-3.9) <> -3L: raise TestFailed, 'long(-3.9)'
376if long(3.5) <> 3L: raise TestFailed, 'long(3.5)'
377if long(-3.5) <> -3L: raise TestFailed, 'long(-3.5)'
Guido van Rossum9e896b32000-04-05 20:11:21 +0000378if long("-3") <> -3L: raise TestFailed, 'long("-3")'
379if long(u"-3") <> -3L: raise TestFailed, 'long(u"-3")'
380# Different base:
381if long("10",16) <> 16L: raise TestFailed, 'long("10",16)'
382if long(u"10",16) <> 16L: raise TestFailed, 'long(u"10",16)'
Guido van Rossum70115041998-06-30 17:02:20 +0000383# Check conversions from string (same test set as for int(), and then some)
384LL = [
Guido van Rossum27d445f1998-08-10 20:12:34 +0000385 ('1' + '0'*20, 10L**20),
386 ('1' + '0'*100, 10L**100),
Guido van Rossum9e896b32000-04-05 20:11:21 +0000387 (u'1' + u'0'*20, 10L**20),
388 (u'1' + u'0'*100, 10L**100),
Guido van Rossum70115041998-06-30 17:02:20 +0000389]
390for s, v in L + LL:
391 for sign in "", "+", "-":
Guido van Rossum27d445f1998-08-10 20:12:34 +0000392 for prefix in "", " ", "\t", " \t\t ":
393 ss = prefix + sign + s
394 vv = v
395 if sign == "-" and v is not ValueError:
396 vv = -v
397 try:
398 if long(ss) != long(vv):
Guido van Rossum9e896b32000-04-05 20:11:21 +0000399 raise TestFailed, "long(%s)" % `ss`
Guido van Rossum27d445f1998-08-10 20:12:34 +0000400 except v:
401 pass
402 except ValueError, e:
Guido van Rossum9e896b32000-04-05 20:11:21 +0000403 raise TestFailed, "long(%s) raised ValueError: %s" % (`ss`, e)
Guido van Rossum3bead091992-01-27 17:00:37 +0000404
Guido van Rossume65cce51993-11-08 15:05:21 +0000405print 'map'
406if map(None, 'hello world') <> ['h','e','l','l','o',' ','w','o','r','l','d']:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000407 raise TestFailed, 'map(None, \'hello world\')'
Guido van Rossume65cce51993-11-08 15:05:21 +0000408if map(None, 'abcd', 'efg') <> \
Guido van Rossum27d445f1998-08-10 20:12:34 +0000409 [('a', 'e'), ('b', 'f'), ('c', 'g'), ('d', None)]:
410 raise TestFailed, 'map(None, \'abcd\', \'efg\')'
Guido van Rossume65cce51993-11-08 15:05:21 +0000411if map(None, range(10)) <> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000412 raise TestFailed, 'map(None, range(10))'
Guido van Rossumae3b3a31993-11-30 13:43:54 +0000413if map(lambda x: x*x, range(1,4)) <> [1, 4, 9]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000414 raise TestFailed, 'map(lambda x: x*x, range(1,4))'
Guido van Rossum51b1c1c1995-03-04 22:30:54 +0000415try:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000416 from math import sqrt
Guido van Rossum51b1c1c1995-03-04 22:30:54 +0000417except ImportError:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000418 def sqrt(x):
419 return pow(x, 0.5)
Guido van Rossumae3b3a31993-11-30 13:43:54 +0000420if map(lambda x: map(sqrt,x), [[16, 4], [81, 9]]) <> [[4.0, 2.0], [9.0, 3.0]]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000421 raise TestFailed, 'map(lambda x: map(sqrt,x), [[16, 4], [81, 9]])'
Guido van Rossumae3b3a31993-11-30 13:43:54 +0000422if map(lambda x, y: x+y, [1,3,2], [9,1,4]) <> [10, 4, 6]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000423 raise TestFailed, 'map(lambda x,y: x+y, [1,3,2], [9,1,4])'
Guido van Rossume65cce51993-11-08 15:05:21 +0000424def plus(*v):
Guido van Rossum27d445f1998-08-10 20:12:34 +0000425 accu = 0
426 for i in v: accu = accu + i
427 return accu
Guido van Rossume65cce51993-11-08 15:05:21 +0000428if map(plus, [1, 3, 7]) <> [1, 3, 7]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000429 raise TestFailed, 'map(plus, [1, 3, 7])'
Guido van Rossume65cce51993-11-08 15:05:21 +0000430if map(plus, [1, 3, 7], [4, 9, 2]) <> [1+4, 3+9, 7+2]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000431 raise TestFailed, 'map(plus, [1, 3, 7], [4, 9, 2])'
Guido van Rossume65cce51993-11-08 15:05:21 +0000432if map(plus, [1, 3, 7], [4, 9, 2], [1, 1, 0]) <> [1+4+1, 3+9+1, 7+2+0]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000433 raise TestFailed, 'map(plus, [1, 3, 7], [4, 9, 2], [1, 1, 0])'
Guido van Rossumb6775db1994-08-01 11:34:53 +0000434if map(None, Squares(10)) != [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000435 raise TestFailed, 'map(None, Squares(10))'
Guido van Rossumb6775db1994-08-01 11:34:53 +0000436if map(int, Squares(10)) != [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000437 raise TestFailed, 'map(int, Squares(10))'
Guido van Rossumb6775db1994-08-01 11:34:53 +0000438if map(None, Squares(3), Squares(2)) != [(0,0), (1,1), (4,None)]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000439 raise TestFailed, 'map(None, Squares(3), Squares(2))'
Guido van Rossum69256611998-06-11 22:25:59 +0000440if map(max, Squares(3), Squares(2)) != [0, 1, None]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000441 raise TestFailed, 'map(max, Squares(3), Squares(2))'
Guido van Rossume65cce51993-11-08 15:05:21 +0000442
Guido van Rossum3bead091992-01-27 17:00:37 +0000443print 'max'
444if max('123123') <> '3': raise TestFailed, 'max(\'123123\')'
445if max(1, 2, 3) <> 3: raise TestFailed, 'max(1, 2, 3)'
446if max((1, 2, 3, 1, 2, 3)) <> 3: raise TestFailed, 'max((1, 2, 3, 1, 2, 3))'
447if max([1, 2, 3, 1, 2, 3]) <> 3: raise TestFailed, 'max([1, 2, 3, 1, 2, 3])'
448#
449if max(1, 2L, 3.0) <> 3.0: raise TestFailed, 'max(1, 2L, 3.0)'
450if max(1L, 2.0, 3) <> 3: raise TestFailed, 'max(1L, 2.0, 3)'
451if max(1.0, 2, 3L) <> 3L: raise TestFailed, 'max(1.0, 2, 3L)'
452
453print 'min'
454if min('123123') <> '1': raise TestFailed, 'min(\'123123\')'
455if min(1, 2, 3) <> 1: raise TestFailed, 'min(1, 2, 3)'
456if min((1, 2, 3, 1, 2, 3)) <> 1: raise TestFailed, 'min((1, 2, 3, 1, 2, 3))'
457if min([1, 2, 3, 1, 2, 3]) <> 1: raise TestFailed, 'min([1, 2, 3, 1, 2, 3])'
458#
459if min(1, 2L, 3.0) <> 1: raise TestFailed, 'min(1, 2L, 3.0)'
460if min(1L, 2.0, 3) <> 1L: raise TestFailed, 'min(1L, 2.0, 3)'
461if min(1.0, 2, 3L) <> 1.0: raise TestFailed, 'min(1.0, 2, 3L)'