blob: d9c6320cd32d4563b4656efc4fe0dce6f79e82b8 [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 Rossumdddf7a61997-03-31 17:13:17 +000098class Z:
99 def __complex__(self): return 3.14j
100z = Z()
101if complex(z) <> 3.14j: raise TestFailed, 'complex(classinstance)'
102
Guido van Rossume23b62f1994-11-10 22:25:26 +0000103print 'delattr'
104import sys
105sys.spam = 1
106delattr(sys, 'spam')
107
Guido van Rossum3bead091992-01-27 17:00:37 +0000108print 'dir'
109x = 1
110if 'x' not in dir(): raise TestFailed, 'dir()'
111import sys
112if 'modules' not in dir(sys): raise TestFailed, 'dir(sys)'
113
114print 'divmod'
115if divmod(12, 7) <> (1, 5): raise TestFailed, 'divmod(12, 7)'
116if divmod(-12, 7) <> (-2, 2): raise TestFailed, 'divmod(-12, 7)'
117if divmod(12, -7) <> (-2, -2): raise TestFailed, 'divmod(12, -7)'
118if divmod(-12, -7) <> (1, -5): raise TestFailed, 'divmod(-12, -7)'
119#
120if divmod(12L, 7L) <> (1L, 5L): raise TestFailed, 'divmod(12L, 7L)'
121if divmod(-12L, 7L) <> (-2L, 2L): raise TestFailed, 'divmod(-12L, 7L)'
122if divmod(12L, -7L) <> (-2L, -2L): raise TestFailed, 'divmod(12L, -7L)'
123if divmod(-12L, -7L) <> (1L, -5L): raise TestFailed, 'divmod(-12L, -7L)'
124#
125if divmod(12, 7L) <> (1, 5L): raise TestFailed, 'divmod(12, 7L)'
126if divmod(-12, 7L) <> (-2, 2L): raise TestFailed, 'divmod(-12, 7L)'
127if divmod(12L, -7) <> (-2L, -2): raise TestFailed, 'divmod(12L, -7)'
128if divmod(-12L, -7) <> (1L, -5): raise TestFailed, 'divmod(-12L, -7)'
129#
Guido van Rossum35fb82a1993-01-26 13:04:43 +0000130if fcmp(divmod(3.25, 1.0), (3.0, 0.25)):
Guido van Rossum27d445f1998-08-10 20:12:34 +0000131 raise TestFailed, 'divmod(3.25, 1.0)'
Guido van Rossum35fb82a1993-01-26 13:04:43 +0000132if fcmp(divmod(-3.25, 1.0), (-4.0, 0.75)):
Guido van Rossum27d445f1998-08-10 20:12:34 +0000133 raise TestFailed, 'divmod(-3.25, 1.0)'
Guido van Rossum35fb82a1993-01-26 13:04:43 +0000134if fcmp(divmod(3.25, -1.0), (-4.0, -0.75)):
Guido van Rossum27d445f1998-08-10 20:12:34 +0000135 raise TestFailed, 'divmod(3.25, -1.0)'
Guido van Rossum35fb82a1993-01-26 13:04:43 +0000136if fcmp(divmod(-3.25, -1.0), (3.0, -0.25)):
Guido van Rossum27d445f1998-08-10 20:12:34 +0000137 raise TestFailed, 'divmod(-3.25, -1.0)'
Guido van Rossum3bead091992-01-27 17:00:37 +0000138
139print 'eval'
140if eval('1+1') <> 2: raise TestFailed, 'eval(\'1+1\')'
Guido van Rossum85f18201992-11-27 22:53:50 +0000141if eval(' 1+1\n') <> 2: raise TestFailed, 'eval(\' 1+1\\n\')'
Guido van Rossum824de251995-01-02 18:38:42 +0000142globals = {'a': 1, 'b': 2}
143locals = {'b': 200, 'c': 300}
144if eval('a', globals) <> 1: raise TestFailed, "eval(1)"
145if eval('a', globals, locals) <> 1: raise TestFailed, "eval(2)"
146if eval('b', globals, locals) <> 200: raise TestFailed, "eval(3)"
147if eval('c', globals, locals) <> 300: raise TestFailed, "eval(4)"
Guido van Rossum3bead091992-01-27 17:00:37 +0000148
Guido van Rossum85f18201992-11-27 22:53:50 +0000149print 'execfile'
150z = 0
151f = open(TESTFN, 'w')
152f.write('z = z+1\n')
153f.write('z = z*2\n')
154f.close()
155execfile(TESTFN)
Guido van Rossum824de251995-01-02 18:38:42 +0000156if z <> 2: raise TestFailed, "execfile(1)"
157globals['z'] = 0
158execfile(TESTFN, globals)
159if globals['z'] <> 2: raise TestFailed, "execfile(1)"
160locals['z'] = 0
161execfile(TESTFN, globals, locals)
162if locals['z'] <> 2: raise TestFailed, "execfile(1)"
Guido van Rossum85f18201992-11-27 22:53:50 +0000163unlink(TESTFN)
Guido van Rossum3bead091992-01-27 17:00:37 +0000164
Guido van Rossume65cce51993-11-08 15:05:21 +0000165print 'filter'
Guido van Rossumae3b3a31993-11-30 13:43:54 +0000166if filter(lambda c: 'a' <= c <= 'z', 'Hello World') <> 'elloorld':
Guido van Rossum27d445f1998-08-10 20:12:34 +0000167 raise TestFailed, 'filter (filter a string)'
Guido van Rossume65cce51993-11-08 15:05:21 +0000168if filter(None, [1, 'hello', [], [3], '', None, 9, 0]) <> [1, 'hello', [3], 9]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000169 raise TestFailed, 'filter (remove false values)'
Guido van Rossumae3b3a31993-11-30 13:43:54 +0000170if filter(lambda x: x > 0, [1, -3, 9, 0, 2]) <> [1, 9, 2]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000171 raise TestFailed, 'filter (keep positives)'
Guido van Rossumb6775db1994-08-01 11:34:53 +0000172class Squares:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000173 def __init__(self, max):
174 self.max = max
175 self.sofar = []
176 def __len__(self): return len(self.sofar)
177 def __getitem__(self, i):
178 if not 0 <= i < self.max: raise IndexError
179 n = len(self.sofar)
180 while n <= i:
181 self.sofar.append(n*n)
182 n = n+1
183 return self.sofar[i]
Guido van Rossumb6775db1994-08-01 11:34:53 +0000184if filter(None, Squares(10)) != [1, 4, 9, 16, 25, 36, 49, 64, 81]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000185 raise TestFailed, 'filter(None, Squares(10))'
Guido van Rossumb6775db1994-08-01 11:34:53 +0000186if filter(lambda x: x%2, Squares(10)) != [1, 9, 25, 49, 81]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000187 raise TestFailed, 'filter(oddp, Squares(10))'
Barry Warsawab11f601999-01-28 19:44:06 +0000188class StrSquares:
189 def __init__(self, max):
190 self.max = max
191 self.sofar = []
192 def __len__(self):
193 return len(self.sofar)
194 def __getitem__(self, i):
195 if not 0 <= i < self.max:
196 raise IndexError
197 n = len(self.sofar)
198 while n <= i:
199 self.sofar.append(str(n*n))
200 n = n+1
201 return self.sofar[i]
202def identity(item):
203 return 1
204filter(identity, Squares(5))
Guido van Rossume65cce51993-11-08 15:05:21 +0000205
Guido van Rossum3bead091992-01-27 17:00:37 +0000206print 'float'
207if float(3.14) <> 3.14: raise TestFailed, 'float(3.14)'
208if float(314) <> 314.0: raise TestFailed, 'float(314)'
209if float(314L) <> 314.0: raise TestFailed, 'float(314L)'
Guido van Rossum52a0d7d1999-03-25 21:25:01 +0000210if float(" 3.14 ") <> 3.14: raise TestFailed, 'float(" 3.14 ")'
Guido van Rossum3bead091992-01-27 17:00:37 +0000211
212print 'getattr'
213import sys
214if getattr(sys, 'stdout') is not sys.stdout: raise TestFailed, 'getattr'
215
Guido van Rossume23b62f1994-11-10 22:25:26 +0000216print 'hasattr'
217import sys
218if not hasattr(sys, 'stdout'): raise TestFailed, 'hasattr'
219
220print 'hash'
221hash(None)
222if not hash(1) == hash(1L) == hash(1.0): raise TestFailed, 'numeric hash()'
223hash('spam')
224hash((0,1,2,3))
225def f(): pass
226
Guido van Rossum3bead091992-01-27 17:00:37 +0000227print 'hex'
228if hex(16) != '0x10': raise TestFailed, 'hex(16)'
229if hex(16L) != '0x10L': raise TestFailed, 'hex(16L)'
Guido van Rossumc1c96d11997-05-14 21:37:23 +0000230if len(hex(-1)) != len(hex(sys.maxint)): raise TestFailed, 'len(hex(-1))'
231if hex(-16) not in ('0xfffffff0', '0xfffffffffffffff0'):
232 raise TestFailed, 'hex(-16)'
Guido van Rossum3bead091992-01-27 17:00:37 +0000233if hex(-16L) != '-0x10L': raise TestFailed, 'hex(-16L)'
234
Guido van Rossume23b62f1994-11-10 22:25:26 +0000235print 'id'
236id(None)
237id(1)
238id(1L)
239id(1.0)
240id('spam')
241id((0,1,2,3))
242id([0,1,2,3])
243id({'spam': 1, 'eggs': 2, 'ham': 3})
244
Guido van Rossum3bead091992-01-27 17:00:37 +0000245# Test input() later, together with raw_input
246
247print 'int'
248if int(314) <> 314: raise TestFailed, 'int(314)'
249if int(3.14) <> 3: raise TestFailed, 'int(3.14)'
250if int(314L) <> 314: raise TestFailed, 'int(314L)'
Guido van Rossumdddf7a61997-03-31 17:13:17 +0000251# Check that conversion from float truncates towards zero
252if int(-3.14) <> -3: raise TestFailed, 'int(-3.14)'
253if int(3.9) <> 3: raise TestFailed, 'int(3.9)'
254if int(-3.9) <> -3: raise TestFailed, 'int(-3.9)'
255if int(3.5) <> 3: raise TestFailed, 'int(3.5)'
256if int(-3.5) <> -3: raise TestFailed, 'int(-3.5)'
Guido van Rossum70115041998-06-30 17:02:20 +0000257# Test conversion fron strings and various anomalies
258L = [
Guido van Rossum27d445f1998-08-10 20:12:34 +0000259 ('0', 0),
260 ('1', 1),
261 ('9', 9),
262 ('10', 10),
263 ('99', 99),
264 ('100', 100),
265 ('314', 314),
266 (' 314', 314),
267 ('314 ', 314),
268 (' \t\t 314 \t\t ', 314),
269 (`sys.maxint`, sys.maxint),
270 ('', ValueError),
271 (' ', ValueError),
272 (' \t\t ', ValueError),
Guido van Rossum70115041998-06-30 17:02:20 +0000273]
274for s, v in L:
275 for sign in "", "+", "-":
Guido van Rossum27d445f1998-08-10 20:12:34 +0000276 for prefix in "", " ", "\t", " \t\t ":
277 ss = prefix + sign + s
278 vv = v
279 if sign == "-" and v is not ValueError:
280 vv = -v
281 try:
282 if int(ss) != vv:
283 raise TestFailed, "int(%s)" % `ss`
284 except v:
285 pass
286 except ValueError, e:
287 raise TestFailed, "int(%s) raised ValueError: %s" % (`ss`, e)
Guido van Rossum70115041998-06-30 17:02:20 +0000288s = `-1-sys.maxint`
289if int(s)+1 != -sys.maxint:
290 raise TestFailed, "int(%s)" % `s`
291try:
292 int(s[1:])
293except ValueError:
294 pass
295else:
296 raise TestFailed, "int(%s)" % `s[1:]` + " should raise ValueError"
Guido van Rossum3bead091992-01-27 17:00:37 +0000297
Barry Warsawd5430771997-08-22 21:27:03 +0000298print 'isinstance'
299class C:
300 pass
301class D(C):
302 pass
303class E:
304 pass
305c = C()
306d = D()
307e = E()
308if not isinstance(c, C): raise TestFailed, 'isinstance(c, C)'
309if not isinstance(d, C): raise TestFailed, 'isinstance(d, C)'
310if isinstance(e, C): raise TestFailed, 'isinstance(e, C)'
311if isinstance(c, D): raise TestFailed, 'isinstance(c, D)'
312if isinstance('foo', E): raise TestFailed, 'isinstance("Foo", E)'
313try:
314 isinstance(E, 'foo')
315 raise TestFailed, 'isinstance(E, "foo")'
316except TypeError:
317 pass
318
319print 'issubclass'
320if not issubclass(D, C): raise TestFailed, 'issubclass(D, C)'
321if not issubclass(C, C): raise TestFailed, 'issubclass(C, C)'
322if issubclass(C, D): raise TestFailed, 'issubclass(C, D)'
323try:
324 issubclass('foo', E)
325 raise TestFailed, 'issubclass("foo", E)'
326except TypeError:
327 pass
328try:
329 issubclass(E, 'foo')
330 raise TestFailed, 'issubclass(E, "foo")'
331except TypeError:
332 pass
333
Guido van Rossum3bead091992-01-27 17:00:37 +0000334print 'len'
335if len('123') <> 3: raise TestFailed, 'len(\'123\')'
336if len(()) <> 0: raise TestFailed, 'len(())'
337if len((1, 2, 3, 4)) <> 4: raise TestFailed, 'len((1, 2, 3, 4))'
338if len([1, 2, 3, 4]) <> 4: raise TestFailed, 'len([1, 2, 3, 4])'
339if len({}) <> 0: raise TestFailed, 'len({})'
340if len({'a':1, 'b': 2}) <> 2: raise TestFailed, 'len({\'a\':1, \'b\': 2})'
341
342print 'long'
343if long(314) <> 314L: raise TestFailed, 'long(314)'
344if long(3.14) <> 3L: raise TestFailed, 'long(3.14)'
345if long(314L) <> 314L: raise TestFailed, 'long(314L)'
Guido van Rossumdddf7a61997-03-31 17:13:17 +0000346# Check that conversion from float truncates towards zero
347if long(-3.14) <> -3L: raise TestFailed, 'long(-3.14)'
348if long(3.9) <> 3L: raise TestFailed, 'long(3.9)'
349if long(-3.9) <> -3L: raise TestFailed, 'long(-3.9)'
350if long(3.5) <> 3L: raise TestFailed, 'long(3.5)'
351if long(-3.5) <> -3L: raise TestFailed, 'long(-3.5)'
Guido van Rossum70115041998-06-30 17:02:20 +0000352# Check conversions from string (same test set as for int(), and then some)
353LL = [
Guido van Rossum27d445f1998-08-10 20:12:34 +0000354 ('1' + '0'*20, 10L**20),
355 ('1' + '0'*100, 10L**100),
Guido van Rossum70115041998-06-30 17:02:20 +0000356]
357for s, v in L + LL:
358 for sign in "", "+", "-":
Guido van Rossum27d445f1998-08-10 20:12:34 +0000359 for prefix in "", " ", "\t", " \t\t ":
360 ss = prefix + sign + s
361 vv = v
362 if sign == "-" and v is not ValueError:
363 vv = -v
364 try:
365 if long(ss) != long(vv):
366 raise TestFailed, "int(%s)" % `ss`
367 except v:
368 pass
369 except ValueError, e:
370 raise TestFailed, "int(%s) raised ValueError: %s" % (`ss`, e)
Guido van Rossum3bead091992-01-27 17:00:37 +0000371
Guido van Rossume65cce51993-11-08 15:05:21 +0000372print 'map'
373if map(None, 'hello world') <> ['h','e','l','l','o',' ','w','o','r','l','d']:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000374 raise TestFailed, 'map(None, \'hello world\')'
Guido van Rossume65cce51993-11-08 15:05:21 +0000375if map(None, 'abcd', 'efg') <> \
Guido van Rossum27d445f1998-08-10 20:12:34 +0000376 [('a', 'e'), ('b', 'f'), ('c', 'g'), ('d', None)]:
377 raise TestFailed, 'map(None, \'abcd\', \'efg\')'
Guido van Rossume65cce51993-11-08 15:05:21 +0000378if map(None, range(10)) <> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000379 raise TestFailed, 'map(None, range(10))'
Guido van Rossumae3b3a31993-11-30 13:43:54 +0000380if map(lambda x: x*x, range(1,4)) <> [1, 4, 9]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000381 raise TestFailed, 'map(lambda x: x*x, range(1,4))'
Guido van Rossum51b1c1c1995-03-04 22:30:54 +0000382try:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000383 from math import sqrt
Guido van Rossum51b1c1c1995-03-04 22:30:54 +0000384except ImportError:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000385 def sqrt(x):
386 return pow(x, 0.5)
Guido van Rossumae3b3a31993-11-30 13:43:54 +0000387if 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 +0000388 raise TestFailed, 'map(lambda x: map(sqrt,x), [[16, 4], [81, 9]])'
Guido van Rossumae3b3a31993-11-30 13:43:54 +0000389if map(lambda x, y: x+y, [1,3,2], [9,1,4]) <> [10, 4, 6]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000390 raise TestFailed, 'map(lambda x,y: x+y, [1,3,2], [9,1,4])'
Guido van Rossume65cce51993-11-08 15:05:21 +0000391def plus(*v):
Guido van Rossum27d445f1998-08-10 20:12:34 +0000392 accu = 0
393 for i in v: accu = accu + i
394 return accu
Guido van Rossume65cce51993-11-08 15:05:21 +0000395if map(plus, [1, 3, 7]) <> [1, 3, 7]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000396 raise TestFailed, 'map(plus, [1, 3, 7])'
Guido van Rossume65cce51993-11-08 15:05:21 +0000397if map(plus, [1, 3, 7], [4, 9, 2]) <> [1+4, 3+9, 7+2]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000398 raise TestFailed, 'map(plus, [1, 3, 7], [4, 9, 2])'
Guido van Rossume65cce51993-11-08 15:05:21 +0000399if 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 +0000400 raise TestFailed, 'map(plus, [1, 3, 7], [4, 9, 2], [1, 1, 0])'
Guido van Rossumb6775db1994-08-01 11:34:53 +0000401if map(None, Squares(10)) != [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000402 raise TestFailed, 'map(None, Squares(10))'
Guido van Rossumb6775db1994-08-01 11:34:53 +0000403if map(int, Squares(10)) != [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000404 raise TestFailed, 'map(int, Squares(10))'
Guido van Rossumb6775db1994-08-01 11:34:53 +0000405if map(None, Squares(3), Squares(2)) != [(0,0), (1,1), (4,None)]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000406 raise TestFailed, 'map(None, Squares(3), Squares(2))'
Guido van Rossum69256611998-06-11 22:25:59 +0000407if map(max, Squares(3), Squares(2)) != [0, 1, None]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000408 raise TestFailed, 'map(max, Squares(3), Squares(2))'
Guido van Rossume65cce51993-11-08 15:05:21 +0000409
Guido van Rossum3bead091992-01-27 17:00:37 +0000410print 'max'
411if max('123123') <> '3': raise TestFailed, 'max(\'123123\')'
412if max(1, 2, 3) <> 3: raise TestFailed, 'max(1, 2, 3)'
413if max((1, 2, 3, 1, 2, 3)) <> 3: raise TestFailed, 'max((1, 2, 3, 1, 2, 3))'
414if max([1, 2, 3, 1, 2, 3]) <> 3: raise TestFailed, 'max([1, 2, 3, 1, 2, 3])'
415#
416if max(1, 2L, 3.0) <> 3.0: raise TestFailed, 'max(1, 2L, 3.0)'
417if max(1L, 2.0, 3) <> 3: raise TestFailed, 'max(1L, 2.0, 3)'
418if max(1.0, 2, 3L) <> 3L: raise TestFailed, 'max(1.0, 2, 3L)'
419
420print 'min'
421if min('123123') <> '1': raise TestFailed, 'min(\'123123\')'
422if min(1, 2, 3) <> 1: raise TestFailed, 'min(1, 2, 3)'
423if min((1, 2, 3, 1, 2, 3)) <> 1: raise TestFailed, 'min((1, 2, 3, 1, 2, 3))'
424if min([1, 2, 3, 1, 2, 3]) <> 1: raise TestFailed, 'min([1, 2, 3, 1, 2, 3])'
425#
426if min(1, 2L, 3.0) <> 1: raise TestFailed, 'min(1, 2L, 3.0)'
427if min(1L, 2.0, 3) <> 1L: raise TestFailed, 'min(1L, 2.0, 3)'
428if min(1.0, 2, 3L) <> 1.0: raise TestFailed, 'min(1.0, 2, 3L)'