package wikipedia.sql_idf; import wikipedia.sql.Connect; import junit.framework.*; import java.util.*; public class TermPageTest extends TestCase { public Connect idfruwiki_conn; public Connect idfsimplewiki_conn; public TermPageTest(String testName) { super(testName); } protected void setUp() throws Exception { idfruwiki_conn = new Connect(); idfruwiki_conn.Open(Connect.IDF_RU_HOST, Connect.IDF_RU_DB, Connect.IDF_RU_USER, Connect.IDF_RU_PASS); idfsimplewiki_conn = new Connect(); idfsimplewiki_conn.Open(Connect.IDF_SIMPLE_HOST, Connect.IDF_SIMPLE_DB, Connect.IDF_SIMPLE_USER, Connect.IDF_SIMPLE_PASS); } protected void tearDown() throws Exception { idfruwiki_conn.Close(); idfsimplewiki_conn.Close(); } /** * Test of get method, of class wikipedia.sql_idf.TermPage. */ public void testGet() { System.out.println("get_simple"); int page_id = 0; int doc_freq_max = 10; java.sql.Connection conn = idfsimplewiki_conn.conn; String page_title = "page_title_1"; String lemma = "test_term.get"; int corpus_freq = -999; int term_freq = -999; Term t = null; Term.delete(conn, lemma); t = Term.get (conn, lemma); assertEquals(null, t); // empty p Page.delete(conn, page_title); Page p = Page.get(conn, page_title); assertEquals(null, p); // valid p int word_count = 0; p = Page.getOrInsert(conn, page_title, word_count); page_id = p.getPageID(); assertFalse(0 == page_id); // 7 add int add_term_freq = 7; wikipedia.sql_idf.Term.incLemmaDocFreq(conn, lemma, add_term_freq, p, doc_freq_max); t = Term.get (conn, lemma); int term_id = t.getTermID(); term_freq = TermPage.getTermFreqInDocument(conn, term_id, page_id); corpus_freq = Term.get(conn, lemma).getCorpusFreq(); assertEquals(7, term_freq); assertEquals(add_term_freq, corpus_freq); // 14 add wikipedia.sql_idf.Term.incLemmaDocFreq(conn, lemma, add_term_freq, p, doc_freq_max); term_freq = TermPage.getTermFreqInDocument(conn, term_id, page_id); corpus_freq = Term.get(conn, lemma).getCorpusFreq(); assertEquals(add_term_freq, term_freq); assertEquals(2*add_term_freq, corpus_freq); // 21 add wikipedia.sql_idf.Term.incLemmaDocFreq(conn, lemma, add_term_freq, p, doc_freq_max); term_freq = TermPage.getTermFreqInDocument(conn, term_id, page_id); corpus_freq = Term.get(conn, lemma).getCorpusFreq(); assertEquals(add_term_freq, term_freq); assertEquals(3*add_term_freq, corpus_freq); // delete created entries Term.delete (conn, lemma); Page.delete(conn, page_title); TermPage.delete(conn, term_id, page_id); term_freq = TermPage.getTermFreqInDocument(conn, term_id, page_id); assertEquals(0, term_freq); } public void testGetTerms() { System.out.println("getTerms_simple"); java.sql.Connection conn = idfsimplewiki_conn.conn; String page_title = "Japanese_tea_ceremony"; Page p = Page.get(conn, page_title); if(null == p) { System.out.println("\nSkipped. WikIDF DB is empty. The test is valid only for parsed Simple WP"); return; } int page_id = p.getPageID(); List<TermPage> list = TermPage.getTermsByPageID(conn, page_id); assertTrue(null != list); assertTrue(list.size() >= 43); } public void testGetPagesByTermID_simple() { System.out.println("getPagesByTermID_simple"); List<TermPage> list; Term t; String lemma; java.sql.Connection conn = idfsimplewiki_conn.conn; t = new Term(); t.setTermID(-1); list = TermPage.getPagesByTermID(conn, t); assertTrue(null != list); assertTrue(0 == list.size()); lemma = "TEA"; t = Term.get(conn, lemma); list = TermPage.getPagesByTermID(conn, t); if(0 == list.size()) { System.out.println("\nSkipped. WikIDF DB is empty. The test is valid only for parsed Simple WP"); return; } assertTrue(list.size() >= 98); // 98 pages mentioned the "tea" } //updateTermFreq public void testUpdateTermFreq() { System.out.println("updateTermFreq_simple"); java.sql.Connection conn = idfsimplewiki_conn.conn; int page_id = 2; int term_id = 3; int term_freq; term_freq = TermPage.getTermFreqInDocument(conn, term_id, page_id); assertEquals(0, term_freq); // insert int new_term_freq = 7; TermPage.updateTermFreq (conn, term_id, page_id, new_term_freq); term_freq = TermPage.getTermFreqInDocument(conn, term_id, page_id); assertEquals(7, term_freq); // update new_term_freq = 8; TermPage.updateTermFreq (conn, term_id, page_id, new_term_freq); term_freq = TermPage.getTermFreqInDocument(conn, term_id, page_id); assertEquals(8, term_freq); // delete TermPage.delete(conn, term_id, page_id); term_freq = TermPage.getTermFreqInDocument(conn, term_id, page_id); assertEquals(0, term_freq); } public void testCreateMapIdTerm() { System.out.println("createMapIdTerm"); Map<Integer, Term> result = TermPage.createMapIdTerm(null); assertEquals(0, result.size()); List<TermPage> tp = new ArrayList<TermPage>(2); Term t1 = new Term(); t1.setTermID(1); Term t2 = new Term(); t2.setTermID(2); tp.add(new TermPage()); tp.add(new TermPage()); tp.get(0).setTerm(t2); tp.get(1).setTerm(t1); result = TermPage.createMapIdTerm(tp); assertEquals(result.size(), 2); assertEquals(result.get(1), t1); assertEquals(result.get(2), t2); } }