/*
* Copyright 2000-2013 Enonic AS
* http://www.enonic.com/license
*/
package net.sf.saxon.number;
import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import junit.framework.Assert;
import junit.framework.TestCase;
public class Numberer_ruTest
extends TestCase
{
public void test_verify_java_source_is_encoded_as_utf8 ()
{
assertEquals( "\u0439", "й" );
}
public void testToWords()
{
Numberer_ru numberer = new Numberer_ru();
Assert.assertEquals( decode( "" ), numberer.toWords( 0 ) );
Assert.assertEquals( decode( "один" ), numberer.toWords( 1 ) );
Assert.assertEquals( decode( "два" ), numberer.toWords( 2 ) );
Assert.assertEquals( decode( "три" ), numberer.toWords( 3 ) );
Assert.assertEquals( decode( "четыре" ), numberer.toWords( 4 ) );
Assert.assertEquals( decode( "десять" ), numberer.toWords( 10 ) );
Assert.assertEquals( decode( "одиннадцать" ), numberer.toWords( 11 ) );
Assert.assertEquals( decode( "двенадцать" ), numberer.toWords( 12 ) );
Assert.assertEquals( decode( "тринадцать" ), numberer.toWords( 13 ) );
Assert.assertEquals( decode( "четырнадцать" ), numberer.toWords( 14 ) );
Assert.assertEquals( decode( "двадцать" ), numberer.toWords( 20 ) );
Assert.assertEquals( decode( "двадцать один" ), numberer.toWords( 21 ) );
Assert.assertEquals( decode( "двадцать два" ), numberer.toWords( 22 ) );
Assert.assertEquals( decode( "двадцать три" ), numberer.toWords( 23 ) );
Assert.assertEquals( decode( "двадцать четыре" ), numberer.toWords( 24 ) );
Assert.assertEquals( decode( "сто" ), numberer.toWords( 100 ) );
Assert.assertEquals( decode( "двести" ), numberer.toWords( 200 ) );
Assert.assertEquals( decode( "сто двадцать" ), numberer.toWords( 120 ) );
Assert.assertEquals( decode( "сто двадцать один" ), numberer.toWords( 121 ) );
Assert.assertEquals( decode( "сто двадцать два" ), numberer.toWords( 122 ) );
Assert.assertEquals( decode( "сто двадцать три" ), numberer.toWords( 123 ) );
Assert.assertEquals( decode( "сто двадцать четыре" ), numberer.toWords( 124 ) );
Assert.assertEquals( decode( "одна тысяча" ), numberer.toWords( 1000 ) );
Assert.assertEquals( decode( "одна тысяча один" ), numberer.toWords( 1001 ) );
Assert.assertEquals( decode( "одна тысяча сто двадцать" ), numberer.toWords( 1120 ) );
Assert.assertEquals( decode( "две тысячи" ), numberer.toWords( 2000 ) );
Assert.assertEquals( decode( "две тысячи сто двадцать" ), numberer.toWords( 2120 ) );
Assert.assertEquals( decode( "две тысячи сто двадцать один" ), numberer.toWords( 2121 ) );
Assert.assertEquals( decode( "две тысячи сто двадцать два" ), numberer.toWords( 2122 ) );
Assert.assertEquals( decode( "две тысячи сто двадцать три" ), numberer.toWords( 2123 ) );
Assert.assertEquals( decode( "две тысячи сто двадцать четыре" ), numberer.toWords( 2124 ) );
Assert.assertEquals( decode( "две тысячи двадцать" ), numberer.toWords( 2020 ) );
Assert.assertEquals( decode( "две тысячи двадцать один" ), numberer.toWords( 2021 ) );
Assert.assertEquals( decode( "две тысячи двадцать два" ), numberer.toWords( 2022 ) );
Assert.assertEquals( decode( "две тысячи двадцать три" ), numberer.toWords( 2023 ) );
Assert.assertEquals( decode( "две тысячи двадцать четыре" ), numberer.toWords( 2024 ) );
Assert.assertEquals( decode( "десять" ), numberer.toWords( 10 ) );
Assert.assertEquals( decode( "сто" ), numberer.toWords( 100 ) );
Assert.assertEquals( decode( "одна тысяча" ), numberer.toWords( 1000 ) );
Assert.assertEquals( decode( "десять тысяч" ), numberer.toWords( 10000 ) );
Assert.assertEquals( decode( "сто тысяч" ), numberer.toWords( 100000 ) );
Assert.assertEquals( decode( "один миллион" ), numberer.toWords( 1000000 ) );
Assert.assertEquals( decode( "десять миллионов" ), numberer.toWords( 10000000 ) );
Assert.assertEquals( decode( "сто миллионов" ), numberer.toWords( 100000000 ) );
Assert.assertEquals( decode( "один миллиард" ), numberer.toWords( 1000000000 ) );
Assert.assertEquals( decode( "десять миллиардов" ), numberer.toWords( 10000000000L ) );
Assert.assertEquals( decode( "сто миллиардов" ), numberer.toWords( 100000000000L ) );
Assert.assertEquals( decode( "двадцать" ), numberer.toWords( 20 ) );
Assert.assertEquals( decode( "двести" ), numberer.toWords( 200 ) );
Assert.assertEquals( decode( "две тысячи" ), numberer.toWords( 2000 ) );
Assert.assertEquals( decode( "двадцать тысяч" ), numberer.toWords( 20000 ) );
Assert.assertEquals( decode( "двести тысяч" ), numberer.toWords( 200000 ) );
Assert.assertEquals( decode( "два миллиона" ), numberer.toWords( 2000000 ) );
Assert.assertEquals( decode( "двадцать миллионов" ), numberer.toWords( 20000000 ) );
Assert.assertEquals( decode( "двести миллионов" ), numberer.toWords( 200000000 ) );
Assert.assertEquals( decode( "два миллиарда" ), numberer.toWords( 2000000000 ) );
Assert.assertEquals( decode( "двадцать миллиардов" ), numberer.toWords( 20000000000L ) );
Assert.assertEquals( decode( "двести миллиардов" ), numberer.toWords( 200000000000L ) );
Assert.assertEquals(
decode( "четыреста двенадцать миллиардов четыреста двенадцать миллионов четыреста двенадцать тысяч четыреста двенадцать" ),
numberer.toWords( 412412412412L ) );
Assert.assertEquals( decode( "два миллиарда два" ), numberer.toWords( 2000000002 ) );
Assert.assertEquals( decode( "один миллиард сто одиннадцать миллионов сто одиннадцать тысяч сто одиннадцать" ),
numberer.toWords( 1111111111 ) );
Assert.assertEquals( decode( "сто один миллиард сто один миллион сто одна тысяча сто один" ),
numberer.toWords( 101101101101L ) );
Assert.assertEquals(
decode( "сто одиннадцать миллиардов сто одиннадцать миллионов сто одиннадцать тысяч сто одиннадцать" ),
numberer.toWords( 111111111111L ) );
Assert.assertEquals( decode( "сто двадцать миллиардов сто двадцать миллионов сто двадцать тысяч сто двадцать" ),
numberer.toWords( 120120120120L ) );
Assert.assertEquals(
decode( "сто двадцать один миллиард сто двадцать один миллион сто двадцать одна тысяча сто двадцать один" ),
numberer.toWords( 121121121121L ) );
Assert.assertEquals(
decode( "двести двадцать два миллиарда двести двадцать два миллиона двести двадцать две тысячи двести двадцать два" ),
numberer.toWords( 222222222222L ) );
Assert.assertEquals( decode( "четыреста одна тысяча пятьсот пятьдесят пять" ), numberer.toWords( 401555 ) );
Assert.assertEquals( decode( "четыреста шестьдесят одна тысяча пятьсот пятьдесят пять" ),
numberer.toWords( 461555 ) );
Assert.assertEquals( decode( "четыреста шестьдесят три тысячи пятьсот пятьдесят пять" ),
numberer.toWords( 463555 ) );
Assert.assertEquals( decode( "четыреста две тысячи пятьсот пятьдесят пять" ), numberer.toWords( 402555 ) );
Assert.assertEquals( decode( "четыреста шестьдесят две тысячи пятьсот пятьдесят пять" ),
numberer.toWords( 462555 ) );
Assert.assertEquals( decode( "двадцать две тысячи" ), numberer.toWords( 22000 ) );
Assert.assertEquals( decode( "двести двадцать две тысячи" ), numberer.toWords( 222000 ) );
Assert.assertEquals( decode( "четыреста одна тысяча сто один" ), numberer.toWords( 401101 ) );
Assert.assertEquals( decode( "четыреста сорок одна тысяча сто один" ), numberer.toWords( 441101 ) );
Assert.assertEquals( decode( "четыреста двадцать две тысячи сто один" ), numberer.toWords( 422101 ) );
Assert.assertEquals( decode( "сорок одна тысяча сто один" ), numberer.toWords( 41101 ) );
Assert.assertEquals(
decode( "триста тридцать три миллиарда триста тридцать три миллиона триста тридцать три тысячи триста тридцать три" ),
numberer.toWords( 333333333333L ) );
}
public void testSpecWords1()
{
Numberer_ru numberer = new Numberer_ru();
Assert.assertEquals( decode( "первый" ), numberer.toOrdinalWords( "", 1, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "десятый" ), numberer.toOrdinalWords( "", 10, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "сотый" ), numberer.toOrdinalWords( "", 100, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "однатысячный" ), numberer.toOrdinalWords( "", 1000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "десятитысячный" ),
numberer.toOrdinalWords( "", 10000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "стотысячный" ),
numberer.toOrdinalWords( "", 100000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "однамиллионный" ),
numberer.toOrdinalWords( "", 1000000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "десятимиллионный" ),
numberer.toOrdinalWords( "", 10000000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "стомиллионный" ),
numberer.toOrdinalWords( "", 100000000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "однамиллиардный" ),
numberer.toOrdinalWords( "", 1000000000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "десятимиллиардный" ),
numberer.toOrdinalWords( "", 10000000000L, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "стомиллиардный" ),
numberer.toOrdinalWords( "", 100000000000L, AbstractNumberer.LOWER_CASE ) );
}
public void testSpecWords2()
{
Numberer_ru numberer = new Numberer_ru();
Assert.assertEquals( decode( "второй" ), numberer.toOrdinalWords( "", 2, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двадцатый" ), numberer.toOrdinalWords( "", 20, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двухсотый" ), numberer.toOrdinalWords( "", 200, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двухтысячный" ),
numberer.toOrdinalWords( "", 2000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двадцатитысячный" ),
numberer.toOrdinalWords( "", 20000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двухсоттысячный" ),
numberer.toOrdinalWords( "", 200000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двухмиллионный" ),
numberer.toOrdinalWords( "", 2000000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двадцатимиллионный" ),
numberer.toOrdinalWords( "", 20000000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двухсотмиллионный" ),
numberer.toOrdinalWords( "", 200000000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двухмиллиардный" ),
numberer.toOrdinalWords( "", 2000000000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двадцатимиллиардный" ),
numberer.toOrdinalWords( "", 20000000000L, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двухсотмиллиардный" ),
numberer.toOrdinalWords( "", 200000000000L, AbstractNumberer.LOWER_CASE ) );
}
public void testSpecWords3()
{
Numberer_ru numberer = new Numberer_ru();
Assert.assertEquals( decode( "третий" ), numberer.toOrdinalWords( "", 3, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "тридцатый" ), numberer.toOrdinalWords( "", 30, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "трехсотый" ), numberer.toOrdinalWords( "", 300, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "трехтысячный" ),
numberer.toOrdinalWords( "", 3000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "тридцатитысячный" ),
numberer.toOrdinalWords( "", 30000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "трехсоттысячный" ),
numberer.toOrdinalWords( "", 300000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "трехмиллионный" ),
numberer.toOrdinalWords( "", 3000000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "тридцатимиллионный" ),
numberer.toOrdinalWords( "", 30000000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "трехсотмиллионный" ),
numberer.toOrdinalWords( "", 300000000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "трехмиллиардный" ),
numberer.toOrdinalWords( "", 3000000000L, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "тридцатимиллиардный" ),
numberer.toOrdinalWords( "", 30000000000L, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "трехсотмиллиардный" ),
numberer.toOrdinalWords( "", 300000000000L, AbstractNumberer.LOWER_CASE ) );
}
public void testSpecWords11()
{
Numberer_ru numberer = new Numberer_ru();
Assert.assertEquals( decode( "одиннадцатый" ), numberer.toOrdinalWords( "", 11, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "сто первый" ), numberer.toOrdinalWords( "", 101, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "сто десятый" ), numberer.toOrdinalWords( "", 110, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "одна тысяча первый" ),
numberer.toOrdinalWords( "", 1001, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "одна тысяча десятый" ),
numberer.toOrdinalWords( "", 1010, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "одна тысяча сотый" ),
numberer.toOrdinalWords( "", 1100, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "одна тысяча сто десятый" ),
numberer.toOrdinalWords( "", 1110, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "десять тысяч первый" ),
numberer.toOrdinalWords( "", 10001, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "десять тысяч десятый" ),
numberer.toOrdinalWords( "", 10010, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "десять тысяч сто десятый" ),
numberer.toOrdinalWords( "", 10110, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "сто тысяч десятый" ),
numberer.toOrdinalWords( "", 100010, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "сто одна тысяча десятый" ),
numberer.toOrdinalWords( "", 101010, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "сто тысяч сто десятый" ),
numberer.toOrdinalWords( "", 100110, AbstractNumberer.LOWER_CASE ) );
}
public void testSpecWords202()
{
Numberer_ru numberer = new Numberer_ru();
Assert.assertEquals( decode( "двадцать второй" ),
numberer.toOrdinalWords( "", 22, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двести второй" ),
numberer.toOrdinalWords( "", 202, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двести двадцатый" ),
numberer.toOrdinalWords( "", 220, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "две тысячи второй" ),
numberer.toOrdinalWords( "", 2002, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "две тысячи двадцатый" ),
numberer.toOrdinalWords( "", 2020, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "две тысячи двухсотый" ),
numberer.toOrdinalWords( "", 2200, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "две тысячи двести двадцатый" ),
numberer.toOrdinalWords( "", 2220, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двадцать тысяч второй" ),
numberer.toOrdinalWords( "", 20002, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двадцать тысяч двадцатый" ),
numberer.toOrdinalWords( "", 20020, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двадцать тысяч двести двадцатый" ),
numberer.toOrdinalWords( "", 20220, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двести тысяч двадцатый" ),
numberer.toOrdinalWords( "", 200020, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двести две тысячи двадцатый" ),
numberer.toOrdinalWords( "", 202020, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двести две тысячи двести двадцатый" ),
numberer.toOrdinalWords( "", 202220, AbstractNumberer.LOWER_CASE ) );
}
public void testSpecWords22()
{
Numberer_ru numberer = new Numberer_ru();
Assert.assertEquals( decode( "одиннадцатитысячный" ),
numberer.toOrdinalWords( "", 11000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "тридцатишеститысячный" ),
numberer.toOrdinalWords( "", 36000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "стодесятитысячный" ),
numberer.toOrdinalWords( "", 110000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "триста шестьдесят шесть тысяч шестисотый" ),
numberer.toOrdinalWords( "", 366600, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "тристатридцатишеститысячный" ),
numberer.toOrdinalWords( "", 336000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "три миллиона шестьсотшестидесятишеститысячный" ),
numberer.toOrdinalWords( "", 3666000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "один миллион стотысячный" ),
numberer.toOrdinalWords( "", 1100000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "один миллион стодесятитысячный" ),
numberer.toOrdinalWords( "", 1110000, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "один миллиард один миллион стодесятитысячный" ),
numberer.toOrdinalWords( "", 1001110000L, AbstractNumberer.LOWER_CASE ) );
}
public void testToOrdinalWords()
{
Numberer_ru numberer = new Numberer_ru();
Assert.assertEquals( decode( "" ), numberer.toOrdinalWords( "", 0, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "первый" ), numberer.toOrdinalWords( "", 1, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "второй" ), numberer.toOrdinalWords( "", 2, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "третий" ), numberer.toOrdinalWords( "", 3, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "четвертый" ), numberer.toOrdinalWords( "", 4, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "десятый" ), numberer.toOrdinalWords( "", 10, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "одиннадцатый" ), numberer.toOrdinalWords( "", 11, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двенадцатый" ), numberer.toOrdinalWords( "", 12, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "тринадцатый" ), numberer.toOrdinalWords( "", 13, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "четырнадцатый" ),
numberer.toOrdinalWords( "", 14, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двадцатый" ), numberer.toOrdinalWords( "", 20, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двадцать первый" ),
numberer.toOrdinalWords( "", 21, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двадцать второй" ),
numberer.toOrdinalWords( "", 22, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двадцать третий" ),
numberer.toOrdinalWords( "", 23, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двадцать четвертый" ),
numberer.toOrdinalWords( "", 24, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "сотый" ), numberer.toOrdinalWords( "", 100, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "двухсотый" ), numberer.toOrdinalWords( "", 200, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "девятисотый" ), numberer.toOrdinalWords( "", 900, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "сто двадцатый" ),
numberer.toOrdinalWords( "", 120, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "сто двадцать первый" ),
numberer.toOrdinalWords( "", 121, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "сто двадцать второй" ),
numberer.toOrdinalWords( "", 122, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "сто двадцать третий" ),
numberer.toOrdinalWords( "", 123, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "сто двадцать четвертый" ),
numberer.toOrdinalWords( "", 124, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "две тысячи сто двадцатый" ),
numberer.toOrdinalWords( "", 2120, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "две тысячи сто двадцать первый" ),
numberer.toOrdinalWords( "", 2121, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "две тысячи сто двадцать второй" ),
numberer.toOrdinalWords( "", 2122, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "две тысячи сто двадцать третий" ),
numberer.toOrdinalWords( "", 2123, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "две тысячи сто двадцать четвертый" ),
numberer.toOrdinalWords( "", 2124, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "две тысячи двадцатый" ),
numberer.toOrdinalWords( "", 2020, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "две тысячи двадцать первый" ),
numberer.toOrdinalWords( "", 2021, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "две тысячи двадцать второй" ),
numberer.toOrdinalWords( "", 2022, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "две тысячи двадцать третий" ),
numberer.toOrdinalWords( "", 2023, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "две тысячи двадцать четвертый" ),
numberer.toOrdinalWords( "", 2024, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals(
decode( "четыреста двенадцать миллиардов четыреста двенадцать миллионов четыреста двенадцать тысяч четыреста двенадцатый" ),
numberer.toOrdinalWords( "", 412412412412L, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "два миллиарда второй" ),
numberer.toOrdinalWords( "", 2000000002, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "один миллиард сто одиннадцать миллионов сто одиннадцать тысяч сто одиннадцатый" ),
numberer.toOrdinalWords( "", 1111111111, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "сто один миллиард сто один миллион сто одна тысяча сто первый" ),
numberer.toOrdinalWords( "", 101101101101L, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals(
decode( "сто одиннадцать миллиардов сто одиннадцать миллионов сто одиннадцать тысяч сто одиннадцатый" ),
numberer.toOrdinalWords( "", 111111111111L, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals(
decode( "сто двадцать миллиардов сто двадцать миллионов сто двадцать тысяч сто двадцатый" ),
numberer.toOrdinalWords( "", 120120120120L, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals(
decode( "сто двадцать один миллиард сто двадцать один миллион сто двадцать одна тысяча сто двадцать первый" ),
numberer.toOrdinalWords( "", 121121121121L, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals(
decode( "двести двадцать два миллиарда двести двадцать два миллиона двести двадцать две тысячи двести двадцать второй" ),
numberer.toOrdinalWords( "", 222222222222L, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "четыреста одна тысяча пятьсот пятьдесят пятый" ),
numberer.toOrdinalWords( "", 401555, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "четыреста шестьдесят одна тысяча пятьсот пятьдесят пятый" ),
numberer.toOrdinalWords( "", 461555, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "четыреста шестьдесят три тысячи пятьсот пятьдесят пятый" ),
numberer.toOrdinalWords( "", 463555, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "четыреста две тысячи пятьсот пятьдесят пятый" ),
numberer.toOrdinalWords( "", 402555, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "четыреста шестьдесят две тысячи пятьсот пятьдесят пятый" ),
numberer.toOrdinalWords( "", 462555, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "четыреста одна тысяча сто первый" ),
numberer.toOrdinalWords( "", 401101, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "четыреста сорок одна тысяча сто первый" ),
numberer.toOrdinalWords( "", 441101, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "четыреста двадцать две тысячи сто первый" ),
numberer.toOrdinalWords( "", 422101, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals( decode( "сорок одна тысяча сто первый" ),
numberer.toOrdinalWords( "", 41101, AbstractNumberer.LOWER_CASE ) );
Assert.assertEquals(
decode( "триста тридцать три миллиарда триста тридцать три миллиона триста тридцать три тысячи триста тридцать третий" ),
numberer.toOrdinalWords( "", 333333333333L, AbstractNumberer.LOWER_CASE ) );
}
public void testDayName()
{
Numberer_ru numberer = new Numberer_ru();
Assert.assertEquals( decode( "понедельник" ), numberer.dayName( 1, 0, 20 ) );
Assert.assertEquals( decode( "вторник" ), numberer.dayName( 2, 0, 20 ) );
Assert.assertEquals( decode( "среда" ), numberer.dayName( 3, 0, 20 ) );
Assert.assertEquals( decode( "четверг" ), numberer.dayName( 4, 0, 20 ) );
Assert.assertEquals( decode( "пятница" ), numberer.dayName( 5, 0, 20 ) );
Assert.assertEquals( decode( "суббота" ), numberer.dayName( 6, 0, 20 ) );
Assert.assertEquals( decode( "воскресенье" ), numberer.dayName( 7, 0, 20 ) );
Assert.assertEquals( decode( "пн" ), numberer.dayName( 1, 0, 3 ) );
Assert.assertEquals( decode( "вт" ), numberer.dayName( 2, 0, 3 ) );
Assert.assertEquals( decode( "ср" ), numberer.dayName( 3, 0, 3 ) );
Assert.assertEquals( decode( "чт" ), numberer.dayName( 4, 0, 3 ) );
Assert.assertEquals( decode( "пт" ), numberer.dayName( 5, 0, 3 ) );
Assert.assertEquals( decode( "сб" ), numberer.dayName( 6, 0, 3 ) );
Assert.assertEquals( decode( "вс" ), numberer.dayName( 7, 0, 3 ) );
Assert.assertEquals( decode( "пн" ), numberer.dayName( 1, 0, 2 ) );
Assert.assertEquals( decode( "вт" ), numberer.dayName( 2, 0, 2 ) );
Assert.assertEquals( decode( "ср" ), numberer.dayName( 3, 0, 2 ) );
Assert.assertEquals( decode( "чт" ), numberer.dayName( 4, 0, 2 ) );
Assert.assertEquals( decode( "пт" ), numberer.dayName( 5, 0, 2 ) );
Assert.assertEquals( decode( "сб" ), numberer.dayName( 6, 0, 2 ) );
Assert.assertEquals( decode( "вс" ), numberer.dayName( 7, 0, 2 ) );
}
public void testMonthName()
{
Numberer_ru numberer = new Numberer_ru();
Assert.assertEquals( decode( "января" ), numberer.monthName( 1, 0, 20 ) );
Assert.assertEquals( decode( "февраля" ), numberer.monthName( 2, 0, 20 ) );
Assert.assertEquals( decode( "марта" ), numberer.monthName( 3, 0, 20 ) );
Assert.assertEquals( decode( "апреля" ), numberer.monthName( 4, 0, 20 ) );
Assert.assertEquals( decode( "мая" ), numberer.monthName( 5, 0, 20 ) );
Assert.assertEquals( decode( "июня" ), numberer.monthName( 6, 0, 20 ) );
Assert.assertEquals( decode( "июля" ), numberer.monthName( 7, 0, 20 ) );
Assert.assertEquals( decode( "августа" ), numberer.monthName( 8, 0, 20 ) );
Assert.assertEquals( decode( "сентября" ), numberer.monthName( 9, 0, 20 ) );
Assert.assertEquals( decode( "октября" ), numberer.monthName( 10, 0, 20 ) );
Assert.assertEquals( decode( "ноября" ), numberer.monthName( 11, 0, 20 ) );
Assert.assertEquals( decode( "декабря" ), numberer.monthName( 12, 0, 20 ) );
Assert.assertEquals( decode( "янв" ), numberer.monthName( 1, 0, 3 ) );
Assert.assertEquals( decode( "фев" ), numberer.monthName( 2, 0, 3 ) );
Assert.assertEquals( decode( "мар" ), numberer.monthName( 3, 0, 3 ) );
Assert.assertEquals( decode( "апр" ), numberer.monthName( 4, 0, 3 ) );
Assert.assertEquals( decode( "мая" ), numberer.monthName( 5, 0, 3 ) );
Assert.assertEquals( decode( "июн" ), numberer.monthName( 6, 0, 3 ) );
Assert.assertEquals( decode( "июл" ), numberer.monthName( 7, 0, 3 ) );
Assert.assertEquals( decode( "авг" ), numberer.monthName( 8, 0, 3 ) );
Assert.assertEquals( decode( "сен" ), numberer.monthName( 9, 0, 3 ) );
Assert.assertEquals( decode( "окт" ), numberer.monthName( 10, 0, 3 ) );
Assert.assertEquals( decode( "ноя" ), numberer.monthName( 11, 0, 3 ) );
Assert.assertEquals( decode( "дек" ), numberer.monthName( 12, 0, 3 ) );
}
private String decode( String s )
{
try
{
return URLDecoder.decode( s, "UTF-8" );
}
catch ( UnsupportedEncodingException e )
{
throw new RuntimeException( e );
}
}
}