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

📄 string_test.cpp

📁 著名的 helix realplayer 基于手机 symbian 系统的 播放器全套源代码
💻 CPP
📖 第 1 页 / 共 5 页
字号:
                              &result, pStr));
        }
        else ret = true;
    }

    return ret;
}

bool HLXStringTest::HandleAppendTo1Cmd(const UTVector<UTString>& info)
{
    bool ret = true;
    CHXString* pDest = GetStringObj(info[1]);
    CHXString* pSrc = GetStringObj(info[2]);

    if (!pDest)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[1]));
        ret = false;
    }
    if (!pSrc)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[2]));
        ret = false;
    }

    if (ret)
    {
        const CHXString& result = (*pDest += *pSrc);
        if (&result != pDest)
        {
            DPRINTF(D_ERROR, ("operator=(const CHXString&) didn't return object: got %p expected %p\n",
                              &result, pDest));
            ret = false;
        }
    }

    return ret;
}

bool HLXStringTest::HandleAppendTo2Cmd(const UTVector<UTString>& info)
{
    bool ret = true;
    CHXString* pStr = GetStringObj(info[1]);

    if (!pStr)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[1]));
    }
    else
    {
        const CHXString& result = (*pStr += *((const char*)info[2]));
        if (&result != pStr)
        {
            DPRINTF(D_ERROR, ("operator=(const CHXString&) didn't return object: got %p expected %p\n",
                              &result, pStr));
            ret = false;
        }
    }
    return ret;
}

bool HLXStringTest::HandleAppendTo3Cmd(const UTVector<UTString>& info)
{
    bool ret = true;
    CHXString* pStr = GetStringObj(info[1]);

    if (!pStr)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[1]));
    }
    else
    {
        const CHXString& result = (*pStr += (const char*)info[2]);
        if (&result != pStr)
        {
            DPRINTF(D_ERROR, ("operator=(const CHXString&) didn't return object: got %p expected %p\n",
                              &result, pStr));
            ret = false;
        }
    }

    return ret;
}

bool HLXStringTest::HandleAdd1Cmd(const UTVector<UTString>& info)
{
    bool ret = true;
    CHXString* pStr1 = GetStringObj(info[1]);
    CHXString* pStr2 = GetStringObj(info[2]);

    if (!pStr1)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[1]));
        ret = false;
    }
    if (!pStr2)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[2]));
        ret = false;
    }

    if (ret)
    {
        CHXString got = *pStr1 + *pStr2;
        if (strcmp (got, (const char*)info[3]) != 0)
        {
            DPRINTF(D_ERROR, ("Got \"%s\" expected \"%s\"\n",
                              (const char*)got,
                              (const char*)info[3]));
            ret = false;
        }
    }

    return ret;
}

bool HLXStringTest::HandleAdd2Cmd(const UTVector<UTString>& info)
{
    bool ret = true;
    CHXString* pStr1 = GetStringObj(info[1]);

    if (!pStr1)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[1]));
        ret = false;
    }

    if (ret)
    {
        CHXString got = *pStr1 + *((const char*)info[2]);
        if (strcmp (got, (const char*)info[3]) != 0)
        {
            DPRINTF(D_ERROR, ("Got \"%s\" expected \"%s\"\n",
                              (const char*)got,
                              (const char*)info[3]));
            ret = false;
        }
    }

    return ret;
}


bool HLXStringTest::HandleAdd3Cmd(const UTVector<UTString>& info)
{
    bool ret = true;
    CHXString* pStr2 = GetStringObj(info[2]);

    if (!pStr2)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[2]));
        ret = false;
    }

    if (ret)
    {
        CHXString got = *((const char*)info[1]) + *pStr2;
        if (strcmp (got, (const char*)info[3]) != 0)
        {
            DPRINTF(D_ERROR, ("Got \"%s\" expected \"%s\"\n",
                              (const char*)got,
                              (const char*)info[3]));
            ret = false;
        }
    }

    return ret;
}


bool HLXStringTest::HandleAdd4Cmd(const UTVector<UTString>& info)
{
    bool ret = true;
    CHXString* pStr1 = GetStringObj(info[1]);

    if (!pStr1)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[1]));
        ret = false;
    }

    if (ret)
    {
        CHXString got = *pStr1 + (const char*)info[2];
        if (strcmp (got, (const char*)info[3]) != 0)
        {
            DPRINTF(D_ERROR, ("Got \"%s\" expected \"%s\"\n",
                              (const char*)got,
                              (const char*)info[3]));
            ret = false;
        }
    }

    return ret;
}


bool HLXStringTest::HandleAdd5Cmd(const UTVector<UTString>& info)
{
    bool ret = true;
    CHXString* pStr2 = GetStringObj(info[2]);

    if (!pStr2)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[2]));
        ret = false;
    }

    if (ret)
    {
        CHXString got = (const char*)info[1] + *pStr2;
        if (strcmp (got, (const char*)info[3]) != 0)
        {
            DPRINTF(D_ERROR, ("Got \"%s\" expected \"%s\"\n",
                              (const char*)got,
                              (const char*)info[3]));
            ret = false;
        }
    }

    return ret;
}


bool HLXStringTest::HandleCenterCmd(const UTVector<UTString>& info)
{
    bool ret = false;
    CHXString* pStr = GetStringObj(info[1]);
    int len;

    if (!pStr)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[1]));
    }
    else if (!UTParamUtil::GetInt(info[2], len))
    {
	DPRINTF(D_ERROR, ("Failed to convert parameters\n"));
    }
    else
    {
        pStr->Center(len);
        ret = true;
    }

    return ret;
}

bool HLXStringTest::HandleCompareCmd(const UTVector<UTString>& info)
{
    bool ret = false;
    CHXString* pStr = GetStringObj(info[1]);
    int expected = -9999;
    bool bNumberExpected = (info[3] != "-" && info[3] != "+");

    if (!pStr)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[1]));
    }
    else if (bNumberExpected && !UTParamUtil::GetInt(info[3], expected))
    {
	DPRINTF(D_ERROR, ("Failed to convert parameters\n"));
    }
    else
    {
        INT32 got = pStr->Compare(info[2]);
        if ((info[3] == "+" && got > 0) ||
            (info[3] == "-" && got < 0) ||
            (bNumberExpected && got == expected)) ret = true;
        else DPRINTF(D_ERROR, ("Got %d expected %s\n",
                               got, (const char*)info[3]));
    }

    return ret;
}

bool HLXStringTest::HandleCompareNoCaseCmd(const UTVector<UTString>& info)
{
    bool ret = false;
    CHXString* pStr = GetStringObj(info[1]);
    int expected = -9999;
    bool bNumberExpected = (info[3] != "-" && info[3] != "+");

    if (!pStr)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[1]));
    }
    else if (bNumberExpected && !UTParamUtil::GetInt(info[3], expected))
    {
	DPRINTF(D_ERROR, ("Failed to convert parameters\n"));
    }
    else
    {
        INT32 got = pStr->CompareNoCase(info[2]);
        if ((info[3] == "+" && got > 0) ||
            (info[3] == "-" && got < 0) ||
            (bNumberExpected && got == expected)) ret = true;
        else DPRINTF(D_ERROR, ("Got %d expected %s\n",
                               got, (const char*)info[3]));
    }

    return ret;
}

bool HLXStringTest::HandleMidCmd(const UTVector<UTString>& info)
{
    bool ret = true;
    CHXString* pStr = GetStringObj(info[1]);
    int index;
    const char* expected = NULL;
    int length = -9999;

    if (!pStr)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[1]));
        ret = false;
    }
    else if (!UTParamUtil::GetInt(info[2], index))
    {
	DPRINTF(D_ERROR, ("Failed to convert parameters\n"));
        ret = false;
    }
    else if (info.Nelements() == 4)
    {
        expected = (const char*)info[3];
    }
    else if (info.Nelements() == 5)
    {
        if (!UTParamUtil::GetInt(info[3], length))
        {
            DPRINTF(D_ERROR, ("Failed to convert parameters\n"));
            ret = false;
        }
        else expected = (const char*)info[4];
    }
    else
    {
        DPRINTF(D_ERROR, ("Bad number of arguments: %ld\n",
                          (long)info.Nelements()));
        ret = false;
    }

    if (ret)
    {
        CHXString got =
            (length == -9999 ? pStr->Mid(index) : pStr->Mid(index, length));
        if (strcmp(got, expected) != 0)
        {
            DPRINTF(D_ERROR, ("Got \"%s\" expected \"%s\"\n",
                              (const char*)got,
                              expected));
            ret = false;
        }
    }

    return ret;
}

bool HLXStringTest::HandleLeftCmd(const UTVector<UTString>& info)
{
    bool ret = true;
    CHXString* pStr = GetStringObj(info[1]);
    const char* expected = (const char*)info[3];
    int length = -9999;

    if (!pStr)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[1]));
        ret = false;
    }
    else if (!UTParamUtil::GetInt(info[2], length))
    {
	DPRINTF(D_ERROR, ("Failed to convert parameters\n"));
        ret = false;
    }
    else
    {
        CHXString got = pStr->Left(length);
        if (strcmp(got, expected) != 0)
        {
            DPRINTF(D_ERROR, ("Got \"%s\" expected \"%s\"\n",
                              (const char*)got,
                              expected));
            ret = false;
        }
    }

    return ret;
}


bool HLXStringTest::HandleRightCmd(const UTVector<UTString>& info)
{
    bool ret = true;
    CHXString* pStr = GetStringObj(info[1]);
    const char* expected = (const char*)info[3];
    int length = -9999;

    if (!pStr)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[1]));
        ret = false;
    }
    else if (!UTParamUtil::GetInt(info[2], length))
    {
	DPRINTF(D_ERROR, ("Failed to convert parameters\n"));
        ret = false;
    }
    else
    {
        CHXString got = pStr->Right(length);
        if (strcmp(got, expected) != 0)
        {
            DPRINTF(D_ERROR, ("Got \"%s\" expected \"%s\"\n",
                              (const char*)got,
                              expected));
            ret = false;
        }
    }

    return ret;
}

bool HLXStringTest::HandleCountFieldsCmd(const UTVector<UTString>& info)
{
    bool ret = true;
    CHXString* pStr = GetStringObj(info[1]);
    unsigned int expected;

    if (!pStr)
    {
	DPRINTF(D_ERROR, ("Failed to get the string object '%s'\n", 
			  (const char*)info[1]));
        ret = false;
    }
    else if (!UTParamUtil::GetUInt(info[3], expected))
    {
	DPRINTF(D_ERROR, ("Failed to convert parameters\n"));
        ret = false;
    }
    else
    {
        ULONG32 got = pStr->CountFields(*((const char*)info[2]));
        if (got != expected)
        {
            DPRINTF(D_ERROR, ("Got %lu expected %lu\n",
                              (unsigned long)got, (unsigned long)expected));
            ret = false;
        }
    }

    return ret;
}

bool HLXStringTest::HandleNthFieldCmd(const UTVector<UTString>& info)
{
    bool ret = true;
    CHXString* pStr = GetStringObj(info[1]);
    unsigned int field;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -