📄 strlist_test.cpp
字号:
bool ret = false; CHXString expected(info[1]); CHXString result; if (!GetValue(m_list.GetNext(m_pos), result)) { DPRINTF(D_ERROR, ("npSList::HandleGetNextCmd : failed to get value\n")); } else if (result != expected) { DPRINTF(D_ERROR, ("npSList::HandleGetNextCmd : got '%s' expected '%s'\n", (const char*)result, (const char*)expected)); } else ret = true; return ret;}bool HLXStrListTest::HandleGetPrevCmd(const UTVector<UTString>& info){ bool ret = false; CHXString expected(info[1]); CHXString result; if (!GetValue(m_list.GetPrev(m_pos), result)) { DPRINTF(D_ERROR, ("npSList::HandleGetPrevCmd : failed to get value\n")); } else if (result != expected) { DPRINTF(D_ERROR, ("npSList::HandleGetPrevCmd : got '%s' expected '%s'\n", (const char*)result, (const char*)expected)); } else ret = true; return ret;}bool HLXStrListTest::HandleReplacePrevCmd(const UTVector<UTString>& info){ CHXString value(info[1]); LISTPOSITION tmpPos = m_pos; DestroyValue(m_list.GetPrev(tmpPos)); m_list.GetPrev(m_pos) = CreateValue(value); return true;}bool HLXStrListTest::HandleGetAtNextCmd(const UTVector<UTString>& info){ bool ret = false; bool expectValid = false; CHXString expected(info[2]); if (!UTParamUtil::GetBool(info[1], expectValid)) { DPRINTF(D_ERROR, ("npSList::HandleGetAtNextCmd : failed to convert parameter\n")); } else { CHXString result; bool resultValid = GetValue(m_list.GetAtNext(m_pos), result); if (expectValid != resultValid) { DPRINTF(D_ERROR, ("npSList::HandleGetAtNextCmd : got valid=%d expected valid=%d\n", resultValid, expectValid)); } else if (expectValid && (result != expected)) { DPRINTF(D_ERROR, ("npSList::HandleGetAtNextCmd : got '%s' expected '%s'\n", (const char*)result, (const char*)expected)); } else ret = true; } return ret;}bool HLXStrListTest::HandleGetAtPrevCmd(const UTVector<UTString>& info){ bool ret = false; bool expectValid = false; CHXString expected(info[2]); if (!UTParamUtil::GetBool(info[1], expectValid)) { DPRINTF(D_ERROR, ("npSList::HandleGetAtPrevCmd : failed to convert parameter\n")); } else { CHXString result; bool resultValid = GetValue(m_list.GetAtPrev(m_pos), result); if (expectValid != resultValid) { DPRINTF(D_ERROR, ("npSList::HandleGetAtPrevCmd : got valid=%d expected valid=%d\n", resultValid, expectValid)); } else if (expectValid && (result != expected)) { DPRINTF(D_ERROR, ("npSList::HandleGetAtPrevCmd : got '%s' expected '%s'\n", (const char*)result, (const char*)expected)); } else ret = true; } return ret;}bool HLXStrListTest::HandleReplaceAtPrevCmd(const UTVector<UTString>& info){ CHXString value(info[1]); LISTPOSITION tmpPos = m_pos; DestroyValue(m_list.GetAtPrev(tmpPos)); m_list.GetAtPrev(m_pos) = CreateValue(value); return true;}bool HLXStrListTest::HandleGetAtCmd(const UTVector<UTString>& info){ bool ret = false; CHXString expected(info[1]); CHXString result; if (!GetValue(m_list.GetAt(m_pos), result)) { DPRINTF(D_ERROR, ("npSList::HandleGetAtCmd : invalid value\n")); } else if (result != expected) { DPRINTF(D_ERROR, ("npSList::HandleGetAtCmd : got '%s' expected '%s'\n", (const char*)result, (const char*)expected)); } else ret = true; return ret;}bool HLXStrListTest::HandleReplaceAtCmd(const UTVector<UTString>& info){ CHXString value(info[1]); DestroyValue(m_list.GetAt(m_pos)); m_list.GetAt(m_pos) = CreateValue(value); return true;}bool HLXStrListTest::HandleSetAtCmd(const UTVector<UTString>& info){ CHXString value(info[1]); DestroyValue(m_list.GetAt(m_pos)); m_list.SetAt(m_pos, CreateValue(value)); return true;}bool HLXStrListTest::HandleRemoveAtCmd(const UTVector<UTString>& /*info*/){ m_pos = m_list.RemoveAt(m_pos); return true;}bool HLXStrListTest::HandleInsertBeforeCmd(const UTVector<UTString>& info){ CHXString value(info[1]); m_pos = m_list.InsertBefore(m_pos, CreateValue(value)); return true;}bool HLXStrListTest::HandleInsertAfterCmd(const UTVector<UTString>& info){ CHXString value(info[1]); m_pos = m_list.InsertAfter(m_pos, CreateValue(value)); return true;}bool HLXStrListTest::HandleFindCmd(const UTVector<UTString>& info){ bool ret = false; CHXString value(info[1]); bool useCurrentPos = false; if (!UTParamUtil::GetBool(info[2], useCurrentPos)) { DPRINTF(D_ERROR, ("npSList::HandleFindCmd : failed to convert parameter\n")); } else { LISTPOSITION pos = (useCurrentPos) ? m_pos : m_list.GetHeadPosition(); void* pValue = 0; bool destroyValue = FindValue(value, pos, pValue); if (useCurrentPos) m_pos = m_list.Find(pValue, pos); else m_pos = m_list.Find(pValue); if (destroyValue) DestroyValue(pValue); ret = true; } return ret;}bool HLXStrListTest::HandleFindIndexCmd(const UTVector<UTString>& info){ bool ret = false; int index = 0; if (!UTParamUtil::GetInt(info[1], index)) { DPRINTF(D_ERROR, ("npSList::HandleFindCmd : failed to convert parameter\n")); } else { m_pos = m_list.FindIndex(index); ret = true; } return ret;}bool HLXStrListTest::HandleIsPosValidCmd(const UTVector<UTString>& info){ bool ret = false; bool expected = false; if (!UTParamUtil::GetBool(info[1], expected)) { DPRINTF(D_ERROR, ("npSList::HandleIsPosValidCmd : failed to convert parameter\n")); } else { bool result = (m_pos != 0); if (result != expected) { DPRINTF(D_ERROR, ("npSList::HandleIsPosValidCmd : got %d expected %d\n", result, expected)); } else ret = true; } return ret;}bool HLXStrListTest::HandleClearPosCmd(const UTVector<UTString>& /*info*/){ m_pos = 0; return true;}bool HLXStrListTest::HandleTestIteratorCmd(const UTVector<UTString>& /*info*/){ bool ret = true; LISTPOSITION pos = m_list.GetHeadPosition(); CHXSimpleList::Iterator itr = m_list.Begin(); for(; ret && (itr != m_list.End()) && pos; ++itr) { CHXString expected; CHXString result; if (!GetValue(m_list.GetNext(pos), expected)) { DPRINTF (D_ERROR,("HLXStrListTest::HandleTestIteratorCmd() : failed to get expected value\n")); ret = false; } else if (!GetValue(*itr, result)) { DPRINTF (D_ERROR,("HLXStrListTest::HandleTestIteratorCmd() : failed to get result value\n")); ret = false; } else if (expected != result) { DPRINTF (D_ERROR,("HLXStrListTest::HandleTestIteratorCmd() : got '%s' expected '%s'\n", (const char*)result, (const char*)expected)); ret = false; } } if (ret) { // The comparisons are arranged this way so // that I can test the == operator if (itr == m_list.End()) { if (pos != 0) { DPRINTF (D_ERROR,("HLXStrListTest::HandleTestIteratorCmd() : Position is not at the end\n")); ret = false; } } else { DPRINTF (D_ERROR,("HLXStrListTest::HandleTestIteratorCmd() : iterator not at the end\n")); ret = false; } } return ret;}bool HLXStrListTest::HandleAddHeadStringCmd(const UTVector<UTString>& info){ m_list.AddHeadString(info[1]); return true;}bool HLXStrListTest::HandleAddTailStringCmd(const UTVector<UTString>& info){ m_list.AddTailString(info[1]); return true;}bool HLXStrListTest::HandleAddStringAlphabeticCmd(const UTVector<UTString>& info){ m_list.AddStringAlphabetic(info[1]); return true;}bool HLXStrListTest::HandleFindStringCmd(const UTVector<UTString>& info){ bool ret = false; bool useCurrentPos = false; bool isCaseSensitive = false; if (!UTParamUtil::GetBool(info[2], useCurrentPos) || !UTParamUtil::GetBool(info[3], isCaseSensitive)) { DPRINTF(D_ERROR, ("npSList::HandleFindStringCmd : failed to convert parameter\n")); } else { LISTPOSITION pos = (useCurrentPos) ? m_pos : 0; m_pos = m_list.FindString(info[1], pos, isCaseSensitive); ret = true; } return ret;}bool HLXStrListTest::HandleFindPrefixSubstringCmd(const UTVector<UTString>& info){ bool ret = false; bool useCurrentPos = false; bool isCaseSensitive = false; if (!UTParamUtil::GetBool(info[2], useCurrentPos) || !UTParamUtil::GetBool(info[3], isCaseSensitive)) { DPRINTF(D_ERROR, ("npSList::HandleFindPrefixSubstringCmd : failed to convert parameter\n")); } else { LISTPOSITION pos = (useCurrentPos) ? m_pos : 0; m_pos = m_list.FindPrefixSubstring(info[1], pos, isCaseSensitive); ret = true; } return ret;}bool HLXStrListTest::HandleRemoveHeadStringCmd(const UTVector<UTString>& /*info*/){ m_list.RemoveHeadString(); return true;}bool HLXStrListTest::HandleRemoveTailStringCmd(const UTVector<UTString>& /*info*/){ m_list.RemoveTailString(); return true;}bool HLXStrListTest::HandleDumpCmd(const UTVector<UTString>& info){ if (info.Nelements() >= 2) m_list.Dump((const char*)info[1]); else m_list.Dump(); return true;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -