From 16660934cc48f357b1322bce7869158db2f7cb58 Mon Sep 17 00:00:00 2001 From: wei <> Date: Fri, 6 Jan 2006 05:32:33 +0000 Subject: Adding I18N unit test cases. --- .../UnitTests/framework/I18N/testNumberFormat.php | 113 +++++++++++++++++++++ 1 file changed, 113 insertions(+) create mode 100644 tests/UnitTests/framework/I18N/testNumberFormat.php (limited to 'tests/UnitTests/framework/I18N/testNumberFormat.php') diff --git a/tests/UnitTests/framework/I18N/testNumberFormat.php b/tests/UnitTests/framework/I18N/testNumberFormat.php new file mode 100644 index 00000000..48342d9c --- /dev/null +++ b/tests/UnitTests/framework/I18N/testNumberFormat.php @@ -0,0 +1,113 @@ +UnitTestCase(); + } + + function testDefaultFormats() + { + $formatter = new NumberFormat(); + $number = '123456789.125156'; + $wanted = '123,456,789.125156'; + $this->assertEqual($wanted, $formatter->format($number)); + + //currency + $wanted = 'US$123,456,789.13'; + $this->assertEqual($wanted, $formatter->format($number,'c')); + } + + function testLocalizedCurrencyFormats() + { + $fr = new NumberFormat('fr'); + $de = new NumberFormat('de'); + $ja = new NumberFormat('ja_JP'); + + $number = '123456789.125156'; + + //french + $wanted = '123 456 789,13 F'; + $this->assertEqual($wanted, $fr->format($number,'c','FRF')); + + //german + $wanted = 'DES 123.456.789,13'; + $this->assertEqual($wanted, $de->format($number,'c','DES')); + + //japanese + $wanted = '¥123,456,789'; + $this->assertEqual($wanted, $ja->format($number,'c','JPY')); + + //custom/unkown currency + $wanted = 'DLL123,456,789'; + $this->assertEqual($wanted, $ja->format($number,'c','DLL')); + } + + function testCustomFormat() + { + $formatter = new NumberFormat(); + $number = '123456789.125156'; + + //primay and secondary grouping test + $pattern = '#,###,##.###'; + $wanted = '1,234,567,89.125156'; + $this->assertEqual($wanted, $formatter->format($number, $pattern)); + + //4 digits grouping test + $pattern = '#,####.###'; + $wanted = '1,2345,6789.125156'; + $this->assertEqual($wanted, $formatter->format($number, $pattern)); + + //custom percentage + $pattern = '#,###.00%'; + $wanted = '123,456,789.13%'; + $this->assertEqual($wanted, $formatter->format($number, $pattern)); + } + + function testPercentageFormat() + { + $formatter = new NumberFormat(); + $number = '0.125156'; + $wanted = '12%'; + $this->assertEqual($wanted, $formatter->format($number, 'p')); + } + + function testQuotes() + { + $formatter = new NumberFormat(); + $number = '123456789.125156'; + + $pattern = "# o'clock"; + $wanted = "123456789 o'clock"; + $this->assertEqual($wanted, $formatter->format($number, $pattern)); + + } + + function testPadding() + { + $formatter = new NumberFormat(); + $number = '5'; + + $pattern = '0000'; + $wanted = '0005'; + + //this should fail!!! + $this->assertEqual($wanted, $formatter->format($number, $pattern)); + } + + function testNegativeValue() + { + $formatter = new NumberFormat(); + $number = "-1.2"; + + $wanted = "-1.2"; + $this->assertEqual($wanted, $formatter->format($number)); + } +} + +?> \ No newline at end of file -- cgit v1.2.3