Add German class and unit test.
authorJan Schneider <jan@horde.org>
Mon, 10 Nov 2008 14:44:06 +0000 (15:44 +0100)
committerJan Schneider <jan@horde.org>
Mon, 10 Nov 2008 14:44:06 +0000 (15:44 +0100)
framework/Horde_Date_Parser/lib/Horde/Support/Numerizer/Locale/De.php [new file with mode: 0644]
framework/Horde_Date_Parser/test/Horde/Support/NumerizerTestDe.php [new file with mode: 0644]

diff --git a/framework/Horde_Date_Parser/lib/Horde/Support/Numerizer/Locale/De.php b/framework/Horde_Date_Parser/lib/Horde/Support/Numerizer/Locale/De.php
new file mode 100644 (file)
index 0000000..cd4d259
--- /dev/null
@@ -0,0 +1,48 @@
+<?php
+class Horde_Support_Numerizer_Locale_De extends Horde_Support_Numerizer_Locale_Base
+{
+
+    public $DIRECT_NUMS = array(
+        'dreizehn' => 13,
+        'vierzehn' => 14,
+        'fünfzehn' => 15,
+        'sechszehn' => 16,
+        'siebzehn' => 17,
+        'achtzehn' => 18,
+        'neunzehn' => 19,
+        'eins' => 1,
+        'zwei' => 2,
+        'zwo' => 2,
+        'drei' => 3,
+        'vier' => 4,
+        'fünf' => 5,
+        'sechs' => 6,
+        'sieben' => 7,
+        'acht' => 8,
+        'neun' => 9,
+        'zehn' => 10,
+        'elf' => 11,
+        'zwölf' => 12,
+        'eine?' => 1,
+    );
+
+    public $TEN_PREFIXES = array(
+        'zwanzig' => 20,
+        'dreißig' => 30,
+        'vierzig' => 40,
+        'fünfzig' => 50,
+        'sechzig' => 60,
+        'siebzig' => 70,
+        'achtzig' => 80,
+        'neunzig' => 90,
+    );
+
+    public $BIG_PREFIXES = array(
+        'hundert' => 100,
+        'tausend' => 1000,
+        'million' => 1000000,
+        'milliarde' => 1000000000,
+        'billion' => 1000000000000,
+    );
+
+}
\ No newline at end of file
diff --git a/framework/Horde_Date_Parser/test/Horde/Support/NumerizerTestDe.php b/framework/Horde_Date_Parser/test/Horde/Support/NumerizerTestDe.php
new file mode 100644 (file)
index 0000000..400b46e
--- /dev/null
@@ -0,0 +1,64 @@
+<?php
+/**
+ * @category   Horde
+ * @package    Horde_Support
+ * @subpackage UnitTests
+ */
+
+/**
+ * @category   Horde
+ * @package    Horde_Support
+ * @subpackage UnitTests
+ */
+class Horde_Support_NumerizerTestDe extends PHPUnit_Framework_TestCase
+{
+    public function testStraightParsing()
+    {
+        $numerizer = Horde_Support_Numerizer::factory();
+        $strings = array(
+            1 => 'eins',
+            5 => 'fünf',
+            10 => 'zehn',
+            11 => 'elf',
+            12 => 'zwölf',
+            13 => 'dreizehn',
+            14 => 'vierzehn',
+            15 => 'fünfzehn',
+            16 => 'sechzehn',
+            17 => 'siebzehn',
+            18 => 'achtzehn',
+            19 => 'neunzehn',
+            20 => 'zwanzig',
+            27 => 'siebenundzwanzig',
+            31 => 'einunddreißig',
+            59 => 'neunundfünfzig',
+            100 => 'einhundert',
+            100 => 'ein hundert',
+            150 => 'hundertundfünfzig',
+            150 => 'einhundertundfünfzig',
+            200 => 'zweihundert',
+            500 => 'fünfhundert',
+            999 => 'neunhundertneunundneunzig',
+            1000 => 'eintausend',
+            1200 => 'zwölfhundert',
+            1200 => 'eintausenzweihundert',
+            17000 => 'siebzehntausend',
+            21473 => 'einundzwanzigtausendvierhundertdreiundsiebzig',
+            74002 => 'vierundsiebzigtausendzwei',
+            74002 => 'vierundsiebzigtausendundzwei',
+            99999 => 'neunundneunzigtausendneunhundertneunundneunzig',
+            100000 => 'hunderttausend',
+            100000 => 'einhunderttausend',
+            250000 => 'zweihundertfünfzigtausend',
+            1000000 => 'eine million',
+            1250007 => 'eine million zweihundertfünfzigtausendundsieben',
+            1000000000 => 'eine milliarde',
+            1000000001 => 'eine milliarde und eins',
+        );
+
+        foreach ($strings as $key => $string) {
+            $this->assertEquals($key, (int)$numerizer->numerize($string));
+        }
+    }
+
+}