<?php declare(encoding='windows-1251'); /* vim: set expandtab tabstop=4 shiftwidth=4: */ // // +----------------------------------------------------------------------+ // | PHP version 4 | // +----------------------------------------------------------------------+ // | Copyright (c) 1997-2003 The PHP Group | // +----------------------------------------------------------------------+ // | This source file is subject to version 3.0 of the PHP license, | // | that is bundled with this package in the file LICENSE, and is | // | available at through the world-wide-web at | // | http://www.php.net/license/3_0.txt. | // | If you did not receive a copy of the PHP license and are unable to | // | obtain it through the world-wide-web, please send a note to | // | license@php.net so we can mail you a copy immediately. | // +----------------------------------------------------------------------+ // | Authors: Kouber Saparev | // +----------------------------------------------------------------------+ // // Numbers_Words class extension to spell numbers in Bulgarian. // if (!defined('PHPUnit_MAIN_METHOD')) { define('PHPUnit_MAIN_METHOD', 'Numbers_Words_BulgarianTest::main'); } require_once 'Numbers/Words.php'; require_once 'PHPUnit/Framework.php'; class Numbers_Words_BulgarianTest extends PHPUnit_Framework_TestCase { var $handle; public static function main() { require_once 'PHPUnit/TextUI/TestRunner.php'; PHPUnit_TextUI_TestRunner::run( new PHPUnit_Framework_TestSuite('Numbers_Words_BulgarianTest') ); } function setUp() { $this->handle = new Numbers_Words(); } /** * Testing numbers between 0 and 9 */ function testDigits() { $digits = array('íóëà', 'åäíî', 'äâå', 'òðè', '÷åòèðè', 'ïåò', 'øåñò', 'ñåäåì', 'îñåì', 'äåâåò' ); for ($i = 0; $i < 10; $i++) { $number = $this->handle->toWords($i, 'bg'); $this->assertEquals($digits[$i], $number); } } /** * Testing numbers between 10 and 99 */ function testTens() { $tens = array(11 => 'åäèíàäåñåò', 12 => 'äâàíàäåñåò', 16 => 'øåñòíàäåñåò', 19 => 'äåâåòíàäåñåò', 20 => 'äâàäåñåò', 21 => 'äâàäåñåò è åäíî', 26 => 'äâàäåñåò è øåñò', 30 => 'òðèäåñåò', 31 => 'òðèäåñåò è åäíî', 40 => '÷åòèðèäåñåò', 43 => '÷åòèðèäåñåò è òðè', 50 => 'ïåòäåñåò', 55 => 'ïåòäåñåò è ïåò', 60 => 'øåñòäåñåò', 67 => 'øåñòäåñåò è ñåäåì', 70 => 'ñåäåìäåñåò', 79 => 'ñåäåìäåñåò è äåâåò' ); foreach ($tens as $number => $word) { $this->assertEquals($word, $this->handle->toWords($number, 'bg')); } } /** * Testing numbers between 100 and 999 */ function testHundreds() { $hundreds = array(100 => 'ñòî', 101 => 'ñòî è åäíî', 199 => 'ñòî äåâåòäåñåò è äåâåò', 203 => 'äâåñòà è òðè', 287 => 'äâåñòà îñåìäåñåò è ñåäåì', 300 => 'òðèñòà', 356 => 'òðèñòà ïåòäåñåò è øåñò', 410 => '÷åòèðèñòîòèí è äåñåò', 434 => '÷åòèðèñòîòèí òðèäåñåò è ÷åòèðè', 578 => 'ïåòñòîòèí ñåäåìäåñåò è îñåì', 689 => 'øåñòñòîòèí îñåìäåñåò è äåâåò', 729 => 'ñåäåìñòîòèí äâàäåñåò è äåâåò', 894 => 'îñåìñòîòèí äåâåòäåñåò è ÷åòèðè', 999 => 'äåâåòñòîòèí äåâåòäåñåò è äåâåò' ); foreach ($hundreds as $number => $word) { $this->assertEquals($word, $this->handle->toWords($number, 'bg')); } } /** * Testing numbers between 1000 and 9999 */ function testThousands() { $thousands = array(1000 => 'õèëÿäà', 1001 => 'õèëÿäà è åäíî', 1097 => 'õèëÿäà è äåâåòäåñåò è ñåäåì', 1104 => 'õèëÿäà ñòî è ÷åòèðè', 1243 => 'õèëÿäà äâåñòà ÷åòèðèäåñåò è òðè', 2385 => 'äâå õèëÿäè òðèñòà îñåìäåñåò è ïåò', 3766 => 'òðè õèëÿäè ñåäåìñòîòèí øåñòäåñåò è øåñò', 4196 => '÷åòèðè õèëÿäè ñòî äåâåòäåñåò è øåñò', 5846 => 'ïåò õèëÿäè îñåìñòîòèí ÷åòèðèäåñåò è øåñò', 6459 => 'øåñò õèëÿäè ÷åòèðèñòîòèí ïåòäåñåò è äåâåò', 7232 => 'ñåäåì õèëÿäè äâåñòà òðèäåñåò è äâå', 8569 => 'îñåì õèëÿäè ïåòñòîòèí øåñòäåñåò è äåâåò', 9539 => 'äåâåò õèëÿäè ïåòñòîòèí òðèäåñåò è äåâåò' ); foreach ($thousands as $number => $word) { $this->assertEquals($word, $this->handle->toWords($number, 'bg')); } } } if (PHPUnit_MAIN_METHOD == 'Numbers_Words_BulgarianTest::main') { Numbers_Words_BulgarianTest::main(); } ?>