blob: 2bc284bd312d441c242d3acfbeb65f7f7548e9c3 [file] [log] [blame]
Guido van Rossum24512e62000-03-06 21:00:29 +00001from test_support import TestFailed
2
3class base_set:
4
5 def __init__(self, el):
6 self.el = el
7
8class set(base_set):
9
10 def __contains__(self, el):
11 return self.el == el
12
13class seq(base_set):
14
15 def __getitem__(self, n):
16 return [self.el][n]
17
18def check(ok, *args):
19 if not ok:
20 raise TestFailed, join(map(str, args), " ")
21
22a = base_set(1)
23b = set(1)
24c = seq(1)
25
26check(1 in b, "1 not in set(1)")
27check(0 not in b, "0 in set(1)")
28check(1 in c, "1 not in seq(1)")
29check(0 not in c, "0 in seq(1)")
30
31try:
32 1 in a
33 check(0, "in base_set did not raise error")
34except AttributeError:
35 pass
36
37try:
38 1 not in a
39 check(0, "not in base_set did not raise error")
40except AttributeError:
41 pass
Guido van Rossumda2361a2000-03-07 15:52:01 +000042
43# Test char in string
44
45check('c' in 'abc', "'c' not in 'abc'")
46check('d' not in 'abc', "'d' in 'abc'")
47
48try:
49 '' in 'abc'
50 check(0, "'' in 'abc' did not raise error")
51except TypeError:
52 pass
53
54try:
55 'ab' in 'abc'
56 check(0, "'ab' in 'abc' did not raise error")
57except TypeError:
58 pass
59
60try:
61 None in 'abc'
62 check(0, "None in 'abc' did not raise error")
63except TypeError:
64 pass