1# tag: cpp
2# mode: run, no-cpp-locals
3
4cdef extern from *:
5    """
6    enum Enum1 {
7        Item1,
8        Item2
9    };
10
11    """
12    cdef enum Enum1:
13        Item1
14        Item2
15
16a = Item1
17b = Item2
18
19cdef Enum1 x, y
20x = Item1
21y = Item2
22
23
24def compare_enums():
25    """
26    >>> compare_enums()
27    (True, True, True, True)
28    """
29    return x == a, a == Item1, b == y, y == Item2
30
31
32cdef extern from * namespace "Namespace1":
33    """
34    namespace Namespace1 {
35        enum Enum2 {
36            Item3,
37            Item4
38        };
39    }
40    """
41    cdef enum Enum2:
42        Item3
43        Item4
44
45c = Item3
46d = Item4
47
48cdef Enum2 z, w
49z = Item3
50w = Item4
51
52
53def compare_namespace_enums():
54    """
55    >>> compare_namespace_enums()
56    (True, True, True, True)
57    """
58    return z == c, c == Item3, d == w, d == Item4
59