package wikokit.base.wikt.sql.test;
import wikokit.base.wikipedia.language.LanguageType;
import wikokit.base.wikipedia.sql.Connect;
import wikokit.base.wikt.sql.TLangPOS;
import wikokit.base.wikt.sql.TMeaning;
import wikokit.base.wikt.sql.TPOS;
import wikokit.base.wikt.sql.TPage;
import wikokit.base.wikt.sql.TLang;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import junit.framework.TestCase;
public class TPageTest extends TestCase {
public Context context = null;
Connect ruwikt_conn;
SQLiteDatabase db;
protected void setUp() throws Exception {
super.setUp();
ruwikt_conn = new Connect(context, LanguageType.ru);
ruwikt_conn.openDatabase();
db = ruwikt_conn.getDB();
TLang.createFastMaps(db);
TPOS.createFastMaps (db); // once upon a time: use Wiktionary parsed db
}
protected void tearDown() throws Exception {
super.tearDown();
ruwikt_conn.close();
}
public void testGetByID() {
System.out.println("getByID_ru");
String page_title;
SQLiteDatabase db = ruwikt_conn.getDB();
//boolean is_in_wiktionary = true;
//String redirect_target = null;
page_title = "lead";
TPage p = null;
p = TPage.get(db, page_title);
assertTrue(p != null);
assertTrue(p.getID() > 0);
TPage p2 = TPage.getByID(db, p.getID());
assertTrue(p2 != null);
assertEquals(p.getPageTitle(), p2.getPageTitle());
}
public void testGetByPrefix() {
System.out.println("getByPrefix");
int limit;
String prefix;
SQLiteDatabase db = ruwikt_conn.getDB();
prefix = "airplane%";
/*int word_count = 7;
int wiki_link_count = 13;
boolean is_in_wiktionary = true;
String redirect_target = null;*/
TPage p[] = null;
boolean b_skip_redirects = true;
boolean b_meaning = false;
boolean b_sem_rel = false;
TLang source_lang[] = new TLang [0];
limit = 0;
p = TPage.getByPrefix(db, prefix, limit, b_skip_redirects,
source_lang,
b_meaning, b_sem_rel);
assertEquals(p.length, 0);
limit = 1;
p = TPage.getByPrefix(db, prefix, limit, b_skip_redirects,
source_lang,
b_meaning, b_sem_rel);
assertEquals(p.length, 1);
// let's test internal call: tp.lang_pos = TLangPOS.getRecursive(db, tp);
TLangPOS[] array_tlang_pos = p[0].getLangPOS();
assertNotNull(array_tlang_pos);
assertTrue(array_tlang_pos.length > 0); // entry "airplane" contains something
TMeaning[] array_tmeaning = array_tlang_pos[0].getMeaning();
assertNotNull(array_tmeaning);
assertTrue(array_tmeaning.length > 0);
limit = -1;
p = TPage.getByPrefix(db, prefix, limit, b_skip_redirects,
source_lang,
b_meaning, b_sem_rel);
assertTrue(p.length > 1);// airplane and "airplane ticket"
}
public void testGetPageTitles() {
System.out.println("getPageTitles");
int limit;
String prefix;
SQLiteDatabase db = ruwikt_conn.getDB();
prefix = "airplane%";
TPage p[] = null;
boolean b_skip_redirects = true;
boolean b_meaning = false;
boolean b_sem_rel = false;
TLang source_lang[] = new TLang [0];
limit = -1;
p = TPage.getByPrefix(db, prefix, limit, b_skip_redirects,
source_lang,
b_meaning, b_sem_rel);
assertTrue(p.length > 1);// airplane and "airplane ticket"
String[] page_titles = TPage.getPageTitles(p);
assertTrue(page_titles.length > 1);
assertEquals(page_titles.length, p.length);
}
}