41#ifdef PB_DS_CLASS_C_DEC
48assert_valid(
bool strictly_binomial,
const char* __file,
int __line)
const
50 base_type::assert_valid(__file, __line);
51 assert_node_consistent(base_type::m_p_root, strictly_binomial,
true,
53 assert_max(__file, __line);
59assert_max(
const char* __file,
int __line)
const
63 PB_DS_DEBUG_VERIFY(base_type::parent(m_p_max) == 0);
64 for (const_iterator it = base_type::begin(); it != base_type::end(); ++it)
65 PB_DS_DEBUG_VERIFY(!Cmp_Fn::operator()(m_p_max->m_value,
72assert_node_consistent(node_const_pointer p_nd,
bool strictly_binomial,
73 bool increasing,
const char* __file,
int __line)
const
75 PB_DS_DEBUG_VERIFY(increasing || strictly_binomial);
76 base_type::assert_node_consistent(p_nd,
false, __file, __line);
79 PB_DS_DEBUG_VERIFY(p_nd->m_metadata == base_type::degree(p_nd));
80 PB_DS_DEBUG_VERIFY(base_type::size_under_node(p_nd) ==
81 static_cast<size_type
>(1 << p_nd->m_metadata));
82 assert_node_consistent(p_nd->m_p_next_sibling, strictly_binomial, increasing,
84 assert_node_consistent(p_nd->m_p_l_child,
true,
false, __file, __line);
85 if (p_nd->m_p_next_sibling != 0)
89 if (strictly_binomial)
90 PB_DS_DEBUG_VERIFY(p_nd->m_metadata
91 < p_nd->m_p_next_sibling->m_metadata);
93 PB_DS_DEBUG_VERIFY(p_nd->m_metadata
94 <= p_nd->m_p_next_sibling->m_metadata);
97 PB_DS_DEBUG_VERIFY(p_nd->m_metadata
98 > p_nd->m_p_next_sibling->m_metadata);