package wikokit.base.wikt.multi.ru;
import wikokit.base.wikt.multi.ru.WQuoteRu;
import wikokit.base.wikt.util.Definition;
import wikokit.base.wikt.word.WQuote;
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.*;
public class WQuoteRuTest {
public WQuoteRuTest() {
}
@BeforeClass
public static void setUpClass() throws Exception {
}
@AfterClass
public static void tearDownClass() throws Exception {
}
@Before
public void setUp() {
}
@After
public void tearDown() {
}
/**
* Test of getDefinitionBeforeFirstQuote method, of class WQuoteRu.
*/
@Test
public void testGetDefinitionBeforeFirstQuote() {
System.out.println("getDefinitionBeforeFirstQuote");
String text, expResult, result, page_title;
page_title = "самолёт";
text = "# летательный [[аппарат]] тяжелее [[воздух]]а с жёстким [[крыло]]м и собственным [[мотор]]ом {{пример|Самолёт-истребитель.}} {{пример|Военный cамолёт.}} {{пример|Эскадрилья самолётов.}}";
expResult = "летательный [[аппарат]] тяжелее [[воздух]]а с жёстким [[крыло]]м и собственным [[мотор]]ом";
text = Definition.stripNumberSign(page_title, text);
result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
assertEquals(expResult, result);
}
// test definition without quote, e.g. " definition "
@Test
public void testGetDefinitionBeforeFirstQuote_without_example() {
System.out.println("getDefinitionBeforeFirstQuote_without_example");
String text, expResult, result, page_title;
page_title = "самолёт";
text = "# летательный [[аппарат]] тяжелее [[воздух]]а с жёстким [[крыло]]м и собственным [[мотор]]ом ";
expResult = "летательный [[аппарат]] тяжелее [[воздух]]а с жёстким [[крыло]]м и собственным [[мотор]]ом";
text = Definition.stripNumberSign(page_title, text);
result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
assertEquals(expResult, result);
}
// definition without example
@Test
public void testGetQuotes_without_example() {
System.out.println("testGetQuotes_without example");
String text, page_title;
page_title = "самолёт";
// 1. empty example {{пример|}}
text = "# {{сельск.}} имеющий [[волокно]], пригодное для выработки пряжи ";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(0, quote_result.length);
}
// 1. empty example {{пример|}}
@Test
public void testGetQuotes_empty_example() {
System.out.println("testGetQuotes_several");
String text, page_title;
page_title = "самолёт";
text = "# {{сельск.}} имеющий [[волокно]], пригодное для выработки пряжи {{пример|}}";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(0, quote_result.length);
}
// 1. empty example twice {{пример|}} {{пример|}}
@Test
public void testGetQuotes_empty_example_twice() {
System.out.println("testGetQuotes_several");
String text, page_title;
page_title = "самолёт";
text = "# {{сельск.}} имеющий [[волокно]], пригодное для выработки пряжи {{пример|}} {{пример|}}";
text = Definition.stripNumberSign(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(0, quote_result.length);
}
// 1. empty example with empty translation {{пример||перевод=}}
@Test
public void testGetQuotes_empty_example_with_empty_translation() {
System.out.println("testGetQuotes_empty_example_with_empty_translation");
String text, page_title;
page_title = "самолёт";
text = "# {{Нужен перевод}} {{пример||перевод=}}";
text = Definition.stripNumberSign(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(0, quote_result.length);
}
// 1. example without close brackets: "{{пример|some text"
@Test
public void testGetQuotes_empty_example_without_close_brackets() {
System.out.println("testGetQuotes_empty_example_without_close_brackets");
String text, page_title;
page_title = "самолёт";
text = "# definition {{пример|some text";
text = Definition.stripNumberSign(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(0, quote_result.length);
}
// only source: {{пример|||||источник=НКРЯ}}
@Test
public void testGetQuotes_only_source() {
System.out.println("testGetQuotes_several");
String text, page_title;
String exp_text, exp_author, exp_title, exp_source;
int exp_year;
page_title = "army";
// 1. simple: 1 quote (источник=НКРЯ)
text = "# some definition {{пример|||||источник=НКРЯ}}";
text = Definition.stripNumberSign(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(0, quote_result.length);
}
// 1. example with one unknown parameter: "{{пример|xyz=}}"
@Test
public void testGetQuotes_with_one_unknown_parameter() {
System.out.println("testGetQuotes_with_one_unknown_parameter");
String text, page_title;
page_title = "самолёт";
text = "# definition {{пример|xyzyaya=}}";
text = Definition.stripNumberSign(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(0, quote_result.length);
}
// 1. simple: 1 quote (источник=НКРЯ)
@Test
public void testGetQuotes_one_quote() {
System.out.println("testGetQuotes_several");
String text, page_title;
String exp_text, exp_author, exp_title, exp_source;
int exp_year;
page_title = "самолёт";
// 1. simple: 1 quote (источник=НКРЯ)
text = "# {{сельск.}} имеющий [[волокно]], пригодное для выработки пряжи {{пример|Увязочные ... {{выдел|лубяных}} волокон), ... .|Татьяна Матвеева|Реставрация столярно-мебельных изделий|1988|источник=НКРЯ}}";
//{{пример|Увязочные ... {{выдел|лубяных}} волокон), ... .|Татьяна Матвеева|Реставрация столярно-мебельных изделий|1988|источник=НКРЯ}}
exp_text = "Увязочные ... {{выдел|лубяных}} волокон), ... .";
exp_author = "Татьяна Матвеева";
exp_title = "Реставрация столярно-мебельных изделий";
exp_year = 1988;
exp_source = "НКРЯ";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(q.getYearFrom(), exp_year);
assertEquals(q.getYearTo(), exp_year);
}
// |Паустовский|Рассказы о Бабеле||источник=Lib}}
// # {{рег.}} {{жарг.}} процент [[наводчик]]а {{пример|В одну из таких ночей — «{{выдел|карбач}}», |Паустовский|Рассказы о Бабеле||источник=Lib}}
@Test
public void testGetQuotes_empty_year() {
System.out.println("testGetQuotes_empty_year");
String text, page_title;
String exp_text, exp_author, exp_title, exp_source;
int exp_year;
page_title = "карбач_test";
text = "# {{рег.}} {{жарг.}} процент [[наводчик]]а {{пример|В одну из таких ночей — «{{выдел|карбач}}»|Паустовский|Рассказы о Бабеле||источник=Lib}}";
//|Паустовский|Рассказы о Бабеле||источник=Lib}}
exp_text = "В одну из таких ночей — «{{выдел|карбач}}»";
exp_author = "Паустовский";
exp_title = "Рассказы о Бабеле";
exp_year = -1;
exp_source = "Lib";
text = Definition.stripNumberSign(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(q.getYearFrom(), exp_year);
assertEquals(q.getYearTo(), exp_year);
}
// 1 quote with translation
// [[верующий]] {{пример|текст=…У касцёл Святога Роха… ў {{выдел|вернікаў}}…|перевод=В костёл Святого Роха… у {{выдел|верующих}}…|автор=Лідзія Адамовіч|титул=Кветкі самотнай князёўны|источник=БП}}
@Test
public void testGetQuotes_quote_with_translation() {
System.out.println("testGetQuotes_several");
String text, page_title;
String exp_text, exp_translation, exp_author, exp_title, exp_source;
int exp_year;
page_title = "вернік";
text = "# [[верующий]] {{пример|текст=…У касцёл Святога Роха… ў {{выдел|вернікаў}}…|перевод=В костёл Святого Роха… у {{выдел|верующих}}…|автор=Лідзія Адамовіч|титул=Кветкі самотнай князёўны|источник=БП}}";
//{{пример|текст=…У касцёл Святога Роха… ў {{выдел|вернікаў}}…|перевод=В костёл Святого Роха… у {{выдел|верующих}}…|автор=Лідзія Адамовіч|титул=Кветкі самотнай князёўны|источник=БП}}
exp_text = "…У касцёл Святога Роха… ў {{выдел|вернікаў}}…";
exp_translation = "В костёл Святого Роха… у {{выдел|верующих}}…";
// автор=Лідзія Адамовіч|титул=Кветкі самотнай князёўны|источник=БП
exp_author = "Лідзія Адамовіч";
exp_title = "Кветкі самотнай князёўны";
exp_source = "БП";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getTranslation().equalsIgnoreCase( exp_translation ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
}
// empty source: "|источник= "
// # муз. произведение на текст псалма [1] {{пример|текст= Альберт Пис… |перевод=|автор= Г. Риман|титул= Музыкальный словарь |издание=|перев=|дата=|источник= }}
@Test
public void testGetQuotes_one_quote_with_empty_source() {
System.out.println("testGetQuotes_several");
String text, page_title;
String exp_text, exp_author, exp_title, exp_source;
int exp_year;
page_title = "псалом";
text = "# муз. произведение на текст псалма [1] {{пример|текст= Альберт Пис… |перевод=|автор= Г. Риман|титул= Музыкальный словарь |издание=|перев=|дата=|источник= }}";
//{{пример|текст= Альберт Пис… |перевод=|автор= Г. Риман|титул= Музыкальный словарь |издание=|перев=|дата=|источник= }}"
exp_text = "Альберт Пис…";
exp_author = "Г. Риман";
exp_title = "Музыкальный словарь";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertEquals(0, q.getSource().length() );
assertEquals(q.getYearFrom(), -1);
assertEquals(q.getYearTo(), -1);
}
// range of years: 1880—1881
@Test
public void testGetQuotes_range_of_years() {
System.out.println("testGetQuotes_range_of_years");
String text, page_title;
String exp_text, exp_author, exp_title, exp_source;
int exp_year_from, exp_year_to;
page_title = "самолёт";
// 1. simple: 1 quote (источник=НКРЯ)
text = "# {{сельск.}} имеющий [[волокно]], пригодное для выработки пряжи {{пример|Увязочные ... {{выдел|лубяных}} волокон), ... .|Татьяна Матвеева|Реставрация столярно-мебельных изделий|1880—1881|источник=НКРЯ}}";
//{{пример|Увязочные ... {{выдел|лубяных}} волокон), ... .|Татьяна Матвеева|Реставрация столярно-мебельных изделий|1988|источник=НКРЯ}}
exp_text = "Увязочные ... {{выдел|лубяных}} волокон), ... .";
exp_author = "Татьяна Матвеева";
exp_title = "Реставрация столярно-мебельных изделий";
exp_year_from = 1880;
exp_year_to = 1881;
exp_source = "НКРЯ";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
}
// 1830-е (decade; ten years)
@Test
public void testGetQuotes_ten_years() {
System.out.println("testGetQuotes_ten_years");
String text, page_title;
String exp_text, exp_author, exp_title, exp_source;
int exp_year_from, exp_year_to;
page_title = "пестик_test";
text = "# [[плод]] {{пример|какие-то {{выдел|пестики}}.|Одоевский|[[:s:Два дерева (Одоевский)|Два дерева]]|1830-е}}";
// |Одоевский|[[:s:Два дерева (Одоевский)|Два дерева]]|1830-е}}
exp_text = "какие-то {{выдел|пестики}}.";
exp_author = "Одоевский";
exp_title = "Два дерева";
exp_year_from = 1830;
exp_year_to = 1830;
exp_source = "";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(exp_year_from, q.getYearFrom());
assertEquals(exp_year_to, q.getYearTo());
}
// question_in_years e.g. 1862—1875?
@Test
public void testGetQuotes_question_in_years() {
System.out.println("testGetQuotes_question_in_years");
String text, page_title;
String exp_text, exp_author, exp_title, exp_source;
int exp_year_from, exp_year_to;
page_title = "пестик_test";
text = "# [[плод]] {{пример|text|Одоевский|Два дерева|1862—1875?}}";
exp_text = "text";
exp_author = "Одоевский";
exp_title = "Два дерева";
exp_year_from = 1862;
exp_year_to = 1875;
exp_source = "";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(exp_year_from, q.getYearFrom());
assertEquals(exp_year_to, q.getYearTo());
}
// error in range of years: 1880-
@Test
public void testGetQuotes_error_in_range_of_years() {
System.out.println("testGetQuotes_error_in_range_of_years");
String text, page_title;
String exp_text, exp_author, exp_title, exp_source;
int exp_year_from, exp_year_to;
page_title = "самолёт";
// 1. simple: 1 quote (источник=НКРЯ)
text = "# {{сельск.}} имеющий [[волокно]], пригодное для выработки пряжи {{пример|Увязочные ... {{выдел|лубяных}} волокон), ... .|Татьяна Матвеева|Реставрация столярно-мебельных изделий|1880-|источник=НКРЯ}}";
//{{пример|Увязочные ... {{выдел|лубяных}} волокон), ... .|Татьяна Матвеева|Реставрация столярно-мебельных изделий|1988|источник=НКРЯ}}
exp_text = "Увязочные ... {{выдел|лубяных}} волокон), ... .";
exp_author = "Татьяна Матвеева";
exp_title = "Реставрация столярно-мебельных изделий";
exp_year_from = 1880;
exp_year_to = 1880;
exp_source = "НКРЯ";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
}
// range of years with dash template {{-}}: 1998{{-}}2001
@Test
public void testGetQuotes_dash_template_in_range_of_years() {
System.out.println("testGetQuotes_dash template_in_range_of_years");
String text, page_title;
int exp_year_from, exp_year_to;
page_title = "как скажете";
text = "# как пожелаете; в соответствии с вашими пожеланиями {{пример|{{-}}{{выдел|Как скажете}}, {{-}}не стал спорить мужичок. … {{-}}Ладно, {{выдел|как скажете}}.|Дмитрий Браславский|Паутина Лайгаша|1998{{-}}2001}}";
//{{пример|{{-}}{{выдел|Как скажете}}, {{-}}не стал спорить мужичок. … {{-}}Ладно, {{выдел|как скажете}}.|Дмитрий Браславский|Паутина Лайгаша|1998{{-}}2001}}
exp_year_from = 1998;
exp_year_to = 2001;
text = Definition.stripNumberSign(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertEquals(exp_year_from, q.getYearFrom());
assertEquals(exp_year_to, q.getYearTo());
}
// extract year from day_month_year
//
// # отступиться {{пример|... {{выдел|отойти}} от шаблонов, становящихся ярлыками.|Н. С. Лейтес|О признаках детской одаренности|издание=Вопросы психологии|22 июля 2003|источник=НКРЯ}}
// years = 22 июля 2003
@Test
public void testGetQuotes_extract_year_from_day_month_year() {
System.out.println("testGetQuotes_extract_year_from_day_month_year");
String text, page_title;
String exp_text, exp_author, exp_title, exp_publisher, exp_source;
int exp_year_from, exp_year_to;
page_title = "отойти";
// 1. simple: 1 quote (источник=НКРЯ)
text = "# отступиться {{пример|... {{выдел|отойти}} от шаблонов, становящихся ярлыками.|Н. С. Лейтес|О признаках детской одаренности|издание=Вопросы психологии|22 июля 2003|источник=НКРЯ}}";
exp_text = "... {{выдел|отойти}} от шаблонов, становящихся ярлыками.";
exp_author = "Н. С. Лейтес";
exp_title = "О признаках детской одаренности";
// 22 июля 2003
exp_year_from = 2003;
exp_year_to = 2003;
exp_publisher = "Вопросы психологии";
exp_source = "НКРЯ";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getPublisher().equalsIgnoreCase( exp_publisher ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
}
// years = 2 июля 2003
@Test
public void testGetQuotes_extract_year_from_1day_month_year() {
System.out.println("testGetQuotes_extract_year_from_1day_month_year");
String text, page_title;
String exp_text, exp_author, exp_title, exp_publisher, exp_source;
int exp_year_from, exp_year_to;
page_title = "отойти";
// 1. simple: 1 quote (источник=НКРЯ)
text = "# отступиться {{пример|... {{выдел|отойти}} от шаблонов, становящихся ярлыками.|Н. С. Лейтес|О признаках детской одаренности|издание=Вопросы психологии|2 февраля 2003|источник=НКРЯ}}";
exp_text = "... {{выдел|отойти}} от шаблонов, становящихся ярлыками.";
exp_author = "Н. С. Лейтес";
exp_title = "О признаках детской одаренности";
// 22 июля 2003
exp_year_from = 2003;
exp_year_to = 2003;
exp_publisher = "Вопросы психологии";
exp_source = "НКРЯ";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getPublisher().equalsIgnoreCase( exp_publisher ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
}
// year = "08-07-2011" "XX-XX-year"
// # {{собир.|ba}} [[скот]], [[сельскохозяйственный|сельскохозяйственные]] [[животное|животные]] {{пример|Тап шундай берәҙәк эттәр ваҡ {{выдел|мал}} һәм...|перевод=Как раз...||Юлдарҙа —“тере баръерҙар”|издание=Таң|17-11-2011}}
@Test
public void testGetQuotes_extract_year_from_day_dash_month_dash_year() {
System.out.println("testGetQuotes_extract_year_from_day_dash_month_dash_year");
String text, page_title;
String exp_text, exp_translation, exp_author, exp_title, exp_publisher, exp_source;
int exp_year_from, exp_year_to;
WQuote[] quote_result;
WQuote q;
// 1. bad case: "-"
page_title = "bad case: -";
text = "# some text {{пример|Quote text.|Some author|Some title|-}}";
exp_text = "Quote text.";
exp_author = "Some author";
exp_title = "Some title";
// -
exp_year_from = -1;
exp_year_to = -1;
text = Definition.stripNumberSign(page_title, text);
quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
// 2. good case
page_title = "милләт";
// 1. 17-11-2011
text = "# {{собир.|ba}} [[скот]], [[сельскохозяйственный|сельскохозяйственные]] [[животное|животные]] {{пример|Тап шундай берәҙәк эттәр ваҡ {{выдел|мал}} һәм...|перевод=Как раз...||Юлдарҙа —“тере баръерҙар”|издание=Таң|17-11-2011}}";
exp_text = "Тап шундай берәҙәк эттәр ваҡ {{выдел|мал}} һәм...";
exp_translation = "Как раз...";
exp_author = "";
exp_title = "Юлдарҙа —“тере баръерҙар”";
exp_publisher = "Таң";
exp_source = "";
// 17-11-2011
exp_year_from = 2011;
exp_year_to = 2011;
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getTranslation().equalsIgnoreCase( exp_translation ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getPublisher().equalsIgnoreCase( exp_publisher ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
}
// year = "06.05.2006" "XX.XX.YEAR"
// # [[рубашка]] на [[планка|планке]] {{пример|Свитера, {{выдел|пайты}} и футболки нежно обнимали спинки и подлокотники, диванов и кресел.||Наш Донецк|06.05.2006}}
@Test
public void testGetQuotes_extract_year_from_day_dot_month_dot_year() {
System.out.println("testGetQuotes_extract_year_from_day_dash_month_dash_year");
String text, page_title;
String exp_text, exp_author, exp_title;
int exp_year_from, exp_year_to;
page_title = "пайта";
// 1. 06.05.2006
text = "# [[рубашка]] на [[планка|планке]] {{пример|Свитера, {{выдел|пайты}} и футболки нежно обнимали спинки и подлокотники, диванов и кресел.||Наш Донецк|06.05.2006}}";
exp_text = "Свитера, {{выдел|пайты}} и футболки нежно обнимали спинки и подлокотники, диванов и кресел.";
exp_author = "";
exp_title = "Наш Донецк";
// 06.05.2006
exp_year_from = 2006;
exp_year_to = 2006;
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
}
// year = "12, 2000"
// # [[штрафной удар]] {{пример|«Локомотив» вновь впал в анабиоз...|Алексей Самура|Ничья вслепую. Герои и неудачники 21-го тура первенства страны по футболу|издание=Известия|12, 2000|источник=НКРЯ}}
@Test
public void testGetQuotes_extract_year_from_year_dot_month_dot_day() {
System.out.println("testGetQuotes_extract_year_from_year_dot_month_dot_day");
String text, page_title;
String exp_text, exp_author, exp_title, exp_publisher, exp_source;
int exp_year_from, exp_year_to;
page_title = "пенальти";
// 1. simple: 1 quote (источник=НКРЯ)
text = "# [[штрафной удар]] {{пример|«Локомотив» вновь впал в анабиоз...|Алексей Самура|Ничья вслепую. Герои и неудачники 21-го тура первенства страны по футболу|издание=Известия|12, 2000|источник=НКРЯ}}";
exp_text = "«Локомотив» вновь впал в анабиоз...";
exp_author = "Алексей Самура";
exp_title = "Ничья вслепую. Герои и неудачники 21-го тура первенства страны по футболу";
// 2002.08.26
exp_year_from = 2000;
exp_year_to = 2000;
exp_publisher = "Известия";
exp_source = "НКРЯ";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getPublisher().equalsIgnoreCase( exp_publisher ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
}
// wikified words in the text
@Test
public void testGetQuotes_wikified_words_in_text() {
System.out.println("testGetQuotes_wikified_words_in_text");
String text, page_title;
String exp_text, exp_author, exp_title, exp_source;
int exp_year_from, exp_year_to;
page_title = "самолёт";
// 1. simple: 1 quote (источник=НКРЯ)
text = "# {{сельск.}} имеющий [[волокно]], пригодное для выработки пряжи {{пример|[[увязочный|Увязочные]] ... {{выдел|лубяных}} [[волокно|волокон]]), ... .|Татьяна Матвеева|Реставрация столярно-мебельных изделий|1880-|источник=НКРЯ}}";
//{{пример|Увязочные ... {{выдел|лубяных}} волокон), ... .|Татьяна Матвеева|Реставрация столярно-мебельных изделий|1988|источник=НКРЯ}}
exp_text = "[[увязочный|Увязочные]] ... {{выдел|лубяных}} [[волокно|волокон]]), ... .";
exp_author = "Татьяна Матвеева";
exp_title = "Реставрация столярно-мебельных изделий";
exp_year_from = 1880;
exp_year_to = 1880;
exp_source = "НКРЯ";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
}
// 3. complex: several quotes (sentences)
@Test
public void testGetQuotes_several() {
System.out.println("testGetQuotes_several");
String text, page_title;
String exp_text, exp_author, exp_title, exp_source;
int exp_year_from, exp_year_to;
page_title = "великолепие";
text = "# [[роскошь]], богатое убранство {{пример|Внутреннее {{выдел|великолепие}} дворца...|И. А. Крылов|Каиб|Восточная повесть|1792|источник=НКРЯ}} {{пример|...и поражает {{выдел|великолепием}} туалетов.|Салтыков-Щедрин|За рубежом|1880—1881}}";
// error: two titles: Каиб|Восточная повесть => 1792 is uknown unnamed field
// {{пример|Внутреннее {{выдел|великолепие}} дворца...|И. А. Крылов|Каиб|Восточная повесть|1792|источник=НКРЯ}}
exp_text = "Внутреннее {{выдел|великолепие}} дворца...";
exp_author = "И. А. Крылов";
exp_title = "Каиб";
exp_year_from = -1;
exp_year_to = -1;
exp_source = "НКРЯ";
String exp_text2, exp_author2, exp_title2, exp_source2;
int exp_year_from2, exp_year_to2;
// {{пример|...и поражает {{выдел|великолепием}} туалетов.|Салтыков-Щедрин|За рубежом|1880—1881}}
exp_text2 = "...и поражает {{выдел|великолепием}} туалетов.";
exp_author2 = "Салтыков-Щедрин";
exp_title2 = "За рубежом";
exp_year_from2 = 1880;
exp_year_to2 = 1881;
exp_source2 = "";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(2, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
WQuote q2 = quote_result[1];
assertTrue(q2.getText().equalsIgnoreCase( exp_text2 ) );
assertTrue(q2.getAuthor().equalsIgnoreCase( exp_author2 ) );
assertTrue(q2.getTitle().equalsIgnoreCase( exp_title2 ) );
assertTrue(q2.getSource().equalsIgnoreCase( exp_source2 ) );
assertEquals(q2.getYearFrom(), exp_year_from2);
assertEquals(q2.getYearTo(), exp_year_to2);
}
// title with wikilink to wikisource (title_wikilink),
// for example: [[:s:У окна (Андреев)|У окна]]
@Test
public void testGetQuotes_with_title_wikilink() {
System.out.println("testGetQuotes_with_title_wikilink");
String text, page_title;
String exp_text, exp_author, exp_title, exp_title_wikilink, exp_source;
int exp_year_from, exp_year_to;
page_title = "самолёт";
text = "# {{п.}}, {{бранн.}} злобный, коварный человек {{пример|— Ах, кровопивец, ах, {{выдел|аспид}}! — шептала хозяйка. — Ушла бы ты от него совсем, ну его к ляду!|Леонид Андреев|[[:s:У окна (Андреев)|У окна]]|1899}}";
// Леонид Андреев|[[:s:У окна (Андреев)|У окна]]|1899
exp_text = "— Ах, кровопивец, ах, {{выдел|аспид}}! — шептала хозяйка. — Ушла бы ты от него совсем, ну его к ляду!";
exp_author = "Леонид Андреев";
exp_title = "У окна";
exp_title_wikilink = "У окна (Андреев)";
exp_year_from = 1899;
exp_year_to = 1899;
exp_source = "";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getTitleWikilink().equalsIgnoreCase( exp_title_wikilink ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
}
// title with wikilink to wikisource (title_wikilink),
// replace by " " in titles and author names, for example:
// [[:w:Михайлов, Михаил Ларионович|М. Л. Михайлов]]|[[:s:Два Мороза (Михайлов)|Два Мороза]]
// [[:w:Гапон, Георгий Аполлонович|Г. А. Гапон]]
@Test
public void testGetQuotes_with_author_wikilink() {
System.out.println("testGetQuotes_author_wikilink");
String text, page_title;
String exp_text, exp_author, exp_author_wikilink, exp_title, exp_title_wikilink, exp_source;
int exp_year_from, exp_year_to;
page_title = "замести";
text = "# засыпать {{пример|Поле всё снегом занесло...|[[:w:Михайлов, Михаил Ларионович|М. Л. Михайлов]]|[[s:Два Мороза (Михайлов)|Два Мороза]]|}}";
exp_text = "Поле всё снегом занесло...";
exp_author = "М. Л. Михайлов";
exp_author_wikilink = "Михайлов, Михаил Ларионович";
exp_title = "Два Мороза";
exp_title_wikilink = "Два Мороза (Михайлов)";
exp_year_from = -1;
exp_year_to = -1;
exp_source = "";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getAuthorWikilink().equalsIgnoreCase( exp_author_wikilink ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getTitleWikilink().equalsIgnoreCase( exp_title_wikilink ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
}
// # {{действие|полоть}} {{пример|Уход за высеянным зерном ячменя... и {{выдел|полкой}} сорных трав.||[[:s:ЭСБЕ/Ячмень|Ячмень]]|источник=ЭСБЕ}}
@Test
public void testGetQuotes_with_title_wikilink_and_slash() {
System.out.println("testGetQuotes_with_title_wikilink_and_slash");
String text, page_title;
String exp_text, exp_author, exp_author_wikilink, exp_title, exp_title_wikilink, exp_source;
int exp_year_from, exp_year_to;
page_title = "полка";
text = "# {{действие|полоть}} {{пример|Уход за высеянным зерном ... {{выдел|полкой}} сорных трав.||[[:s:ЭСБЕ/Ячмень|Ячмень]]|источник=ЭСБЕ}}";
// Уход за высеянным зерном ... {{выдел|полкой}} сорных трав.||[[:s:ЭСБЕ/Ячмень|Ячмень]]|источник=ЭСБЕ
exp_text = "Уход за высеянным зерном ... {{выдел|полкой}} сорных трав.";
exp_author = "";
exp_author_wikilink = "";
exp_title = "Ячмень";
exp_title_wikilink = "ЭСБЕ/Ячмень";
exp_year_from = -1;
exp_year_to = -1;
exp_source = "ЭСБЕ";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getAuthorWikilink().equalsIgnoreCase( exp_author_wikilink ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getTitleWikilink().equalsIgnoreCase( exp_title_wikilink ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
}
// {{пример|Он простер руку, {{выдел|прикоснулся}} к нему и сказал: хочу, очистись.||{{библия|Лук|5:13}}|перев=синодальный|1816—1862|источник=source}}
// title={{библия|Лук|5:13}}
@Test
public void testGetQuotes_title_with_template_Bible() {
System.out.println("testGetQuotes_title_with_template_Bible");
String text, page_title;
String exp_text, exp_author, exp_author_wikilink, exp_title, exp_title_wikilink, exp_source;
int exp_year_from, exp_year_to;
page_title = "прикоснуться";
// 1. {{библия|Лук|5:13}}
text = "# [[притронуться]] {{пример|Он простер руку, {{выдел|прикоснулся}} к нему и сказал: хочу, очистись.||{{библия|Лук|5:13}}|перев=синодальный|1816—1862|источник=source}}";
// Он простер руку, {{выдел|прикоснулся}} к нему и сказал: хочу, очистись.||{{библия|Лук|5:13}}|перев=синодальный|1816—1862|источник=source
exp_text = "Он простер руку, {{выдел|прикоснулся}} к нему и сказал: хочу, очистись.";
exp_author = "";
exp_author_wikilink = "";
exp_title = "Лук.5:13";
exp_title_wikilink = "";
exp_year_from = 1816;
exp_year_to = 1862;
exp_source = "source";
text = Definition.stripNumberSign(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getAuthorWikilink().equalsIgnoreCase( exp_author_wikilink ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getTitleWikilink().equalsIgnoreCase( exp_title_wikilink ) );
assertTrue(q.getSource().equalsIgnoreCase( exp_source ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
// 2. {{Библия|Быт|1:1}}—{{Библия2|Быт|1:31|31}}
text = "# [[притронуться]] {{пример|Он простер руку, {{выдел|прикоснулся}} к нему и сказал: хочу, очистись.||{{Библия|Быт|1:1}}—{{Библия2|Быт|1:31|31}}|перев=синодальный|1816—1862|источник=source}}";
exp_title = "Быт.1:1—Быт.1:31.31";
text = Definition.stripNumberSign(page_title, text);
quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
q = quote_result[0];
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertTrue(q.getTitleWikilink().equalsIgnoreCase( exp_title_wikilink ) );
}
// title with quote template: Шаблон:"
// # [[костяк]]; [[скелет]] [[животное|животного]] {{пример|Мне сказывали здесь, что про найденный недавно {{выдел|остов}} мамонта кто-то выдумал объявить чукчам, что им приведется везти его в Якутск, и они растаскали и истребили его так, что теперь и следов нет.|Гончаров|Фрегат {{"|Паллада}}|1855}}
@Test
public void testGetQuotes_title_with_quote_template() {
System.out.println("testGetQuotes_title_with_quote_template");
String text, page_title;
String exp_text, exp_author, exp_author_wikilink, exp_title, exp_title_wikilink, exp_source;
int exp_year_from, exp_year_to;
page_title = "замести";
text = "# [[скелет]] [[животное|животного]] {{пример|...{{выдел|остов}} мамонта...|Гончаров|Фрегат {{\"|Паллада}}|1855}}";
exp_text = "...{{выдел|остов}} мамонта...";
exp_author = "Гончаров";
exp_author_wikilink = "";
// source title = Фрегат {{"|Паллада}}
exp_title = "Фрегат \"Паллада\"";
exp_title_wikilink = "";
exp_year_from = 1855;
exp_year_to = 1855;
exp_source = "";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
}
// title with another quote template: Шаблон:кавычки with lang code
// # [[мать]] {{пример|{{кавычки|ru|Jam temp'esta}},{{-}}отвечала ему...|Л. Юзефович|Казароза|2002}}
@Test
public void testGetQuotes_title_with_second_quote_template() {
System.out.println("testGetQuotes_title_with_second_quote_template");
String text, page_title;
String exp_text, exp_author, exp_author_wikilink, exp_title, exp_title_wikilink, exp_source;
int exp_year_from, exp_year_to;
page_title = "matro";
text = "# [[мать]] {{пример|{{кавычки|ru|Jam temp'esta}},{{-}}отвечала ему...|Л. Юзефович|Казароза|2002}}";
// {{кавычки|ru|Jam temp'esta}}
exp_text = "\"Jam temp'esta\",{{-}}отвечала ему...";
exp_author = "Л. Юзефович";
exp_author_wikilink = "";
exp_title = "Казароза";
exp_title_wikilink = "";
exp_year_from = 2002;
exp_year_to = 2002;
exp_source = "";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
}
// title with another quote template: Шаблон:кавычки without lang code
// # [[мать]] {{пример|{{кавычки|Jam temp'esta}},{{-}}отвечала ему...|Л. Юзефович|Казароза|2002}}
@Test
public void testGetQuotes_title_with_second_quote_template_without_lang_code() {
System.out.println("testGetQuotes_title_with_second_quote_template_without_lang_code");
String text, page_title;
String exp_text, exp_author, exp_author_wikilink, exp_title, exp_title_wikilink, exp_source;
int exp_year_from, exp_year_to;
page_title = "matro";
text = "# [[мать]] {{пример|{{кавычки|Jam temp'esta}},{{-}}отвечала ему...|Л. Юзефович|Казароза|2002}}";
// {{кавычки|ru|Jam temp'esta}}
exp_text = "\"Jam temp'esta\",{{-}}отвечала ему...";
exp_author = "Л. Юзефович";
exp_author_wikilink = "";
exp_title = "Казароза";
exp_title_wikilink = "";
exp_year_from = 2002;
exp_year_to = 2002;
exp_source = "";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
}
// title with quote template at the end of the sentence: Шаблон:"
// # the definition {{пример|The sentence.|The Author|The title{{"||1855}}
@Test
public void testGetQuotes_title_with_quote_template_at_the_end_of_title() {
System.out.println("testGetQuotes_title_with_quote_template_at_the_end_of_title");
String text, page_title;
String exp_text, exp_author, exp_author_wikilink, exp_title, exp_title_wikilink, exp_source;
int exp_year_from, exp_year_to;
page_title = "замести";
text = "# the definition {{пример|The sentence.|The Author|The title{{\"|}}|1855}}";
exp_text = "The sentence.";
exp_author = "The Author";
exp_author_wikilink = "";
// source title = Фрегат {{"|Паллада}}
exp_title = "The title\"\"";
exp_title_wikilink = "";
exp_year_from = 1855;
exp_year_to = 1855;
exp_source = "";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
}
// # the definition {{пример|The sentence.|The Author|Характеристика вакцины против гепатита A {{"|Avaxim}} производства фирмы {{"|Пастер Мерье}} (результаты поле)}}
@Test
public void testGetQuotes_title_with_several_quote_templates_in_title() {
System.out.println("testGetQuotes_title_with_several_quote_templates_in_title");
String text, page_title;
String exp_text, exp_author, exp_author_wikilink, exp_title, exp_title_wikilink, exp_source;
int exp_year_from, exp_year_to;
// 1. "|
page_title = "замести";
text = "# the definition {{пример|The sentence.|The Author|The title{{\"|}} and {{\"|again}}|1855}}";
exp_text = "The sentence.";
exp_author = "The Author";
exp_author_wikilink = "";
// source title = The title{{\"|}} and {{\"|again}}
exp_title = "The title\"\" and \"again\"";
exp_title_wikilink = "";
exp_year_from = 1855;
exp_year_to = 1855;
exp_source = "";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
assertEquals(q.getYearFrom(), exp_year_from);
assertEquals(q.getYearTo(), exp_year_to);
// 2. кавычки|
text = "# the definition {{пример|The sentence.|The Author|The title{{кавычки|}} and {{кавычки|again}}|1855}}";
text = Definition.stripNumberSign(page_title, text);
//result = WQuoteRu.getDefinitionBeforeFirstQuote(page_title, text);
quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
q = quote_result[0];
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
}
// text with template:Cyrs
// # [[петь]] {{пример|{{Cyrs|Дѣвици {{выдел|поютъ}} на Дунаи — вьются голоси чрезъ море до Кіева}}||Слово о походе Игоревом (XII век)}}
@Test
public void testGetQuotes_with_Cyrs_template() {
System.out.println("testGetQuotes_with_Cyrs_template");
String text, page_title;
String exp_text, exp_author, exp_author_wikilink, exp_title, exp_title_wikilink, exp_source;
int exp_year_from, exp_year_to;
page_title = "пѣти";
text = "# [[петь]] {{пример|{{Cyrs|Дѣвици {{выдел|поютъ}} на Дунаи — вьются голоси чрезъ море до Кіева}}||Слово о походе Игоревом (XII век)}}";
// {{кавычки|ru|Jam temp'esta}}
exp_text = "Дѣвици {{выдел|поютъ}} на Дунаи — вьются голоси чрезъ море до Кіева";
exp_author = "";
exp_author_wikilink = "";
exp_title = "Слово о походе Игоревом (XII век)";
exp_title_wikilink = "";
exp_source = "";
text = Definition.stripNumberSign(page_title, text);
WQuote[] quote_result = WQuoteRu.getQuotes(page_title, text);
assertTrue(null != quote_result);
assertEquals(1, quote_result.length);
WQuote q = quote_result[0];
assertTrue(q.getText().equalsIgnoreCase( exp_text ) );
assertTrue(q.getAuthor().equalsIgnoreCase( exp_author ) );
assertTrue(q.getTitle().equalsIgnoreCase( exp_title ) );
}
}