package wikokit.base.wikt.sql; import wikokit.base.wikipedia.language.LanguageType; import wikokit.base.wikt.constant.POS; //import wikipedia.sql.UtilSQL; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import static org.junit.Assert.*; import wikokit.base.wikipedia.sql.Connect; public class TTranslationEntryTest { public Connect ruwikt_parsed_conn; String samolyot_text, kolokolchik_text, kolokolchik_text_1_translation_box, kosa_text_1_translation_box_without_header; TPage page; String page_title; TLang lang; TLangPOS lang_pos; TMeaning meaning; TWikiText wiki_text; String meaning_summary, str_wiki_text, str_wiki_text_wikified; public TTranslationEntryTest() { } @BeforeClass public static void setUpClass() throws Exception { } @AfterClass public static void tearDownClass() throws Exception { } @Before public void setUp() { ruwikt_parsed_conn = new Connect(); ruwikt_parsed_conn.Open(Connect.RUWIKT_HOST,Connect.RUWIKT_PARSED_DB,Connect.RUWIKT_USER,Connect.RUWIKT_PASS,LanguageType.ru); TLang.recreateTable(ruwikt_parsed_conn); // once upon a time: create Wiktionary parsed db TLang.createFastMaps(ruwikt_parsed_conn); // once upon a time: use Wiktionary parsed db TPOS.recreateTable(ruwikt_parsed_conn); // once upon a time: create Wiktionary parsed db TPOS.createFastMaps(ruwikt_parsed_conn); // once upon a time: use Wiktionary parsed db kolokolchik_text = "text before \n" + "===Перевод===\n" + "{{перев-блок|звонок|\n" + "|en=[[little]] [[bell]], [[handbell]], [[doorbell]]\n" + "|de=[[Glöckchen]], [[Schelle]], [[Klingel]]\n" + "|os=[[мыр-мыраг]], [[хъуытаз]] {{m}}\n" + "|fr=[[sonnette]], [[clochette]], [[clarine]]; (у скота) [[sonnaille]]\n" + "}}\n" + "{{перев-блок|оркестровый инструмент|\n" + "|en=[[glockenspiel]]\n" + "}}\n" + "\n" + "{{перев-блок|цветок\n" + "|en=[[bluebell]], [[bellflower]], [[campanula]]\n" + "|os=[[дзæнгæрæг]], [[къæрцгæнæг]]\n" + "|fr=[[campanule]], [[clochette]]\n" + "}}\n" + "\n" + "===Библиография===\n" + "*\n" + "\n{{categ|category1|category2|lang=}}" + "\n" + "[[Категория:Музыкальные инструменты]]\n"; kolokolchik_text_1_translation_box = "{{перев-блок|цветок\n" + "|en=[[bluebell]], [[bellflower]], [[campanula]]\n" + "|os=[[дзæнгæрæг]], [[къæрцгæнæг]]\n" + "|fr=[[campanule]], [[clochette]]\n" + "}}\n"; kosa_text_1_translation_box_without_header = "{{перев-блок\n" + "|en=[[braid]], [[plait]], [[pigtail]], [[queue]]\n" + "|de=[[Zopf]] {{m}} -es, Zöpfe\n" + "|fr=[[natte]] {{f}}; [[couette]] {{f}}, [[tresse]] <i>f</i>\n" + "}}\n"; Connect conn = ruwikt_parsed_conn; page_title = conn.enc.EncodeFromJava("test_TTranslation"); // insert page, get meaning_id int word_count = 7; int wiki_link_count = 13; boolean is_in_wiktionary = true; String redirect_target = null; page = null; page = TPage.get(conn, page_title); if(null == page) { TPage.insert(conn, page_title, word_count, wiki_link_count, is_in_wiktionary, redirect_target); page = TPage.get(conn, page_title); } int lang_id = TLang.getIDFast(LanguageType.os); //227; lang = TLang.getTLangFast(lang_id); assertTrue(null != lang); int etymology_n = 0; String lemma = ""; TPOS pos = TPOS.get(POS.noun); TLangPOS.insert(conn, page, lang, pos, etymology_n, lemma); // let's found ID: TLangPOS[] array_lang_pos = TLangPOS.get(conn, page); assertTrue(null != array_lang_pos); assertEquals(1, array_lang_pos.length); int id = array_lang_pos[0].getID(); // test lang_pos = TLangPOS.getByID(conn, id); assertNotNull(lang_pos); assertEquals(page.getID(), lang_pos.getPage().getID()); str_wiki_text = "test_TWikiText_TTranslationEntry"; str_wiki_text_wikified = "[[test_TWikiText_TTranslationEntry]]"; wiki_text = TWikiText.insert(conn, str_wiki_text, str_wiki_text_wikified); if(null == wiki_text) wiki_text = TWikiText.get(conn, str_wiki_text); assertNotNull(wiki_text); int meaning_n = 1; meaning = TMeaning.insert(conn, lang_pos, meaning_n, wiki_text); assertNotNull(meaning); meaning_summary = "meaning_summary__test_TTranslation"; /* LanguageType wikt_lang = LanguageType.ru; // Russian Wiktionary String page_title = "колокольчик"; LanguageType lang_section = LanguageType.ru; // Russian word POSText pt = new POSText(POS.noun, kolokolchik_text); WTranslation[] result = WTranslationRu.parse(wikt_lang, lang_section, page_title, pt); */ } @After public void tearDown() { Connect conn = ruwikt_parsed_conn; TLangPOS.delete(conn, page); TPage.delete(conn, page_title); TMeaning.delete(conn, meaning); TWikiText.delete(conn, wiki_text); conn.Close(); } @Test public void testInsert() { System.out.println("insert"); Connect conn = ruwikt_parsed_conn; TTranslation trans = TTranslation.insert(conn, lang_pos, meaning_summary, meaning); assertNotNull(trans); TTranslationEntry trans_entry = TTranslationEntry.insert(conn, trans, lang, wiki_text); assertNotNull(trans_entry); TLangPOS _lang_pos = trans.getLangPOS(); assertNotNull(_lang_pos); TPage _tpage = _lang_pos.getPage(); assertNotNull(_tpage); assertEquals(page_title, _tpage.getPageTitle()); assertEquals(meaning_summary, trans.getMeaningSummary()); TMeaning _meaning = trans.getMeaning(); assertNotNull(_meaning); TTranslation.delete(conn, trans); TTranslationEntry.delete(conn, trans_entry); } @Test public void testGetByLanguageAndTranslation() { System.out.println("getByLanguageAndTranslation"); Connect conn = ruwikt_parsed_conn; TTranslation trans = TTranslation.insert(conn, lang_pos, meaning_summary, meaning); assertNotNull(trans); TTranslationEntry trans_entry = TTranslationEntry.insert(conn, trans, lang, wiki_text); assertNotNull(trans_entry); TTranslationEntry[] trans_entries = TTranslationEntry.getByLanguageAndTranslation (conn, trans, lang); assertNotNull(trans_entries); assertEquals(1, trans_entries.length); TWikiText twt = trans_entries[0].getWikiText(); assertNotNull(twt); assertEquals(str_wiki_text, twt.getText()); TTranslation.delete(conn, trans); TTranslationEntry.delete(conn, trans_entry); } @Test public void testGetByTranslation() { System.out.println("getByTranslation"); Connect conn = ruwikt_parsed_conn; TTranslation trans = TTranslation.insert(conn, lang_pos, meaning_summary, meaning); assertNotNull(trans); TTranslationEntry trans_entry = TTranslationEntry.insert(conn, trans, lang, wiki_text); TLang lang2 = TLang.getTLangFast(TLang.getIDFast(LanguageType.de)); assertTrue(null != lang2); TTranslationEntry trans_entry2 = TTranslationEntry.insert(conn, trans, lang2, wiki_text); assertNotNull(trans_entry2); TTranslationEntry[] trans_entries = TTranslationEntry.getByTranslation(conn, trans); assertNotNull(trans_entries); assertEquals(2, trans_entries.length); TTranslation.delete(conn, trans); TTranslationEntry.delete(conn, trans_entry); TTranslationEntry.delete(conn, trans_entry2); } @Test public void testGetByWikiTextAndLanguage() { System.out.println("getByWikiTextAndLanguage"); Connect conn = ruwikt_parsed_conn; TTranslation trans = TTranslation.insert(conn, lang_pos, meaning_summary, meaning); assertNotNull(trans); TTranslationEntry trans_entry = TTranslationEntry.insert(conn, trans, lang, wiki_text); assertNotNull(trans_entry); TTranslationEntry[] list_entry = TTranslationEntry.getByWikiTextAndLanguage(conn, wiki_text, lang); assertNotNull(list_entry); assertEquals(1, list_entry.length); TWikiText twt = list_entry[0].getWikiText(); assertNotNull(twt); assertEquals(str_wiki_text, twt.getText()); { // + 1 to array TLangPOS lang_pos2 = TLangPOS.insert(conn, page, lang, TPOS.get(POS.verb), 0, ""); int meaning_n = 1; TMeaning meaning_local = TMeaning.insert(conn, lang_pos2, meaning_n, wiki_text); assertNotNull(meaning); TTranslation trans_local = TTranslation.insert(conn, lang_pos2, meaning_summary, meaning_local); assertNotNull(trans); TTranslationEntry trans_entry_local = TTranslationEntry.insert(conn, trans_local, lang, wiki_text); assertNotNull(trans_entry); // result: 2 elements list_entry = TTranslationEntry.getByWikiTextAndLanguage(conn, wiki_text, lang); assertNotNull(list_entry); assertEquals(2, list_entry.length); TTranslation.delete(conn, trans_local); TTranslationEntry.delete(conn, trans_entry_local); TMeaning.delete(conn, meaning_local); } TTranslation.delete(conn, trans); TTranslationEntry.delete(conn, trans_entry); } @Test public void testGetByID() { System.out.println("insert"); Connect conn = ruwikt_parsed_conn; TTranslation trans = TTranslation.insert(conn, lang_pos, meaning_summary, meaning); assertNotNull(trans); TTranslationEntry trans_entry = TTranslationEntry.insert(conn, trans, lang, wiki_text); assertNotNull(trans_entry); TTranslationEntry trans_entry2 = TTranslationEntry.getByID(conn, trans_entry.getID()); assertNotNull(trans_entry2); assertNotNull(trans_entry.getWikiText()); TWikiText twt=trans_entry.getWikiText(); assertEquals(str_wiki_text, twt.getText()); TTranslation.delete(conn, trans); TTranslationEntry.delete(conn, trans_entry); } }