⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 utiltest.h

📁 C++ patterns设计模式
💻 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 + -