1a,b = 'a *','b *' # use non-interned strings
2
3def and2_assign(a,b):
4    """
5    >>> a,b = 'a *','b *' # use non-interned strings
6    >>> and2_assign(2,3) == (2 and 3)
7    True
8    >>> and2_assign('a', 'b') == ('a' and 'b')
9    True
10    >>> and2_assign(a, b) == (a and b)
11    True
12    """
13    c = a and b
14    return c
15
16def and2(a,b):
17    """
18    >>> and2(2,3) == (2 and 3)
19    True
20    >>> and2(0,2) == (0 and 2)
21    True
22    >>> and2('a', 'b') == ('a' and 'b')
23    True
24    >>> and2(a, b) == (a and b)
25    True
26    >>> and2('', 'b') == ('' and 'b')
27    True
28    >>> and2([], [1]) == ([] and [1])
29    True
30    >>> and2([], [a]) == ([] and [a])
31    True
32    """
33    return a and b
34
35def and3(a,b,c):
36    """
37    >>> and3(0,1,2) == (0 and 1 and 2)
38    True
39    >>> and3([],(),[1]) == ([] and () and [1])
40    True
41    """
42    d = a and b and c
43    return d
44
45def and2_no_result(a,b):
46    """
47    >>> and2_no_result(2,3)
48    >>> and2_no_result(0,2)
49    >>> and2_no_result('a','b')
50    >>> and2_no_result(a,b)
51    >>> a and b
52    'b *'
53    """
54    a and b
55
56def and2_literal():
57    """
58    >>> and2_literal()
59    5
60    """
61    return True and 5
62
63def c_int_results(int x):
64    """
65    >>> c_int_results(7)
66    (0, 0)
67    >>> c_int_results(5)
68    (1, 1)
69    """
70    cdef int expr1, expr2, r1, r2
71
72    expr1 = x == 5
73    expr2 = 1
74    r1 = expr1 and expr2
75
76    r2 = (x==5) and 1
77    return r1, r2
78