コード例 #1
0
ファイル: test_varstring.cpp プロジェクト: allenbo/common
int main() {
    // test for small append
    std::string str1 = "abc";
    std::string str2 = "def";
    const char* str3 = "efg";
    char c4 = 'h';
    const char* str5 = "ijklmn";

    VarString vs1;
    vs1.append(str1).append(str2).append(str3).append(c4).append(str5, 2);
    assert(vs1.toString() == str1 + str2 + str3 + c4 + "ij");

    // test for massive append
    std::string answer = "";
    int round = 100;
    int min = 200;
    int max = 2000;

    int round_id = 0;
    VarString vs2;
    while(round_id < round) {
        std::string str;
        if (round_id % 2) {
            str = random_string(rand() % (max - min) + min); 
        } else {
            str = random_string(rand() % (min - 10) + 10);
        }
        vs2.append(str); 
        answer += str;
        round_id ++;
    }

    assert(vs2.toString() == answer);


    // test for other function
    {
        std::string str1 = random_string(10);
        std::string str2 = str1.substr(0, str1.size() - 1);
        VarString vs;
        vs.append(str1);
        vs.drop();
        assert(vs.toString() == str2);
        vs.clear();

        vs.append(str1);
        int len = 5;
        std::string str3 = str1.substr(0, str1.size() - len);
        vs.drop(len);
        assert(vs.toString() == str3);
    }

    std::cout << VarString::format("This is an integer %d", 2) << std::endl;

}