85 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C++
		
	
	
	
| #include <gtest/gtest.h>
 | |
| #include <stdlib.h>
 | |
| #include <time.h>
 | |
| #include <random>
 | |
| 
 | |
| #include "tarray.h"
 | |
| #include "tcompare.h"
 | |
| /*
 | |
| namespace {
 | |
| 
 | |
| static void remove_batch_test() {
 | |
| SArray* pa = (SArray*)taosArrayInit(4, sizeof(int32_t));
 | |
| 
 | |
| for (int32_t i = 0; i < 20; ++i) {
 | |
|   int32_t a = i;
 | |
|   taosArrayPush(pa, &a);
 | |
| }
 | |
| 
 | |
| SArray* delList = (SArray*)taosArrayInit(4, sizeof(int32_t));
 | |
| taosArrayRemoveBatch(pa, (const int32_t*)TARRAY_GET_START(delList), taosArrayGetSize(delList));
 | |
| EXPECT_EQ(taosArrayGetSize(pa), 20);
 | |
| 
 | |
| int32_t a = 5;
 | |
| taosArrayPush(delList, &a);
 | |
| 
 | |
| taosArrayRemoveBatch(pa, (const int32_t*)TARRAY_GET_START(delList), taosArrayGetSize(delList));
 | |
| EXPECT_EQ(taosArrayGetSize(pa), 19);
 | |
| EXPECT_EQ(*(int*)taosArrayGet(pa, 5), 6);
 | |
| 
 | |
| taosArrayInsert(pa, 5, &a);
 | |
| EXPECT_EQ(taosArrayGetSize(pa), 20);
 | |
| EXPECT_EQ(*(int*)taosArrayGet(pa, 5), 5);
 | |
| 
 | |
| taosArrayClear(delList);
 | |
| 
 | |
| a = 6;
 | |
| taosArrayPush(delList, &a);
 | |
| 
 | |
| a = 9;
 | |
| taosArrayPush(delList, &a);
 | |
| 
 | |
| a = 14;
 | |
| taosArrayPush(delList, &a);
 | |
| taosArrayRemoveBatch(pa, (const int32_t*)TARRAY_GET_START(delList), taosArrayGetSize(delList));
 | |
| EXPECT_EQ(taosArrayGetSize(pa), 17);
 | |
| 
 | |
| taosArrayDestroy(pa);
 | |
| taosArrayDestroy(delList);
 | |
| }
 | |
| }  // namespace
 | |
| 
 | |
| TEST(arrayTest, array_list_test) { remove_batch_test(); }
 | |
| */
 | |
| TEST(arrayTest, array_search_test) {
 | |
|   SArray* pa = (SArray*)taosArrayInit(4, sizeof(int32_t));
 | |
| 
 | |
|   for (int32_t i = 10; i < 20; ++i) {
 | |
|     int32_t a = i;
 | |
|     taosArrayPush(pa, &a);
 | |
|   }
 | |
| 
 | |
|   for (int i = 0; i < 30; i++) {
 | |
|     int32_t  k = i;
 | |
|     int32_t* pRet = (int32_t*)taosArraySearch(pa, &k, compareInt32Val, TD_GE);
 | |
|     int32_t  idx = taosArraySearchIdx(pa, &k, compareInt32Val, TD_GE);
 | |
| 
 | |
|     if (pRet == NULL) {
 | |
|       ASSERT_EQ(idx, -1);
 | |
|     } else {
 | |
|       ASSERT_EQ(taosArrayGet(pa, idx), pRet);
 | |
|     }
 | |
| 
 | |
|     pRet = (int32_t*)taosArraySearch(pa, &k, compareInt32Val, TD_LE);
 | |
|     idx = taosArraySearchIdx(pa, &k, compareInt32Val, TD_LE);
 | |
| 
 | |
|     if (pRet == NULL) {
 | |
|       ASSERT_EQ(idx, -1);
 | |
|     } else {
 | |
|       ASSERT_EQ(taosArrayGet(pa, idx), pRet);
 | |
|     }
 | |
|   }
 | |
| 
 | |
|   taosArrayDestroy(pa);
 | |
| }
 |