From c09d2c10d125a60b0ed7af06b1a678bcb7e5408d Mon Sep 17 00:00:00 2001 From: Stefan Behnel Date: Thu, 6 May 2010 08:27:37 +0200 Subject: [PATCH] extended test case --- tests/run/pointers.pyx | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/tests/run/pointers.pyx b/tests/run/pointers.pyx index 384e5d1e..6f7c6992 100644 --- a/tests/run/pointers.pyx +++ b/tests/run/pointers.pyx @@ -2,6 +2,12 @@ cdef char* c_string = b'abcdefg' cdef void* void_ptr = c_string +cdef int i = 42 +cdef int* int_ptr = &i + +cdef float x = 42.2 +cdef float* float_ptr = &x + def compare(): """ >>> compare() @@ -10,29 +16,36 @@ def compare(): True False False + True + True """ print c_string == c_string print c_string == void_ptr print c_string is void_ptr print c_string != void_ptr print c_string is not void_ptr + print void_ptr != int_ptr + print void_ptr != float_ptr def if_tests(): """ >>> if_tests() True + True """ if c_string == void_ptr: print True if c_string != void_ptr: print False + if int_ptr != void_ptr: + print True def bool_binop(): """ >>> bool_binop() True """ - if c_string == void_ptr and c_string == c_string: + if c_string == void_ptr and c_string == c_string and int_ptr != void_ptr and void_ptr != float_ptr: print True def bool_binop_truth(int x): @@ -43,7 +56,7 @@ def bool_binop_truth(int x): >>> bool_binop_truth(0) True """ - if c_string and void_ptr and c_string == c_string: + if c_string and void_ptr and int_ptr and (c_string == c_string or int_ptr != void_ptr): print True - if c_string and x or not void_ptr or x: + if c_string and x or not (void_ptr or int_ptr and float_ptr) or x: print True -- 2.26.2