1def single_py(a, b): 2 """ 3 >>> single_py(1, 2) 4 True 5 >>> single_py(2, 1) 6 False 7 """ 8 return a < b 9 10def cascaded_py(a, b, c): 11 """ 12 >>> cascaded_py(1, 2, 3) 13 True 14 >>> cascaded_py(1, 2, -1) 15 False 16 >>> cascaded_py(10, 2, 3) 17 False 18 """ 19 return a < b < c 20 21def single_c(int a, int b): 22 """ 23 >>> single_c(1, 2) 24 True 25 >>> single_c(2, 1) 26 False 27 """ 28 return a < b 29 30def cascaded_c(double a, double b, double c): 31 """ 32 >>> cascaded_c(1, 2, 3) 33 True 34 >>> cascaded_c(1, 2, -1) 35 False 36 >>> cascaded_c(10, 2, 3) 37 False 38 """ 39 return a < b < c 40 41def cascaded_mix_pyleft(a, double b, double c): 42 """ 43 >>> cascaded_mix_pyleft(1, 2, 3) 44 True 45 >>> cascaded_mix_pyleft(1, 2, -1) 46 False 47 >>> cascaded_mix_pyleft(10, 2, 3) 48 False 49 """ 50 return a < b < c 51 52def cascaded_mix_pyright(double a, double b, c): 53 """ 54 >>> cascaded_mix_pyright(1, 2, 3) 55 True 56 >>> cascaded_mix_pyright(1, 2, -1) 57 False 58 >>> cascaded_mix_pyright(10, 2, 3) 59 False 60 """ 61 return a < b < c 62 63def typed_cmp(list L): 64 """ 65 >>> typed_cmp([1,2,3]) 66 False 67 False 68 False 69 False 70 """ 71 print L is Ellipsis 72 print Ellipsis is L 73 print 1 == L 74 print L == 1.5 75 76def pointer_cmp(): 77 """ 78 >>> pointer_cmp() 79 True 80 False 81 True 82 """ 83 cdef int* a = NULL 84 cdef double* b = NULL 85 cdef double** c = NULL 86 print a is NULL 87 print b is not NULL 88 print c == NULL 89 90def c_cmp(double a, int b, long c): 91 """ 92 >>> c_cmp(1, 2, 3) 93 True 94 >>> c_cmp(1.5, 2, 2) 95 True 96 >>> c_cmp(1.5, 2, 0) 97 False 98 >>> c_cmp(1, 1, 3) 99 False 100 """ 101 return a < b <= c 102