Generated by Cython 0.29.32
Yellow lines hint at Python interaction.
Click on a line that starts with a "+
" to see the C code that Cython generated for it.
Raw output: _binary_tree.c
+01: def test_binary_tree():
/* Python wrapper */ static PyObject *__pyx_pw_2bp_12_binary_tree_1test_binary_tree(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused); /*proto*/ static PyMethodDef __pyx_mdef_2bp_12_binary_tree_1test_binary_tree = {"test_binary_tree", (PyCFunction)__pyx_pw_2bp_12_binary_tree_1test_binary_tree, METH_NOARGS, 0}; static PyObject *__pyx_pw_2bp_12_binary_tree_1test_binary_tree(PyObject *__pyx_self, CYTHON_UNUSED PyObject *unused) { PyObject *__pyx_r = 0; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("test_binary_tree (wrapper)", 0); __pyx_r = __pyx_pf_2bp_12_binary_tree_test_binary_tree(__pyx_self); /* function exit code */ __Pyx_RefNannyFinishContext(); return __pyx_r; } static PyObject *__pyx_pf_2bp_12_binary_tree_test_binary_tree(CYTHON_UNUSED PyObject *__pyx_self) { PyObject *__pyx_r = NULL; __Pyx_RefNannyDeclarations __Pyx_RefNannySetupContext("test_binary_tree", 0); /* … */ /* function exit code */ __pyx_r = Py_None; __Pyx_INCREF(Py_None); goto __pyx_L0; __pyx_L1_error:; __Pyx_AddTraceback("bp._binary_tree.test_binary_tree", __pyx_clineno, __pyx_lineno, __pyx_filename); __pyx_r = NULL; __pyx_L0:; __Pyx_XGIVEREF(__pyx_r); __Pyx_RefNannyFinishContext(); return __pyx_r; } /* … */ __pyx_t_1 = PyCFunction_NewEx(&__pyx_mdef_2bp_12_binary_tree_1test_binary_tree, NULL, __pyx_n_s_bp__binary_tree); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test_binary_tree, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; __pyx_t_1 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_GOTREF(__pyx_t_1); if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_1) < 0) __PYX_ERR(0, 1, __pyx_L1_error) __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0; /* … */ __pyx_codeobj__22 = (PyObject*)__Pyx_PyCode_New(0, 0, 0, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_bp__binary_tree_pyx, __pyx_n_s_test_binary_tree, 1, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__22)) __PYX_ERR(0, 1, __pyx_L1_error)
02: # wikipedia example, https://en.wikipedia.org/wiki/Binary_tree#Arrays
03:
04: # root test
+05: assert bt_is_root(0)
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!(__pyx_f_2bp_12_binary_tree_bt_is_root(0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 5, __pyx_L1_error) } } #endif
+06: assert bt_left_child(0) == 1
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_left_child(0) == 1) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 6, __pyx_L1_error) } } #endif
+07: assert bt_right_child(0) == 2
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_right_child(0) == 2) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 7, __pyx_L1_error) } } #endif
+08: assert bt_node_from_left(0, 0) == 0
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_node_from_left(0, 0) == 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 8, __pyx_L1_error) } } #endif
+09: assert bt_offset_from_left(0) == 0
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_left(0) == 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 9, __pyx_L1_error) } } #endif
+10: assert bt_offset_from_right(0) == 0
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_right(0) == 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 10, __pyx_L1_error) } } #endif
+11: assert bt_left_leaf(0, 3) == 7
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_left_leaf(0, 3) == 7) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 11, __pyx_L1_error) } } #endif
+12: assert bt_right_leaf(0, 3) == 14
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_right_leaf(0, 3) == 14) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 12, __pyx_L1_error) } } #endif
13:
14: # lvl 1
+15: assert bt_is_left_child(1)
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!(__pyx_f_2bp_12_binary_tree_bt_is_left_child(1) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 15, __pyx_L1_error) } } #endif
+16: assert bt_is_right_child(2)
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!(__pyx_f_2bp_12_binary_tree_bt_is_right_child(2) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 16, __pyx_L1_error) } } #endif
+17: assert bt_left_child(1) == 3
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_left_child(1) == 3) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 17, __pyx_L1_error) } } #endif
+18: assert bt_right_child(1) == 4
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_right_child(1) == 4) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 18, __pyx_L1_error) } } #endif
+19: assert bt_left_child(2) == 5
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_left_child(2) == 5) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 19, __pyx_L1_error) } } #endif
+20: assert bt_right_child(2) == 6
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_right_child(2) == 6) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 20, __pyx_L1_error) } } #endif
+21: assert bt_parent(1) == 0
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_parent(1) == 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 21, __pyx_L1_error) } } #endif
+22: assert bt_parent(2) == 0
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_parent(2) == 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 22, __pyx_L1_error) } } #endif
+23: assert bt_right_sibling(1) == 2
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_right_sibling(1) == 2) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 23, __pyx_L1_error) } } #endif
+24: assert bt_left_sibling(2) == 1
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_left_sibling(2) == 1) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 24, __pyx_L1_error) } } #endif
+25: assert bt_node_from_left(0, 1) == 1
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_node_from_left(0, 1) == 1) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 25, __pyx_L1_error) } } #endif
+26: assert bt_node_from_left(1, 1) == 2
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_node_from_left(1, 1) == 2) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 26, __pyx_L1_error) } } #endif
+27: assert bt_offset_from_left(1) == 0
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_left(1) == 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 27, __pyx_L1_error) } } #endif
+28: assert bt_offset_from_left(2) == 1
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_left(2) == 1) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 28, __pyx_L1_error) } } #endif
+29: assert bt_offset_from_right(1) == 1
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_right(1) == 1) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 29, __pyx_L1_error) } } #endif
+30: assert bt_offset_from_right(2) == 0
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_right(2) == 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 30, __pyx_L1_error) } } #endif
+31: assert bt_left_leaf(1, 3) == 7
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_left_leaf(1, 3) == 7) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 31, __pyx_L1_error) } } #endif
+32: assert bt_left_leaf(2, 3) == 11
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_left_leaf(2, 3) == 11) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 32, __pyx_L1_error) } } #endif
+33: assert bt_right_leaf(1, 3) == 10
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_right_leaf(1, 3) == 10) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 33, __pyx_L1_error) } } #endif
+34: assert bt_right_leaf(2, 3) == 14
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_right_leaf(2, 3) == 14) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 34, __pyx_L1_error) } } #endif
35:
36: # lvl 2
+37: assert bt_is_left_child(3)
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!(__pyx_f_2bp_12_binary_tree_bt_is_left_child(3) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 37, __pyx_L1_error) } } #endif
+38: assert bt_is_right_child(4)
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!(__pyx_f_2bp_12_binary_tree_bt_is_right_child(4) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 38, __pyx_L1_error) } } #endif
+39: assert bt_is_left_child(5)
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!(__pyx_f_2bp_12_binary_tree_bt_is_left_child(5) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 39, __pyx_L1_error) } } #endif
+40: assert bt_is_right_child(6)
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!(__pyx_f_2bp_12_binary_tree_bt_is_right_child(6) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 40, __pyx_L1_error) } } #endif
+41: assert bt_parent(3) == 1
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_parent(3) == 1) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 41, __pyx_L1_error) } } #endif
+42: assert bt_parent(4) == 1
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_parent(4) == 1) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 42, __pyx_L1_error) } } #endif
+43: assert bt_parent(5) == 2
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_parent(5) == 2) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 43, __pyx_L1_error) } } #endif
+44: assert bt_parent(6) == 2
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_parent(6) == 2) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 44, __pyx_L1_error) } } #endif
+45: assert bt_right_sibling(3) == 4
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_right_sibling(3) == 4) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 45, __pyx_L1_error) } } #endif
+46: assert bt_left_sibling(4) == 3
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_left_sibling(4) == 3) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 46, __pyx_L1_error) } } #endif
+47: assert bt_right_sibling(5) == 6
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_right_sibling(5) == 6) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 47, __pyx_L1_error) } } #endif
+48: assert bt_left_sibling(6) == 5
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_left_sibling(6) == 5) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 48, __pyx_L1_error) } } #endif
+49: assert bt_node_from_left(0, 2) == 3
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_node_from_left(0, 2) == 3) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 49, __pyx_L1_error) } } #endif
+50: assert bt_node_from_left(1, 2) == 4
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_node_from_left(1, 2) == 4) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 50, __pyx_L1_error) } } #endif
+51: assert bt_node_from_left(2, 2) == 5
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_node_from_left(2, 2) == 5) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 51, __pyx_L1_error) } } #endif
+52: assert bt_node_from_left(3, 2) == 6
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_node_from_left(3, 2) == 6) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 52, __pyx_L1_error) } } #endif
+53: assert bt_offset_from_left(3) == 0
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_left(3) == 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 53, __pyx_L1_error) } } #endif
+54: assert bt_offset_from_left(4) == 1
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_left(4) == 1) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 54, __pyx_L1_error) } } #endif
+55: assert bt_offset_from_left(5) == 2
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_left(5) == 2) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 55, __pyx_L1_error) } } #endif
+56: assert bt_offset_from_left(6) == 3
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_left(6) == 3) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 56, __pyx_L1_error) } } #endif
+57: assert bt_offset_from_right(3) == 3
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_right(3) == 3) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 57, __pyx_L1_error) } } #endif
+58: assert bt_offset_from_right(4) == 2
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_right(4) == 2) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 58, __pyx_L1_error) } } #endif
+59: assert bt_offset_from_right(5) == 1
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_right(5) == 1) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 59, __pyx_L1_error) } } #endif
+60: assert bt_offset_from_right(6) == 0
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_right(6) == 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 60, __pyx_L1_error) } } #endif
+61: assert bt_left_leaf(3, 3) == 7
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_left_leaf(3, 3) == 7) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 61, __pyx_L1_error) } } #endif
+62: assert bt_left_leaf(4, 3) == 9
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_left_leaf(4, 3) == 9) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 62, __pyx_L1_error) } } #endif
+63: assert bt_left_leaf(5, 3) == 11
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_left_leaf(5, 3) == 11) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 63, __pyx_L1_error) } } #endif
+64: assert bt_left_leaf(6, 3) == 13
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_left_leaf(6, 3) == 13) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 64, __pyx_L1_error) } } #endif
+65: assert bt_right_leaf(3, 3) == 8
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_right_leaf(3, 3) == 8) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 65, __pyx_L1_error) } } #endif
+66: assert bt_right_leaf(4, 3) == 10
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_right_leaf(4, 3) == 10) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 66, __pyx_L1_error) } } #endif
+67: assert bt_right_leaf(5, 3) == 12
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_right_leaf(5, 3) == 12) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 67, __pyx_L1_error) } } #endif
+68: assert bt_right_leaf(6, 3) == 14
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_right_leaf(6, 3) == 14) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 68, __pyx_L1_error) } } #endif
69:
70: # lvl 3
+71: assert bt_offset_from_left(7) == 0
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_left(7) == 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 71, __pyx_L1_error) } } #endif
+72: assert bt_offset_from_left(8) == 1
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_left(8) == 1) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 72, __pyx_L1_error) } } #endif
+73: assert bt_offset_from_left(9) == 2
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_left(9) == 2) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 73, __pyx_L1_error) } } #endif
+74: assert bt_offset_from_left(10) == 3
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_left(10) == 3) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 74, __pyx_L1_error) } } #endif
+75: assert bt_offset_from_left(11) == 4
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_left(11) == 4) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 75, __pyx_L1_error) } } #endif
+76: assert bt_offset_from_left(12) == 5
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_left(12) == 5) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 76, __pyx_L1_error) } } #endif
+77: assert bt_offset_from_left(13) == 6
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_left(13) == 6) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 77, __pyx_L1_error) } } #endif
+78: assert bt_offset_from_left(14) == 7
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_left(14) == 7) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 78, __pyx_L1_error) } } #endif
+79: assert bt_offset_from_right(7) == 7
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_right(7) == 7) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 79, __pyx_L1_error) } } #endif
+80: assert bt_offset_from_right(8) == 6
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_right(8) == 6) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 80, __pyx_L1_error) } } #endif
+81: assert bt_offset_from_right(9) == 5
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_right(9) == 5) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 81, __pyx_L1_error) } } #endif
+82: assert bt_offset_from_right(10) == 4
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_right(10) == 4) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 82, __pyx_L1_error) } } #endif
+83: assert bt_offset_from_right(11) == 3
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_right(11) == 3) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 83, __pyx_L1_error) } } #endif
+84: assert bt_offset_from_right(12) == 2
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_right(12) == 2) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 84, __pyx_L1_error) } } #endif
+85: assert bt_offset_from_right(13) == 1
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_right(13) == 1) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 85, __pyx_L1_error) } } #endif
+86: assert bt_offset_from_right(14) == 0
#ifndef CYTHON_WITHOUT_ASSERTIONS if (unlikely(!Py_OptimizeFlag)) { if (unlikely(!((__pyx_f_2bp_12_binary_tree_bt_offset_from_right(14) == 0) != 0))) { PyErr_SetNone(PyExc_AssertionError); __PYX_ERR(0, 86, __pyx_L1_error) } } #endif
87: