UNPKG

mcp-turkce

Version:

Model Context Protocol Server for Turkish Language Foundation API

239 lines (238 loc) 11.8 kB
// test.ts import { TurkishDictionaryAPI } from './api.js'; import { PersonNameSearchType, PersonNameType, ScienceArtDict, TurkishDialect } from './types.js'; async function testMainDictionaries() { console.log('===== MAIN DICTIONARIES ====='); const api = new TurkishDictionaryAPI(); // Main Turkish dictionary (GTS) console.log('Searching Turkish Dictionary (GTS) for "adalet"...'); const gts = await api.searchWord('adalet'); if (gts && typeof gts === 'object' && 'error' in gts) { console.log('Turkish Dictionary (GTS) error:', gts.error); throw new Error('Turkish Dictionary (GTS) error: adalet'); } // Western-origin words console.log('Searching Western-origin words for "telefon"...'); const western = await api.searchWesternOrigin('telefon'); if (western && typeof western === 'object' && 'error' in western) { console.log('Western-origin words error:', western.error); throw new Error(`Western-origin words error: telefon`); } console.log('Western-origin words result:', western); // Scanning dictionary console.log('Searching Scanning dictionary for "yürek"...'); const scanning = await api.searchScanning('yürek'); if (scanning && typeof scanning === 'object' && 'error' in scanning) { console.log('Scanning dictionary error:', scanning.error); throw new Error(`Scanning dictionary error: yürek`); } console.log('Scanning dictionary result:', scanning); // Compilation dictionary console.log('Searching Compilation dictionary for "aş"...'); const compilation = await api.searchCompilation('aş'); if (compilation && typeof compilation === 'object' && 'error' in compilation) { console.log('Compilation dictionary error:', compilation.error); throw new Error(`Compilation dictionary error: aş`); } console.log('Compilation dictionary result:', compilation); } async function testSpecializedDictionaries() { console.log('\n===== SPECIALIZED DICTIONARIES ====='); const api = new TurkishDictionaryAPI(); // Proverbs and idioms console.log('Searching Proverbs and idioms for "göz"...'); const proverbs = await api.searchProverbsAndIdioms('göz'); if (proverbs && typeof proverbs === 'object' && 'error' in proverbs) { console.log('Proverbs and idioms error:', proverbs.error); throw new Error(`Proverbs and idioms error: göz`); } console.log('Proverbs and idioms result:', proverbs); // Foreign words guide console.log('Searching Foreign words guide for "software"...'); const foreign = await api.searchForeignWordsGuide('software'); if (foreign && typeof foreign === 'object' && 'error' in foreign) { console.log('Foreign words guide error:', foreign.error); throw new Error(`Foreign words guide error: software`); } console.log('Foreign words guide result:', foreign); // Eren Etymology Dictionary console.log('Searching Eren Etymology Dictionary for "yürek"...'); const etymology = await api.searchErenEtymology('yürek'); if (etymology && typeof etymology === 'object' && 'error' in etymology) { console.log('Eren Etymology error:', etymology.error); throw new Error(`Eren Etymology error: yürek`); } console.log('Eren Etymology result:', etymology); // Origin Information Dictionary console.log('Searching Origin Information Dictionary for "para"...'); const origin = await api.searchOriginInfo('para'); if (origin && typeof origin === 'object' && 'error' in origin) { console.log('Origin Information error:', origin.error); throw new Error(`Origin Information error: para`); } console.log('Origin Information result:', origin); // Turkish Sign Language console.log('Searching Turkish Sign Language for "selam"...'); //const sign = await api.searchSignLanguage('selam'); //if (sign && typeof sign === 'object' && 'error' in sign) { // console.log('Sign Language error:', sign.error); // throw new Error(`Sign Language error: selam`); //} //console.log('Sign Language result:', sign); } async function testPersonNameDictionaries() { console.log('\n===== PERSON NAME DICTIONARIES ====='); const api = new TurkishDictionaryAPI(); // Male names console.log('Searching Male names for "ahmet"...'); const male = await api.searchMaleNames('ahmet'); if (male && typeof male === 'object' && 'error' in male) { console.log('Male names error:', male.error); throw new Error(`Male names error: ahmet`); } console.log('Male names result:', male); // Female names console.log('Searching Female names for "ayşe"...'); const female = await api.searchFemaleNames('ayşe'); if (female && typeof female === 'object' && 'error' in female) { console.log('Female names error:', female.error); throw new Error(`Female names error: ayşe`); } console.log('Female names result:', female); // Unisex names console.log('Searching Unisex names for "deniz"...'); const unisex = await api.searchUnisexNames('deniz'); if (unisex && typeof unisex === 'object' && 'error' in unisex) { console.log('Unisex names error:', unisex.error); throw new Error(`Unisex names error: deniz`); } console.log('Unisex names result:', unisex); // Search by name meaning console.log('Searching by name meaning "güzel" for female names...'); const meaning = await api.searchByNameMeaning('güzel', PersonNameType.FEMALE); if (meaning && typeof meaning === 'object' && 'error' in meaning) { console.log('Name meaning search error:', meaning.error); throw new Error(`Name meaning search error: güzel`); } console.log('Name meaning search result:', meaning); // Custom person name search console.log('Performing custom person name search for "can" (male)...'); const custom = await api.searchPersonNames('can', PersonNameType.MALE, PersonNameSearchType.BY_NAME); if (custom && typeof custom === 'object' && 'error' in custom) { console.log('Custom person name search error:', custom.error); throw new Error(`Custom person name search error: can`); } console.log('Custom person name search:', custom); } async function testDialectDictionaries() { console.log('\n===== DIALECT DICTIONARIES ====='); const api = new TurkishDictionaryAPI(); // Default dialect (Azerbaijani) console.log('Searching default dialect for "alma"...'); const default_dialect = await api.searchDialects('alma'); if (default_dialect && typeof default_dialect === 'object' && 'error' in default_dialect) { console.log('Default dialect error:', default_dialect.error); throw new Error(`Default dialect error: alma`); } console.log('Default dialect result:', default_dialect); // Specific dialects console.log('Searching Azerbaijani dialect for "alma"...'); const azeri = await api.searchDialects('alma', TurkishDialect.AZERBAIJANI); if (azeri && typeof azeri === 'object' && 'error' in azeri) { console.log('Azerbaijani dialect error:', azeri.error); throw new Error(`Azerbaijani dialect error: alma`); } console.log('Azerbaijani dialect result:', azeri); console.log('Searching Bashkir dialect for "alma"...'); const bashkir = await api.searchDialects('alma', TurkishDialect.BASHKIR); if (bashkir && typeof bashkir === 'object' && 'error' in bashkir) { console.log('Bashkir dialect error:', bashkir.error); throw new Error(`Bashkir dialect error: alma`); } console.log('Bashkir dialect result:', bashkir); console.log('Searching Kazakh dialect for "dil"...'); const kazakh = await api.searchDialects('dil', TurkishDialect.KAZAKH); if (kazakh && typeof kazakh === 'object' && 'error' in kazakh) { console.log('Kazakh dialect error:', kazakh.error); throw new Error(`Kazakh dialect error: dil`); } console.log('Kazakh dialect result:', kazakh); } async function testScienceArtDictionaries() { console.log('\n===== SCIENCE & ART DICTIONARIES ====='); const api = new TurkishDictionaryAPI(); // All terminology console.log('Searching all terminology for "sözlük"...'); const all = await api.searchAllTerminology('sözlük'); console.log(all); if (all && typeof all === 'object' && 'error' in all) { console.log('All terminology error:', all.error); throw new Error(`All terminology error: sözlük`); } console.log('All terminology result:', all); // Medicine dictionary console.log('Searching Medicine dictionary for "yürek"...'); const medicine = await api.searchScienceArt('yürek', ScienceArtDict.MEDICINE); if (medicine && typeof medicine === 'object' && 'error' in medicine) { console.log('Medicine dictionary error:', medicine.error); throw new Error(`Medicine dictionary error: yürek`); } console.log('Medicine dictionary result:', medicine); // Biology dictionary console.log('Searching Biology dictionary for "hücre"...'); const biology = await api.searchScienceArt('hücre', ScienceArtDict.BIOLOGY); if (biology && typeof biology === 'object' && 'error' in biology) { console.log('Biology dictionary error:', biology.error); throw new Error(`Biology dictionary error: hücre`); } console.log('Biology dictionary result:', biology); // Simplified methods console.log('Searching Nursing dictionary for "ateş"...'); const nursing = await api.searchNursing('ateş'); if (nursing && typeof nursing === 'object' && 'error' in nursing) { console.log('Nursing dictionary error:', nursing.error); throw new Error(`Nursing dictionary error: ateş`); } console.log('Nursing dictionary result:', nursing); console.log('Searching Pharmacy dictionary for "ilaç"...'); const pharmacy = await api.searchPharmacy('ilaç'); if (pharmacy && typeof pharmacy === 'object' && 'error' in pharmacy) { console.log('Pharmacy dictionary error:', pharmacy.error); throw new Error(`Pharmacy dictionary error: ilaç`); } console.log('Pharmacy dictionary result:', pharmacy); console.log('Searching Metrology dictionary for "ölçüm"...'); const metrology = await api.searchMetrology('ölçüm'); if (metrology && typeof metrology === 'object' && 'error' in metrology) { console.log('Metrology dictionary error:', metrology.error); throw new Error(`Metrology dictionary error: ölçüm`); } console.log('Metrology dictionary result:', metrology); console.log('Searching Veterinary dictionary for "aşı"...'); const veterinary = await api.searchVeterinary('aşı'); if (veterinary && typeof veterinary === 'object' && 'error' in veterinary) { console.log('Veterinary dictionary error:', veterinary.error); throw new Error(`Veterinary dictionary error: aşı`); } console.log('Veterinary dictionary result:', veterinary); } async function runTest() { try { console.log('Starting Turkish Dictionary API Test...\n'); await testMainDictionaries(); await testSpecializedDictionaries(); await testPersonNameDictionaries(); await testDialectDictionaries(); await testScienceArtDictionaries(); console.log('\nTest completed successfully!'); } catch (error) { if (error instanceof Error) { console.error('Error in test:', error.message); } else { console.error('Error in test:', String(error)); } } } runTest();