📄 utiltest.h
字号:
#pragma once
#include "util\util.h"
#include "util\trace.h"
#include "util\janitor.h"
#include "util\base64.h"
#include "util\bcdcode.h"
#include "noncopyable.h"
class TTTTTTT : stk::noncopyable
{
public:
void func()
{
printf("func!");
}
};
using namespace stk;
class utilSuite : public CxxTest::TestSuite
{
public:
void testBcdCode( void )
{
std::string hex; //for outbut
char str[] = "001122334455667788990";
std::string bcd;
BcdCode::encode(str, bcd);
trace("%s", stk::toHex(bcd.data(), bcd.size(), hex));
std::string ret;
BcdCode::decode(bcd.c_str(), bcd.size(), ret);
if(ret != str)
TS_ASSERT(ret == str);
}
void testJanitor(void)
{
//test operator *
Janitor<int> jan1(new int(10));
trace("%d", *jan1);
trace("%d", *jan1.get());
//test release
delete jan1.release();
Janitor<TTTTTTT> jan2(new TTTTTTT);
//test operator->
jan2->func();
TTTTTTT *holder = new TTTTTTT;
Janitor<TTTTTTT> jan3(holder);
//test orphan
jan3.orphan();
//really usage maybe return holder
delete holder;
//test array
ArrayJanitor<int> jan5(new int[1000]);
for(int i=0; i<1000; i++)
jan5[i] = i;
}
void testBase64()
{
std::string data = "ZGthOyA3Jg==";
size_t len = data.size();
ArrayJanitor<unsigned char> decodeData(Base64::decode((unsigned char *)data.c_str(), &len));
decodeData[len] = '\0';
trace("base64:%s", decodeData.get());
}
void testUtil()
{
char message[] = "asdfasdfasdfsadfsadfsadfasdfasdfasdfasdfasdffasdfasdfsdfsfadfasdfasdfsdaf电话,用户部分,属于No.7信令系统#的第四功能级,它定义了用于电话接续的各类局间信号,这些信号通过消息传递部分MTP传送电话标记电话网中#的电话信号消息的标记如下图所示.";
size_t length = sizeof(message);
char *begin = message;
char *end = message+length-1;
enum {PART_SIZE = 140};
char output[PART_SIZE*2+1];
char *prevBegin = message;
while(begin < end)
{
size_t howmany = PART_SIZE;
stk::takeUCSChar(begin, end, howmany, output);
output[begin-prevBegin] = '\0';
prevBegin = begin;
stk::trace("%s\n", output);
}
}
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -