40 lines
		
	
	
		
			900 B
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			40 lines
		
	
	
		
			900 B
		
	
	
	
		
			C++
		
	
	
	
#include <gtest/gtest.h>
 | 
						|
 | 
						|
#include <stdio.h>
 | 
						|
#include <stdlib.h>
 | 
						|
 | 
						|
#include "trbtree.h"
 | 
						|
 | 
						|
static int32_t tCmprInteger(const void *p1, const void *p2) {
 | 
						|
  if (*(int *)p1 < *(int *)p2) {
 | 
						|
    return -1;
 | 
						|
  } else if (*(int *)p1 > *(int *)p2) {
 | 
						|
    return 1;
 | 
						|
  }
 | 
						|
  return 0;
 | 
						|
}
 | 
						|
 | 
						|
TEST(trbtreeTest, rbtree_test1) {
 | 
						|
#if 0
 | 
						|
  SRBTree rt;
 | 
						|
  tRBTreeCreate(&rt, tCmprInteger);
 | 
						|
  int a[] = {1, 3, 4, 2, 7, 5, 8};
 | 
						|
 | 
						|
  for (int i = 0; i < sizeof(a) / sizeof(a[0]); i++) {
 | 
						|
    SRBTreeNode *pNode = (SRBTreeNode *)taosMemoryMalloc(sizeof(*pNode) + sizeof(int));
 | 
						|
    *(int *)pNode->payload = a[i];
 | 
						|
 | 
						|
    tRBTreePut(&rt, pNode);
 | 
						|
  }
 | 
						|
 | 
						|
  SRBTreeIter  rti = tRBTreeIterCreate(&rt, 1);
 | 
						|
  SRBTreeNode *pNode = tRBTreeIterNext(&rti);
 | 
						|
  int          la = 0;
 | 
						|
  while (pNode) {
 | 
						|
    GTEST_ASSERT_GT(*(int *)pNode->payload, la);
 | 
						|
    la = *(int *)pNode->payload;
 | 
						|
    // printf("%d\n", la);
 | 
						|
    pNode = tRBTreeIterNext(&rti);
 | 
						|
  }
 | 
						|
#endif
 | 
						|
} |