blob: 020c8bce8b97f8f45c3043b8445614991304239c [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)'
97class Z:
98 def __complex__(self): return 3.14j
99z = Z()
100if complex(z) <> 3.14j: raise TestFailed, 'complex(classinstance)'
101
Guido van Rossume23b62f1994-11-10 22:25:26 +0000102print 'delattr'
103import sys
104sys.spam = 1
105delattr(sys, 'spam')
106
Guido van Rossum3bead091992-01-27 17:00:37 +0000107print 'dir'
108x = 1
109if 'x' not in dir(): raise TestFailed, 'dir()'
110import sys
111if 'modules' not in dir(sys): raise TestFailed, 'dir(sys)'
112
113print 'divmod'
114if divmod(12, 7) <> (1, 5): raise TestFailed, 'divmod(12, 7)'
115if divmod(-12, 7) <> (-2, 2): raise TestFailed, 'divmod(-12, 7)'
116if divmod(12, -7) <> (-2, -2): raise TestFailed, 'divmod(12, -7)'
117if divmod(-12, -7) <> (1, -5): raise TestFailed, 'divmod(-12, -7)'
118#
119if divmod(12L, 7L) <> (1L, 5L): raise TestFailed, 'divmod(12L, 7L)'
120if divmod(-12L, 7L) <> (-2L, 2L): raise TestFailed, 'divmod(-12L, 7L)'
121if divmod(12L, -7L) <> (-2L, -2L): raise TestFailed, 'divmod(12L, -7L)'
122if divmod(-12L, -7L) <> (1L, -5L): raise TestFailed, 'divmod(-12L, -7L)'
123#
124if divmod(12, 7L) <> (1, 5L): raise TestFailed, 'divmod(12, 7L)'
125if divmod(-12, 7L) <> (-2, 2L): raise TestFailed, 'divmod(-12, 7L)'
126if divmod(12L, -7) <> (-2L, -2): raise TestFailed, 'divmod(12L, -7)'
127if divmod(-12L, -7) <> (1L, -5): raise TestFailed, 'divmod(-12L, -7)'
128#
Guido van Rossum35fb82a1993-01-26 13:04:43 +0000129if fcmp(divmod(3.25, 1.0), (3.0, 0.25)):
Guido van Rossum27d445f1998-08-10 20:12:34 +0000130 raise TestFailed, 'divmod(3.25, 1.0)'
Guido van Rossum35fb82a1993-01-26 13:04:43 +0000131if fcmp(divmod(-3.25, 1.0), (-4.0, 0.75)):
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), (3.0, -0.25)):
Guido van Rossum27d445f1998-08-10 20:12:34 +0000136 raise TestFailed, 'divmod(-3.25, -1.0)'
Guido van Rossum3bead091992-01-27 17:00:37 +0000137
138print 'eval'
139if eval('1+1') <> 2: raise TestFailed, 'eval(\'1+1\')'
Guido van Rossum85f18201992-11-27 22:53:50 +0000140if eval(' 1+1\n') <> 2: raise TestFailed, 'eval(\' 1+1\\n\')'
Guido van Rossum824de251995-01-02 18:38:42 +0000141globals = {'a': 1, 'b': 2}
142locals = {'b': 200, 'c': 300}
143if eval('a', globals) <> 1: raise TestFailed, "eval(1)"
144if eval('a', globals, locals) <> 1: raise TestFailed, "eval(2)"
145if eval('b', globals, locals) <> 200: raise TestFailed, "eval(3)"
146if eval('c', globals, locals) <> 300: raise TestFailed, "eval(4)"
Guido van Rossum3bead091992-01-27 17:00:37 +0000147
Guido van Rossum85f18201992-11-27 22:53:50 +0000148print 'execfile'
149z = 0
150f = open(TESTFN, 'w')
151f.write('z = z+1\n')
152f.write('z = z*2\n')
153f.close()
154execfile(TESTFN)
Guido van Rossum824de251995-01-02 18:38:42 +0000155if z <> 2: raise TestFailed, "execfile(1)"
156globals['z'] = 0
157execfile(TESTFN, globals)
158if globals['z'] <> 2: raise TestFailed, "execfile(1)"
159locals['z'] = 0
160execfile(TESTFN, globals, locals)
161if locals['z'] <> 2: raise TestFailed, "execfile(1)"
Guido van Rossum85f18201992-11-27 22:53:50 +0000162unlink(TESTFN)
Guido van Rossum3bead091992-01-27 17:00:37 +0000163
Guido van Rossume65cce51993-11-08 15:05:21 +0000164print 'filter'
Guido van Rossumae3b3a31993-11-30 13:43:54 +0000165if filter(lambda c: 'a' <= c <= 'z', 'Hello World') <> 'elloorld':
Guido van Rossum27d445f1998-08-10 20:12:34 +0000166 raise TestFailed, 'filter (filter a string)'
Guido van Rossume65cce51993-11-08 15:05:21 +0000167if filter(None, [1, 'hello', [], [3], '', None, 9, 0]) <> [1, 'hello', [3], 9]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000168 raise TestFailed, 'filter (remove false values)'
Guido van Rossumae3b3a31993-11-30 13:43:54 +0000169if filter(lambda x: x > 0, [1, -3, 9, 0, 2]) <> [1, 9, 2]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000170 raise TestFailed, 'filter (keep positives)'
Guido van Rossumb6775db1994-08-01 11:34:53 +0000171class Squares:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000172 def __init__(self, max):
173 self.max = max
174 self.sofar = []
175 def __len__(self): return len(self.sofar)
176 def __getitem__(self, i):
177 if not 0 <= i < self.max: raise IndexError
178 n = len(self.sofar)
179 while n <= i:
180 self.sofar.append(n*n)
181 n = n+1
182 return self.sofar[i]
Guido van Rossumb6775db1994-08-01 11:34:53 +0000183if filter(None, Squares(10)) != [1, 4, 9, 16, 25, 36, 49, 64, 81]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000184 raise TestFailed, 'filter(None, Squares(10))'
Guido van Rossumb6775db1994-08-01 11:34:53 +0000185if filter(lambda x: x%2, Squares(10)) != [1, 9, 25, 49, 81]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000186 raise TestFailed, 'filter(oddp, Squares(10))'
Guido van Rossume65cce51993-11-08 15:05:21 +0000187
Guido van Rossum3bead091992-01-27 17:00:37 +0000188print 'float'
189if float(3.14) <> 3.14: raise TestFailed, 'float(3.14)'
190if float(314) <> 314.0: raise TestFailed, 'float(314)'
191if float(314L) <> 314.0: raise TestFailed, 'float(314L)'
192
193print 'getattr'
194import sys
195if getattr(sys, 'stdout') is not sys.stdout: raise TestFailed, 'getattr'
196
Guido van Rossume23b62f1994-11-10 22:25:26 +0000197print 'hasattr'
198import sys
199if not hasattr(sys, 'stdout'): raise TestFailed, 'hasattr'
200
201print 'hash'
202hash(None)
203if not hash(1) == hash(1L) == hash(1.0): raise TestFailed, 'numeric hash()'
204hash('spam')
205hash((0,1,2,3))
206def f(): pass
207
Guido van Rossum3bead091992-01-27 17:00:37 +0000208print 'hex'
209if hex(16) != '0x10': raise TestFailed, 'hex(16)'
210if hex(16L) != '0x10L': raise TestFailed, 'hex(16L)'
Guido van Rossumc1c96d11997-05-14 21:37:23 +0000211if len(hex(-1)) != len(hex(sys.maxint)): raise TestFailed, 'len(hex(-1))'
212if hex(-16) not in ('0xfffffff0', '0xfffffffffffffff0'):
213 raise TestFailed, 'hex(-16)'
Guido van Rossum3bead091992-01-27 17:00:37 +0000214if hex(-16L) != '-0x10L': raise TestFailed, 'hex(-16L)'
215
Guido van Rossume23b62f1994-11-10 22:25:26 +0000216print 'id'
217id(None)
218id(1)
219id(1L)
220id(1.0)
221id('spam')
222id((0,1,2,3))
223id([0,1,2,3])
224id({'spam': 1, 'eggs': 2, 'ham': 3})
225
Guido van Rossum3bead091992-01-27 17:00:37 +0000226# Test input() later, together with raw_input
227
228print 'int'
229if int(314) <> 314: raise TestFailed, 'int(314)'
230if int(3.14) <> 3: raise TestFailed, 'int(3.14)'
231if int(314L) <> 314: raise TestFailed, 'int(314L)'
Guido van Rossumdddf7a61997-03-31 17:13:17 +0000232# Check that conversion from float truncates towards zero
233if int(-3.14) <> -3: raise TestFailed, 'int(-3.14)'
234if int(3.9) <> 3: raise TestFailed, 'int(3.9)'
235if int(-3.9) <> -3: raise TestFailed, 'int(-3.9)'
236if int(3.5) <> 3: raise TestFailed, 'int(3.5)'
237if int(-3.5) <> -3: raise TestFailed, 'int(-3.5)'
Guido van Rossum70115041998-06-30 17:02:20 +0000238# Test conversion fron strings and various anomalies
239L = [
Guido van Rossum27d445f1998-08-10 20:12:34 +0000240 ('0', 0),
241 ('1', 1),
242 ('9', 9),
243 ('10', 10),
244 ('99', 99),
245 ('100', 100),
246 ('314', 314),
247 (' 314', 314),
248 ('314 ', 314),
249 (' \t\t 314 \t\t ', 314),
250 (`sys.maxint`, sys.maxint),
251 ('', ValueError),
252 (' ', ValueError),
253 (' \t\t ', ValueError),
Guido van Rossum70115041998-06-30 17:02:20 +0000254]
255for s, v in L:
256 for sign in "", "+", "-":
Guido van Rossum27d445f1998-08-10 20:12:34 +0000257 for prefix in "", " ", "\t", " \t\t ":
258 ss = prefix + sign + s
259 vv = v
260 if sign == "-" and v is not ValueError:
261 vv = -v
262 try:
263 if int(ss) != vv:
264 raise TestFailed, "int(%s)" % `ss`
265 except v:
266 pass
267 except ValueError, e:
268 raise TestFailed, "int(%s) raised ValueError: %s" % (`ss`, e)
Guido van Rossum70115041998-06-30 17:02:20 +0000269s = `-1-sys.maxint`
270if int(s)+1 != -sys.maxint:
271 raise TestFailed, "int(%s)" % `s`
272try:
273 int(s[1:])
274except ValueError:
275 pass
276else:
277 raise TestFailed, "int(%s)" % `s[1:]` + " should raise ValueError"
Guido van Rossum3bead091992-01-27 17:00:37 +0000278
Barry Warsawd5430771997-08-22 21:27:03 +0000279print 'isinstance'
280class C:
281 pass
282class D(C):
283 pass
284class E:
285 pass
286c = C()
287d = D()
288e = E()
289if not isinstance(c, C): raise TestFailed, 'isinstance(c, C)'
290if not isinstance(d, C): raise TestFailed, 'isinstance(d, C)'
291if isinstance(e, C): raise TestFailed, 'isinstance(e, C)'
292if isinstance(c, D): raise TestFailed, 'isinstance(c, D)'
293if isinstance('foo', E): raise TestFailed, 'isinstance("Foo", E)'
294try:
295 isinstance(E, 'foo')
296 raise TestFailed, 'isinstance(E, "foo")'
297except TypeError:
298 pass
299
300print 'issubclass'
301if not issubclass(D, C): raise TestFailed, 'issubclass(D, C)'
302if not issubclass(C, C): raise TestFailed, 'issubclass(C, C)'
303if issubclass(C, D): raise TestFailed, 'issubclass(C, D)'
304try:
305 issubclass('foo', E)
306 raise TestFailed, 'issubclass("foo", E)'
307except TypeError:
308 pass
309try:
310 issubclass(E, 'foo')
311 raise TestFailed, 'issubclass(E, "foo")'
312except TypeError:
313 pass
314
Guido van Rossum3bead091992-01-27 17:00:37 +0000315print 'len'
316if len('123') <> 3: raise TestFailed, 'len(\'123\')'
317if len(()) <> 0: raise TestFailed, 'len(())'
318if len((1, 2, 3, 4)) <> 4: raise TestFailed, 'len((1, 2, 3, 4))'
319if len([1, 2, 3, 4]) <> 4: raise TestFailed, 'len([1, 2, 3, 4])'
320if len({}) <> 0: raise TestFailed, 'len({})'
321if len({'a':1, 'b': 2}) <> 2: raise TestFailed, 'len({\'a\':1, \'b\': 2})'
322
323print 'long'
324if long(314) <> 314L: raise TestFailed, 'long(314)'
325if long(3.14) <> 3L: raise TestFailed, 'long(3.14)'
326if long(314L) <> 314L: raise TestFailed, 'long(314L)'
Guido van Rossumdddf7a61997-03-31 17:13:17 +0000327# Check that conversion from float truncates towards zero
328if long(-3.14) <> -3L: raise TestFailed, 'long(-3.14)'
329if long(3.9) <> 3L: raise TestFailed, 'long(3.9)'
330if long(-3.9) <> -3L: raise TestFailed, 'long(-3.9)'
331if long(3.5) <> 3L: raise TestFailed, 'long(3.5)'
332if long(-3.5) <> -3L: raise TestFailed, 'long(-3.5)'
Guido van Rossum70115041998-06-30 17:02:20 +0000333# Check conversions from string (same test set as for int(), and then some)
334LL = [
Guido van Rossum27d445f1998-08-10 20:12:34 +0000335 ('1' + '0'*20, 10L**20),
336 ('1' + '0'*100, 10L**100),
Guido van Rossum70115041998-06-30 17:02:20 +0000337]
338for s, v in L + LL:
339 for sign in "", "+", "-":
Guido van Rossum27d445f1998-08-10 20:12:34 +0000340 for prefix in "", " ", "\t", " \t\t ":
341 ss = prefix + sign + s
342 vv = v
343 if sign == "-" and v is not ValueError:
344 vv = -v
345 try:
346 if long(ss) != long(vv):
347 raise TestFailed, "int(%s)" % `ss`
348 except v:
349 pass
350 except ValueError, e:
351 raise TestFailed, "int(%s) raised ValueError: %s" % (`ss`, e)
Guido van Rossum3bead091992-01-27 17:00:37 +0000352
Guido van Rossume65cce51993-11-08 15:05:21 +0000353print 'map'
354if map(None, 'hello world') <> ['h','e','l','l','o',' ','w','o','r','l','d']:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000355 raise TestFailed, 'map(None, \'hello world\')'
Guido van Rossume65cce51993-11-08 15:05:21 +0000356if map(None, 'abcd', 'efg') <> \
Guido van Rossum27d445f1998-08-10 20:12:34 +0000357 [('a', 'e'), ('b', 'f'), ('c', 'g'), ('d', None)]:
358 raise TestFailed, 'map(None, \'abcd\', \'efg\')'
Guido van Rossume65cce51993-11-08 15:05:21 +0000359if map(None, range(10)) <> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000360 raise TestFailed, 'map(None, range(10))'
Guido van Rossumae3b3a31993-11-30 13:43:54 +0000361if map(lambda x: x*x, range(1,4)) <> [1, 4, 9]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000362 raise TestFailed, 'map(lambda x: x*x, range(1,4))'
Guido van Rossum51b1c1c1995-03-04 22:30:54 +0000363try:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000364 from math import sqrt
Guido van Rossum51b1c1c1995-03-04 22:30:54 +0000365except ImportError:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000366 def sqrt(x):
367 return pow(x, 0.5)
Guido van Rossumae3b3a31993-11-30 13:43:54 +0000368if 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 +0000369 raise TestFailed, 'map(lambda x: map(sqrt,x), [[16, 4], [81, 9]])'
Guido van Rossumae3b3a31993-11-30 13:43:54 +0000370if map(lambda x, y: x+y, [1,3,2], [9,1,4]) <> [10, 4, 6]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000371 raise TestFailed, 'map(lambda x,y: x+y, [1,3,2], [9,1,4])'
Guido van Rossume65cce51993-11-08 15:05:21 +0000372def plus(*v):
Guido van Rossum27d445f1998-08-10 20:12:34 +0000373 accu = 0
374 for i in v: accu = accu + i
375 return accu
Guido van Rossume65cce51993-11-08 15:05:21 +0000376if map(plus, [1, 3, 7]) <> [1, 3, 7]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000377 raise TestFailed, 'map(plus, [1, 3, 7])'
Guido van Rossume65cce51993-11-08 15:05:21 +0000378if map(plus, [1, 3, 7], [4, 9, 2]) <> [1+4, 3+9, 7+2]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000379 raise TestFailed, 'map(plus, [1, 3, 7], [4, 9, 2])'
Guido van Rossume65cce51993-11-08 15:05:21 +0000380if 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 +0000381 raise TestFailed, 'map(plus, [1, 3, 7], [4, 9, 2], [1, 1, 0])'
Guido van Rossumb6775db1994-08-01 11:34:53 +0000382if map(None, Squares(10)) != [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000383 raise TestFailed, 'map(None, Squares(10))'
Guido van Rossumb6775db1994-08-01 11:34:53 +0000384if map(int, Squares(10)) != [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000385 raise TestFailed, 'map(int, Squares(10))'
Guido van Rossumb6775db1994-08-01 11:34:53 +0000386if map(None, Squares(3), Squares(2)) != [(0,0), (1,1), (4,None)]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000387 raise TestFailed, 'map(None, Squares(3), Squares(2))'
Guido van Rossum69256611998-06-11 22:25:59 +0000388if map(max, Squares(3), Squares(2)) != [0, 1, None]:
Guido van Rossum27d445f1998-08-10 20:12:34 +0000389 raise TestFailed, 'map(max, Squares(3), Squares(2))'
Guido van Rossume65cce51993-11-08 15:05:21 +0000390
Guido van Rossum3bead091992-01-27 17:00:37 +0000391print 'max'
392if max('123123') <> '3': raise TestFailed, 'max(\'123123\')'
393if max(1, 2, 3) <> 3: raise TestFailed, 'max(1, 2, 3)'
394if max((1, 2, 3, 1, 2, 3)) <> 3: raise TestFailed, 'max((1, 2, 3, 1, 2, 3))'
395if max([1, 2, 3, 1, 2, 3]) <> 3: raise TestFailed, 'max([1, 2, 3, 1, 2, 3])'
396#
397if max(1, 2L, 3.0) <> 3.0: raise TestFailed, 'max(1, 2L, 3.0)'
398if max(1L, 2.0, 3) <> 3: raise TestFailed, 'max(1L, 2.0, 3)'
399if max(1.0, 2, 3L) <> 3L: raise TestFailed, 'max(1.0, 2, 3L)'
400
401print 'min'
402if min('123123') <> '1': raise TestFailed, 'min(\'123123\')'
403if min(1, 2, 3) <> 1: raise TestFailed, 'min(1, 2, 3)'
404if min((1, 2, 3, 1, 2, 3)) <> 1: raise TestFailed, 'min((1, 2, 3, 1, 2, 3))'
405if min([1, 2, 3, 1, 2, 3]) <> 1: raise TestFailed, 'min([1, 2, 3, 1, 2, 3])'
406#
407if min(1, 2L, 3.0) <> 1: raise TestFailed, 'min(1, 2L, 3.0)'
408if min(1L, 2.0, 3) <> 1L: raise TestFailed, 'min(1L, 2.0, 3)'
409if min(1.0, 2, 3L) <> 1.0: raise TestFailed, 'min(1.0, 2, 3L)'