cython

Форк
0
/
ctruthtests.pyx 
101 строка · 1.5 Кб
1
def test_ptr():
2
    """
3
    >>> test_ptr()
4
    False
5
    """
6
    cdef void* p = NULL
7
    if p:
8
        return True
9
    else:
10
        return False
11

12
def test_ptr2():
13
    """
14
    >>> test_ptr2()
15
    2
16
    """
17
    cdef char* p1 = NULL
18
    cdef char* p2 = NULL
19
    p1 += 1
20

21
    if p1 and p2:
22
        return 1
23
    elif p1 or p2:
24
        return 2
25
    else:
26
        return 3
27

28
def test_int(int i):
29
    """
30
    >>> test_int(0)
31
    False
32
    >>> test_int(1)
33
    True
34
    """
35
    if i:
36
        return True
37
    else:
38
        return False
39

40
def test_short(short i):
41
    """
42
    >>> test_short(0)
43
    False
44
    >>> test_short(1)
45
    True
46
    """
47
    if i:
48
        return True
49
    else:
50
        return False
51

52
def test_Py_ssize_t(Py_ssize_t i):
53
    """
54
    >>> test_Py_ssize_t(0)
55
    False
56
    >>> test_Py_ssize_t(1)
57
    True
58
    """
59
    if i:
60
        return True
61
    else:
62
        return False
63

64
cdef class TestExtInt:
65
    cdef int i
66
    def __init__(self, i): self.i = i
67

68
def test_attr_int(TestExtInt e):
69
    """
70
    >>> test_attr_int(TestExtInt(0))
71
    False
72
    >>> test_attr_int(TestExtInt(1))
73
    True
74
    """
75
    if e.i:
76
        return True
77
    else:
78
        return False
79

80
ctypedef union _aux:
81
    size_t i
82
    void *p
83

84
cdef class TestExtPtr:
85
    cdef void* p
86
    def __init__(self, int i):
87
        cdef _aux aux
88
        aux.i = i
89
        self.p = aux.p
90

91
def test_attr_ptr(TestExtPtr e):
92
    """
93
    >>> test_attr_ptr(TestExtPtr(0))
94
    False
95
    >>> test_attr_ptr(TestExtPtr(1))
96
    True
97
    """
98
    if e.p:
99
        return True
100
    else:
101
        return False
102

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.