void ContractionTableTest::TestAddATableElement(){ testTable = uprv_cnttab_open(testMapping, &status); uint32_t i = 0, res = 0; // fill up one contraction so that it has to expand for(i = 0; i<0x1000; i++) { uprv_cnttab_addContraction(testTable, i, (UChar)i, i, &status); if(U_FAILURE(status)) { errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status)); break; } } // test whether the filled up contraction really contains the data we input if(U_SUCCESS(status)) { for(i = 0; i<0x1000; i++) { res = uprv_cnttab_getCE(testTable, i, 0, &status); if(U_FAILURE(status)) { errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status)); break; } if(res != i) { errln("Error: expected %i, got %i\n", i, res); break; } } } uprv_cnttab_close(testTable); }
U_CAPI UBool U_EXPORT2 uprv_cnttab_isTailored(CntTable *table, uint32_t element, UChar *ztString, UErrorCode *status) { if(U_FAILURE(*status)) { return FALSE; } while(*(ztString)!=0) { element = uprv_cnttab_findCE(table, element, *(ztString), status); if(element == UCOL_NOT_FOUND) { return FALSE; } if(!isCntTableElement(element)) { return TRUE; } ztString++; } return (UBool)(uprv_cnttab_getCE(table, element, 0, status) != UCOL_NOT_FOUND); }
void ContractionTableTest::TestClone(){ testTable = uprv_cnttab_open(testMapping, &status); int32_t i = 0, res = 0; // we must construct table in order to copy codepoints and CEs // fill up one contraction so that it has to expand for(i = 0; i<0x500; i++) { uprv_cnttab_addContraction(testTable, i, (UChar)i, i, &status); if(U_FAILURE(status)) { errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status)); break; } } uprv_cnttab_constructTable(testTable, 0, &status); if(U_FAILURE(status)) { errln("Error constructing table error = %i (%s)\n", status, u_errorName(status)); } else { testClone = uprv_cnttab_clone(testTable, &status); if(U_SUCCESS(status)) { for(i = 0; i<0x500; i++) { res = uprv_cnttab_getCE(testTable, i, 0, &status); if(U_FAILURE(status)) { errln("Error occurred at position %i, error = %i (%s)\n", i, status, u_errorName(status)); break; } if(res != i) { errln("Error: expected %i, got %i\n", i, res); break; } } } uprv_cnttab_close(testClone); } uprv_cnttab_close(testTable); testTable = uprv_cnttab_open(testMapping, &status); if(U_FAILURE(status)) { errln("Error opening table error = %i (%s)\n", status, u_errorName(status)); } uprv_cnttab_close(testTable); }