summaryrefslogtreecommitdiff
path: root/tests/run/cpp_stl_associated_containers_contains_cpp20.pyx
blob: ebe8d8fa8832b43eb81d18f1d7bdd273aec4f65c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
# mode: run
# tag: cpp, cpp20

# cython: language_level=3

from libcpp.map cimport map, multimap
from libcpp.set cimport set, multiset
from libcpp.unordered_map cimport unordered_map, unordered_multimap
from libcpp.unordered_set cimport unordered_set, unordered_multiset

def test_map_contains(vals, int key_to_find):
    """
    >>> test_map_contains([(1,100),(2,200),(3,300)], 3)
    True
    >>> test_map_contains([(1,100),(2,200),(3,300)], 4)
    False
    """
    cdef map[int,int] m = map[int, int]()
    for v in vals:
        m.insert(v)
    return m.contains(key_to_find)

def test_unordered_map_contains(vals, int key_to_find):
    """
    >>> test_unordered_map_contains([(1,100),(2,200),(3,300)], 3)
    True
    >>> test_unordered_map_contains([(1,100),(2,200),(3,300)], 4)
    False
    """
    cdef unordered_map[int,int] um = unordered_map[int, int]()
    for v in vals:
        um.insert(v)
    return um.contains(key_to_find)

def test_multimap_contains(vals, int key_to_find):
    """
    >>> test_multimap_contains([(1,100),(2,200),(3,300)], 3)
    True
    >>> test_multimap_contains([(1,100),(2,200),(3,300)], 4)
    False
    """
    cdef multimap[int,int] mm = multimap[int, int]()
    for v in vals:
        mm.insert(v)
    return mm.contains(key_to_find)

def test_unordered_multimap_contains(vals, int key_to_find):
    """
    >>> test_unordered_multimap_contains([(1,100),(2,200),(3,300)], 3)
    True
    >>> test_unordered_multimap_contains([(1,100),(2,200),(3,300)], 4)
    False
    """
    cdef unordered_multimap[int,int] umm = unordered_multimap[int, int]()
    for v in vals:
        umm.insert(v)
    return umm.contains(key_to_find)


def test_set_contains(vals, int val_to_find):
    """
    >>> test_set_contains([1, 2, 3], 3)
    True
    >>> test_set_contains([1, 2, 3], 4)
    False
    """
    cdef set[int] s = set[int]()
    for v in vals:
        s.insert(v)
    return s.contains(val_to_find)

def test_unordered_set_contains(vals, int val_to_find):
    """
    >>> test_unordered_set_contains([1, 2, 3], 3)
    True
    >>> test_unordered_set_contains([1, 2, 3], 4)
    False
    """
    cdef unordered_set[int] us = unordered_set[int]()
    for v in vals:
        us.insert(v)
    return us.contains(val_to_find)

def test_multiset_contains(vals, int val_to_find):
    """
    >>> test_multiset_contains([1, 2, 3], 3)
    True
    >>> test_multiset_contains([1, 2, 3], 4)
    False
    """
    cdef multiset[int] ms = multiset[int]()
    for v in vals:
        ms.insert(v)
    return ms.contains(val_to_find)

def test_unordered_multiset_contains(vals, int val_to_find):
    """
    >>> test_unordered_multiset_contains([1, 2, 3], 3)
    True
    >>> test_unordered_multiset_contains([1, 2, 3], 4)
    False
    """
    cdef unordered_multiset[int] ums = unordered_multiset[int]()
    for v in vals:
        ums.insert(v)
    return ums.contains(val_to_find)