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 ) ); } }