no message
parent
3b3a50a07c
commit
2c6edbbb54
|
@ -0,0 +1,120 @@
|
||||||
|
/*
|
||||||
|
* @Author: your name
|
||||||
|
* @Date: 2021-10-09 10:03:45
|
||||||
|
* @LastEditTime: 2021-12-01 14:48:38
|
||||||
|
* @LastEditors: your name
|
||||||
|
* @Description: 打开koroFileHeader查看配置 进行设置: https://github.com/OBKoro1/koro1FileHeader/wiki/%E9%85%8D%E7%BD%AE
|
||||||
|
* @FilePath: \cpp11\template.cpp
|
||||||
|
*/
|
||||||
|
#include "iostream"
|
||||||
|
#include <vector>
|
||||||
|
#include "pattern/ringbuffer.hpp"
|
||||||
|
#include <tuple>
|
||||||
|
#include <math.h>
|
||||||
|
|
||||||
|
using namespace std;
|
||||||
|
|
||||||
|
|
||||||
|
void TestShuffle(){
|
||||||
|
int in[1024];
|
||||||
|
for(int j = 0;j < 1024;j++){
|
||||||
|
in[j] = j;
|
||||||
|
}
|
||||||
|
int out[1024];
|
||||||
|
RingBuffer<int> ring(1024,false);
|
||||||
|
int size = 0;
|
||||||
|
for(int i = 0;i < 10;i++){
|
||||||
|
int tmp = rand();
|
||||||
|
std::cout<<std::endl<<"----------------------------------"<<"\r\n";
|
||||||
|
switch (tmp%3)
|
||||||
|
{
|
||||||
|
case 1:
|
||||||
|
size = rand()%1024;
|
||||||
|
ring.Add(in,size);
|
||||||
|
|
||||||
|
std::cout<<"add "<<size<<" x.Length():" << ring.Length() << " "<<std::endl;
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
size = rand()%1024;
|
||||||
|
ring.TakeBack(out,size);
|
||||||
|
|
||||||
|
std::cout<<"take back"<<size<<" x.Length():" << ring.Length() << " "<<std::endl;
|
||||||
|
|
||||||
|
break;
|
||||||
|
case 0:
|
||||||
|
size = rand()%1024;
|
||||||
|
ring.TakeFront(out,size);
|
||||||
|
|
||||||
|
std::cout<<"take front"<<size<<" x.Length():" << ring.Length() << " "<<std::endl;
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void TestRingBufferTakeBack(){
|
||||||
|
int in[1024];
|
||||||
|
int out[1024];
|
||||||
|
|
||||||
|
for(int i = 0;i < 1024;i ++){
|
||||||
|
in[i] = i;
|
||||||
|
}
|
||||||
|
RingBuffer<int> x(1024,false);
|
||||||
|
|
||||||
|
for(int i = 0;i < 10;i++){
|
||||||
|
std::cout<<std::endl<<"----------------------------------"<<"\r\n";
|
||||||
|
int ran = rand()%1024;
|
||||||
|
int ret = x.Add(in,ran);
|
||||||
|
std::cout<<"add "<<ran<<" x.Length():" << x.Length() << " "<<std::endl;
|
||||||
|
for(uint32_t i = 0;i < x.Length();i++){
|
||||||
|
// std::cout<<x.At(i) <<" ";
|
||||||
|
}
|
||||||
|
std::cout<<"----------------------------------"<<"\r\n";
|
||||||
|
|
||||||
|
int ran2 = rand()%1024;
|
||||||
|
x.TakeBack(out,ran2);
|
||||||
|
std::cout<<"take "<<ran2<<" x.Length():" << x.Length() << " "<<std::endl;
|
||||||
|
for(uint32_t i = 0;i < x.Length();i++){
|
||||||
|
std::cout<<x.At(i) <<" ";
|
||||||
|
}
|
||||||
|
std::cout<<std::endl<<"----------------------------------"<<"\r\n";
|
||||||
|
}
|
||||||
|
fflush(stdout);
|
||||||
|
}
|
||||||
|
|
||||||
|
void TestRingBufferTakeFront(){
|
||||||
|
int in[1024];
|
||||||
|
int out[1024];
|
||||||
|
|
||||||
|
for(int i = 0;i < 1024;i ++){
|
||||||
|
in[i] = i;
|
||||||
|
}
|
||||||
|
RingBuffer<int> x(1024,true);
|
||||||
|
|
||||||
|
for(int i = 0;i < 10;i++){
|
||||||
|
std::cout<<std::endl<<"\r\n----------------------------------"<<"\r\n";
|
||||||
|
int ran = rand()%1024;
|
||||||
|
int ret = x.Add(in,ran);
|
||||||
|
std::cout<<"add "<<ran<<" x.Length():" << x.Length() << " "<<std::endl;
|
||||||
|
for(uint32_t i = 0;i < x.Length();i++){
|
||||||
|
std::cout<<x.At(i) <<" ";
|
||||||
|
}
|
||||||
|
std::cout<<"\r\n----------------------------------"<<"\r\n";
|
||||||
|
|
||||||
|
int ran2 = rand()%1024;
|
||||||
|
x.TakeFront(out,ran2);
|
||||||
|
std::cout<<"take "<<ran2<<" x.Length():" << x.Length() << " "<<std::endl;
|
||||||
|
for(uint32_t i = 0;i < x.Length();i++){
|
||||||
|
std::cout<<x.At(i) <<" ";
|
||||||
|
}
|
||||||
|
std::cout<<std::endl<<"\r\n----------------------------------"<<"\r\n";
|
||||||
|
}
|
||||||
|
fflush(stdout);
|
||||||
|
}
|
||||||
|
|
||||||
|
int main() {
|
||||||
|
// TestRingBufferTakeBack();
|
||||||
|
TestShuffle();
|
||||||
|
// TestRingBufferTakeFront();
|
||||||
|
}
|
Loading…
Reference in New Issue