<?php //NOTE: This page require UTF-8 aware editors Prado::using('System.I18N.core.NumberFormat'); class testNumberFormat extends UnitTestCase { function testNumberFormat() { $this->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)); } } ?>