#include "rbt.h"
//nodes are compared by memory address by default
-int rbt_default_comparator(void* v_a, void* v_b){
+static int rbt_default_comparator(void* v_a, void* v_b){
uintptr_t a = (intptr_t)v_a;
uintptr_t b = (intptr_t)v_b;
return (a == b ? 0 : (a<b ? -1 : 1 ));
*/
void rbt_delete(rbt_t* tree, void* value);
-
-/**
- * @brief default comparator
- *
- * @param v_a pointer to thing being compared
- * @param v_b thing to which v_a is being compared
- *
- * @return -1, 0, or 1 if v_a's address is <, ==, or > v_b's (respectively)
- */
-int rbt_default_comparator(void* v_a, void* v_b);
#ifdef __cplusplus
}
#endif
mem_release(vals);
mem_release(tree);
}
-
- TEST(Verify_default_comparator){
- CHECK( 1 == rbt_default_comparator((void*)0x8888, (void*)0x4242));
- CHECK( -1 == rbt_default_comparator((void*)0x2a2a, (void*)0x4242));
- CHECK( 0 == rbt_default_comparator((void*)0x8888, (void*)0x8888));
- }
}