1# ticket: t582 2 3cimport cython 4 5################################################################################ 6## plain char* 7 8@cython.test_assert_path_exists('//SingleAssignmentNode') 9#@cython.test_fail_if_path_exists('//SingleAssignmentNode//CoerceFromPyTypeNode') 10def charptr_equals_literal(char* s): 11 """ 12 >>> charptr_equals_literal('abc'.encode('ASCII')) 13 True 14 >>> charptr_equals_literal('aabc'.encode('ASCII')) 15 False 16 >>> charptr_equals_literal('abcx'.encode('ASCII')) 17 False 18 >>> charptr_equals_literal('bcx'.encode('ASCII')) 19 False 20 """ 21 cdef bint result = (s == b"abc") 22 return result 23 24def charptr_gt_literal(char* s): 25 """ 26 >>> charptr_gt_literal('abc'.encode('ASCII')) 27 False 28 >>> charptr_gt_literal('aabc'.encode('ASCII')) 29 False 30 >>> charptr_gt_literal('abcx'.encode('ASCII')) 31 True 32 >>> charptr_gt_literal('bcx'.encode('ASCII')) 33 True 34 """ 35 cdef bint result = (s > b"abc") 36 return result 37 38def charptr_lt_literal(char* s): 39 """ 40 >>> charptr_lt_literal('abc'.encode('ASCII')) 41 False 42 >>> charptr_lt_literal('aabc'.encode('ASCII')) 43 True 44 >>> charptr_lt_literal('abcx'.encode('ASCII')) 45 False 46 >>> charptr_lt_literal('bcx'.encode('ASCII')) 47 False 48 """ 49 cdef bint result = (s < b"abc") 50 return result 51 52def charptr_ge_literal(char* s): 53 """ 54 >>> charptr_ge_literal('abc'.encode('ASCII')) 55 True 56 >>> charptr_ge_literal('aabc'.encode('ASCII')) 57 False 58 >>> charptr_ge_literal('abcx'.encode('ASCII')) 59 True 60 >>> charptr_ge_literal('bcx'.encode('ASCII')) 61 True 62 """ 63 cdef bint result = (s >= b"abc") 64 return result 65 66def charptr_le_literal(char* s): 67 """ 68 >>> charptr_le_literal('abc'.encode('ASCII')) 69 True 70 >>> charptr_le_literal('aabc'.encode('ASCII')) 71 True 72 >>> charptr_le_literal('abcx'.encode('ASCII')) 73 False 74 >>> charptr_le_literal('bcx'.encode('ASCII')) 75 False 76 """ 77 cdef bint result = (s <= b"abc") 78 return result 79 80 81################################################################################ 82## slices 83 84@cython.test_assert_path_exists('//SingleAssignmentNode') 85#FIXME: optimise me! 86#@cython.test_fail_if_path_exists('//SingleAssignmentNode//CoerceFromPyTypeNode') 87def slice_equals_literal(char* s): 88 """ 89 >>> slice_equals_literal('abc'.encode('ASCII')) 90 True 91 >>> slice_equals_literal('aabc'.encode('ASCII')) 92 False 93 >>> slice_equals_literal('abcx'.encode('ASCII')) 94 True 95 >>> slice_equals_literal('bcx'.encode('ASCII')) 96 False 97 """ 98 cdef bint result = (s[:3] == b"abc") 99 return result 100 101def slice_gt_literal(char* s): 102 """ 103 >>> slice_gt_literal('abc'.encode('ASCII')) 104 False 105 >>> slice_gt_literal('aabc'.encode('ASCII')) 106 False 107 >>> slice_gt_literal('abcx'.encode('ASCII')) 108 False 109 >>> slice_gt_literal('bcx'.encode('ASCII')) 110 True 111 """ 112 cdef bint result = (s[:3] > b"abc") 113 return result 114 115def slice_lt_literal(char* s): 116 """ 117 >>> slice_lt_literal('abc'.encode('ASCII')) 118 False 119 >>> slice_lt_literal('aabc'.encode('ASCII')) 120 True 121 >>> slice_lt_literal('abcx'.encode('ASCII')) 122 False 123 >>> slice_lt_literal('bcx'.encode('ASCII')) 124 False 125 """ 126 cdef bint result = (s[:3] < b"abc") 127 return result 128 129def slice_ge_literal(char* s): 130 """ 131 >>> slice_ge_literal('abc'.encode('ASCII')) 132 True 133 >>> slice_ge_literal('aabc'.encode('ASCII')) 134 False 135 >>> slice_ge_literal('abcx'.encode('ASCII')) 136 True 137 >>> slice_ge_literal('bcx'.encode('ASCII')) 138 True 139 """ 140 cdef bint result = (s[:3] >= b"abc") 141 return result 142 143def slice_le_literal(char* s): 144 """ 145 >>> slice_le_literal('abc'.encode('ASCII')) 146 True 147 >>> slice_le_literal('aabc'.encode('ASCII')) 148 True 149 >>> slice_le_literal('abcx'.encode('ASCII')) 150 True 151 >>> slice_le_literal('bcx'.encode('ASCII')) 152 False 153 """ 154 cdef bint result = (s[:3] <= b"abc") 155 return result 156