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