Subversion-Projekte lars-tiefland.php_share

Revision

Details | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
1 lars 1
<?php
2
declare(encoding='windows-1251');
3
/* vim: set expandtab tabstop=4 shiftwidth=4: */
4
//
5
// +----------------------------------------------------------------------+
6
// | PHP version 4                                                        |
7
// +----------------------------------------------------------------------+
8
// | Copyright (c) 1997-2003 The PHP Group                                |
9
// +----------------------------------------------------------------------+
10
// | This source file is subject to version 3.0 of the PHP license,       |
11
// | that is bundled with this package in the file LICENSE, and is        |
12
// | available at through the world-wide-web at                           |
13
// | http://www.php.net/license/3_0.txt.                                  |
14
// | If you did not receive a copy of the PHP license and are unable to   |
15
// | obtain it through the world-wide-web, please send a note to          |
16
// | license@php.net so we can mail you a copy immediately.               |
17
// +----------------------------------------------------------------------+
18
// | Authors: Kouber Saparev                                              |
19
// +----------------------------------------------------------------------+
20
//
21
// Numbers_Words class extension to spell numbers in Bulgarian.
22
//
23
if (!defined('PHPUnit_MAIN_METHOD')) {
24
    define('PHPUnit_MAIN_METHOD', 'Numbers_Words_BulgarianTest::main');
25
}
26
 
27
require_once 'Numbers/Words.php';
28
require_once 'PHPUnit/Framework.php';
29
 
30
class Numbers_Words_BulgarianTest extends PHPUnit_Framework_TestCase
31
{
32
    var $handle;
33
 
34
    public static function main()
35
    {
36
        require_once 'PHPUnit/TextUI/TestRunner.php';
37
        PHPUnit_TextUI_TestRunner::run(
38
            new PHPUnit_Framework_TestSuite('Numbers_Words_BulgarianTest')
39
        );
40
    }
41
 
42
    function setUp()
43
    {
44
        $this->handle = new Numbers_Words();
45
    }
46
 
47
    /**
48
     * Testing numbers between 0 and 9
49
     */
50
    function testDigits()
51
    {
52
        $digits = array('íóëà',
53
                        'åäíî',
54
                        'äâå',
55
                        'òðè',
56
                        '÷åòèðè',
57
                        'ïåò',
58
                        'øåñò',
59
                        'ñåäåì',
60
                        'îñåì',
61
                        'äåâåò'
62
                       );
63
        for ($i = 0; $i < 10; $i++) {
64
            $number = $this->handle->toWords($i, 'bg');
65
            $this->assertEquals($digits[$i], $number);
66
        }
67
    }
68
 
69
    /**
70
     * Testing numbers between 10 and 99
71
     */
72
    function testTens()
73
    {
74
        $tens = array(11 => 'åäèíàäåñåò',
75
                      12 => 'äâàíàäåñåò',
76
                      16 => 'øåñòíàäåñåò',
77
                      19 => 'äåâåòíàäåñåò',
78
                      20 => 'äâàäåñåò',
79
                      21 => 'äâàäåñåò è åäíî',
80
                      26 => 'äâàäåñåò è øåñò',
81
                      30 => 'òðèäåñåò',
82
                      31 => 'òðèäåñåò è åäíî',
83
                      40 => '÷åòèðèäåñåò',
84
                      43 => '÷åòèðèäåñåò è òðè',
85
                      50 => 'ïåòäåñåò',
86
                      55 => 'ïåòäåñåò è ïåò',
87
                      60 => 'øåñòäåñåò',
88
                      67 => 'øåñòäåñåò è ñåäåì',
89
                      70 => 'ñåäåìäåñåò',
90
                      79 => 'ñåäåìäåñåò è äåâåò'
91
                     );
92
        foreach ($tens as $number => $word) {
93
            $this->assertEquals($word, $this->handle->toWords($number, 'bg'));
94
        }
95
    }
96
 
97
    /**
98
     * Testing numbers between 100 and 999
99
     */
100
    function testHundreds()
101
    {
102
        $hundreds = array(100 => 'ñòî',
103
                          101 => 'ñòî è åäíî',
104
                          199 => 'ñòî äåâåòäåñåò è äåâåò',
105
                          203 => 'äâåñòà è òðè',
106
                          287 => 'äâåñòà îñåìäåñåò è ñåäåì',
107
                          300 => 'òðèñòà',
108
                          356 => 'òðèñòà ïåòäåñåò è øåñò',
109
                          410 => '÷åòèðèñòîòèí è äåñåò',
110
                          434 => '÷åòèðèñòîòèí òðèäåñåò è ÷åòèðè',
111
                          578 => 'ïåòñòîòèí ñåäåìäåñåò è îñåì',
112
                          689 => 'øåñòñòîòèí îñåìäåñåò è äåâåò',
113
                          729 => 'ñåäåìñòîòèí äâàäåñåò è äåâåò',
114
                          894 => 'îñåìñòîòèí äåâåòäåñåò è ÷åòèðè',
115
                          999 => 'äåâåòñòîòèí äåâåòäåñåò è äåâåò'
116
                         );
117
        foreach ($hundreds as $number => $word) {
118
            $this->assertEquals($word, $this->handle->toWords($number, 'bg'));
119
        }
120
    }
121
 
122
    /**
123
     * Testing numbers between 1000 and 9999
124
     */
125
    function testThousands()
126
    {
127
        $thousands = array(1000 => 'õèëÿäà',
128
                           1001 => 'õèëÿäà è åäíî',
129
                           1097 => 'õèëÿäà è äåâåòäåñåò è ñåäåì',
130
                           1104 => 'õèëÿäà ñòî è ÷åòèðè',
131
                           1243 => 'õèëÿäà äâåñòà ÷åòèðèäåñåò è òðè',
132
                           2385 => 'äâå õèëÿäè òðèñòà îñåìäåñåò è ïåò',
133
                           3766 => 'òðè õèëÿäè ñåäåìñòîòèí øåñòäåñåò è øåñò',
134
                           4196 => '÷åòèðè õèëÿäè ñòî äåâåòäåñåò è øåñò',
135
                           5846 => 'ïåò õèëÿäè îñåìñòîòèí ÷åòèðèäåñåò è øåñò',
136
                           6459 => 'øåñò õèëÿäè ÷åòèðèñòîòèí ïåòäåñåò è äåâåò',
137
                           7232 => 'ñåäåì õèëÿäè äâåñòà òðèäåñåò è äâå',
138
                           8569 => 'îñåì õèëÿäè ïåòñòîòèí øåñòäåñåò è äåâåò',
139
                           9539 => 'äåâåò õèëÿäè ïåòñòîòèí òðèäåñåò è äåâåò'
140
                          );
141
        foreach ($thousands as $number => $word) {
142
            $this->assertEquals($word, $this->handle->toWords($number, 'bg'));
143
        }
144
    }
145
}
146
 
147
if (PHPUnit_MAIN_METHOD == 'Numbers_Words_BulgarianTest::main') {
148
    Numbers_Words_BulgarianTest::main();
149
}
150
?>