static void _loadCustomDictionary(void){ char szFileName[MAX_PATH]; char szTemp[64]; HANDLE hFile; int size = 0; _itoa(m_CodePage, szTemp, 10); strcat(szTemp, ".cust"); strcpy(szFileName, m_CustPath); strcat(szFileName, szTemp); hFile = CreateFile(szFileName, GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if(hFile != INVALID_HANDLE_VALUE){ size = GetFileSize(hFile, NULL); if(size > 0){ wchar_t *pWords = calloc(size, sizeof(wchar_t)); if(pWords){ wchar_t *pTemp = pWords; DWORD dwBytesRead = 0; ReadFile(hFile, pTemp, size, &dwBytesRead, NULL); if(dwBytesRead == size){ wchar_t *ptr; wchar_t *word = wcstok(pTemp, L"^", &ptr); while(word){ if(wcslen(word) > 0){ AddWordToDictionary(word, FALSE); } word = wcstok(NULL, L"^", &ptr); } } free(pWords); } } CloseHandle(hFile); } }
TEST_FIXTURE(DictionaryCheck_TestFixture, IsWordInDictionary_AddedDecomposed_SuccessfulCheckWithComposedAndDecomposed) { if(_dict && _dict->check) { if(AddWordToDictionary(Convert(L"fiance\x0301" L"deletethis"))) // u0301 = Combining acute accent { CHECK( IsWordInDictionary(Convert(L"fianc\x00e9" L"deletethis")) ); //NFC CHECK( IsWordInDictionary(Convert(L"fiance\x0301" L"deletethis")) ); //NFD } } }
TEST_FIXTURE(DictionaryCheck_TestFixture, IsWordInDictionary_Addedlower_MixedCaseNotSuccessful) { if(_dict && _dict->check) { if(AddWordToDictionary("zyxz")) { CHECK( IsWordInDictionary("ZYXZ") ); CHECK(!IsWordInDictionary("ZYxz") ); CHECK( IsWordInDictionary("Zyxz") ); CHECK( IsWordInDictionary("zyxz") ); CHECK(!IsWordInDictionary("zYxz") ); } } }
///////////////////////////////////////////////////////////////////////////////////////////////// // Capitalization TEST_FIXTURE(DictionaryCheck_TestFixture, IsWordInDictionary_AddedAllCaps_OnlyAllCapsSuccessful) { if(_dict && _dict->check) { if(AddWordToDictionary("ZYX")) { CHECK( IsWordInDictionary("ZYX") ); CHECK(!IsWordInDictionary("ZYx") ); CHECK(!IsWordInDictionary("Zyx") ); CHECK(!IsWordInDictionary("zyx") ); CHECK(!IsWordInDictionary("zYx") ); } } }
TEST_FIXTURE(DictionaryCheck_TestFixture, IsWordInDictionary_AddedTitle_lowerCaseAndMixedCaseNotSuccessful) { if(_dict && _dict->check) { if(AddWordToDictionary("Zxyz")) { CHECK( IsWordInDictionary("ZXYZ") ); CHECK(!IsWordInDictionary("ZXyz") ); CHECK( IsWordInDictionary("Zxyz") ); CHECK(!IsWordInDictionary("zxyz") ); CHECK(!IsWordInDictionary("zXyz") ); } } }
bool AddWordToDictionary(const std::string& word) { return AddWordToDictionary(_dict, word); }