Sophie

Sophie

distrib > Mandriva > 2010.0 > i586 > media > contrib-release > by-pkgid > 58753f2d41404e5ddb19c520c46f188a > files > 14

php-pear-Numbers_Words-0.16.1-2mdv2010.0.noarch.rpm

<?php
/* vim: set expandtab tabstop=4 shiftwidth=4 softtabstop=4 autoindent: */
/**
 * Numbers_Words class extension to spell numbers in Polish.
 *
 * PHP versions 4 and 5
 *
 * LICENSE: This source file is subject to version 3.01 of the PHP license
 * that is available through the world-wide-web at the following URI:
 * http://www.php.net/license/3_01.txt.  If you did not receive a copy of
 * the PHP License and are unable to obtain it through the web, please
 * send a note to license@php.net so we can mail you a copy immediately.
 *
 * @category  Numbers
 * @package   Numbers_Words
 * @author    Piotr Klaban <makler@man.torun.pl>
 * @copyright 1997-2008 The PHP Group
 * @license   http://www.php.net/license/3_01.txt  PHP License 3.01
 * @version   CVS: $Id: PolishTest.php,v 1.4 2009/03/14 18:54:15 kouber Exp $
 * @link      http://pear.php.net/package/Numbers_Words
 * @since     File available only in CVS
 */

require_once 'Numbers/Words.php';
require_once 'PHPUnit/Framework/TestCase.php';

class Numbers_Words_PolishTest extends PHPUnit_Framework_TestCase
{
    var $handle;

    function setUp()
    {
        $this->handle = new Numbers_Words();
    }

    /**
     * Testing numbers between 0 and 9
     */
    function testDigits()
    {
        $digits = array('zero',
                        'jeden',
                        'dwa',
                        'trzy',
                        'cztery',
                        'piêæ',
                        'sze¶æ',
                        'siedem',
                        'osiem',
                        'dziewiêæ'
                       );
        for ($i = 0; $i < 10; $i++)
        {
            $number = $this->handle->toWords($i, 'pl');
            $this->assertEquals($digits[$i], $number);
        }
    }

    /**
     * Testing numbers between 10 and 99
     */
    function testTens()
    {
        $tens = array(11 => 'jedena¶cie',
                      12 => 'dwana¶cie',
                      16 => 'szesna¶cie',
                      19 => 'dziewiêtna¶cie',
                      20 => 'dwadzie¶cia',
                      21 => 'dwadzie¶cia jeden',
                      26 => 'dwadzie¶cia sze¶æ',
                      30 => 'trzydzie¶ci',
                      31 => 'trzydzie¶ci jeden',
                      40 => 'czterdzie¶ci',
                      43 => 'czterdzie¶ci trzy',
                      50 => 'piêædziesi±t',
                      55 => 'piêædziesi±t piêæ',
                      60 => 'sze¶ædziesi±t',
                      67 => 'sze¶ædziesi±t siedem',
                      70 => 'siedemdziesi±t',
                      79 => 'siedemdziesi±t dziewiêæ'
                     );
        foreach ($tens as $number => $word) {
            $this->assertEquals($word, $this->handle->toWords($number, 'pl'));
        }
    }

    /**
     * Testing numbers between 100 and 999
     */
    function testHundreds()
    {
        $hundreds = array(100 => 'sto',
                          101 => 'sto jeden',
                          199 => 'sto dziewiêædziesi±t dziewiêæ',
                          203 => 'dwie¶cie trzy',
                          287 => 'dwie¶cie osiemdziesi±t siedem',
                          300 => 'trzysta',
                          356 => 'trzysta piêædziesi±t sze¶æ',
                          410 => 'czterysta dziesiêæ',
                          434 => 'czterysta trzydzie¶ci cztery',
                          578 => 'piêæset siedemdziesi±t osiem',
                          689 => 'sze¶æset osiemdziesi±t dziewiêæ',
                          729 => 'siedemset dwadzie¶cia dziewiêæ',
                          894 => 'osiemset dziewiêædziesi±t cztery',
                          999 => 'dziewiêæset dziewiêædziesi±t dziewiêæ'
                         );
        foreach ($hundreds as $number => $word) {
            $this->assertEquals($word, $this->handle->toWords($number, 'pl'));
        }
    }

    /**
     * Testing numbers between 1000 and 9999
     */
    function testThousands()
    {
        $thousands = array(1000 => 'jeden tysi±c',
                           1001 => 'jeden tysi±c jeden',
                           1097 => 'jeden tysi±c dziewiêædziesi±t siedem',
                           1104 => 'jeden tysi±c sto cztery',
                           1243 => 'jeden tysi±c dwie¶cie czterdzie¶ci trzy',
                           2385 => 'dwa tysi±ce trzysta osiemdziesi±t piêæ',
                           3766 => 'trzy tysi±ce siedemset sze¶ædziesi±t sze¶æ',
                           4196 => 'cztery tysi±ce sto dziewiêædziesi±t sze¶æ',
                           5846 => 'piêæ tysiêcy osiemset czterdzie¶ci sze¶æ',
                           6459 => 'sze¶æ tysiêcy czterysta piêædziesi±t dziewiêæ',
                           7232 => 'siedem tysiêcy dwie¶cie trzydzie¶ci dwa',
                           8569 => 'osiem tysiêcy piêæset sze¶ædziesi±t dziewiêæ',
                           9539 => 'dziewiêæ tysiêcy piêæset trzydzie¶ci dziewiêæ'
                          );
        foreach ($thousands as $number => $word) {
            $this->assertEquals($word, $this->handle->toWords($number, 'pl'));
        }
    }
}