summaryrefslogtreecommitdiff
path: root/tests/UnitTests/framework/I18N/testNumberFormatInfo.php
blob: 0b0a31403f593e69faff4ff461c0ebd5bbeb6a26 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
<?php

//NOTE: This page require UTF-8 aware editors

Prado::using('System.I18N.core.NumberFormatInfo');

class testNumberFormatInfo extends UnitTestCase
{
	function testNumberFormatInfo()
	{
		$this->UnitTestCase();
	}

	function testCurrencyPatterns()
	{
		$numberInfo = NumberFormatInfo::getCurrencyInstance();

		//there should be 2 decimal places.
		$this->assertEqual($numberInfo->DecimalDigits,2);

		$this->assertEqual($numberInfo->DecimalSeparator,'.');

		$this->assertEqual($numberInfo->GroupSeparator,',');

		//there should be only 1 grouping of size 3
		$groupsize = array(3,false);
		$this->assertEqual($numberInfo->GroupSizes, $groupsize);

		//the default negative pattern prefix and postfix
		$negPattern = array('-¤','');
		$this->assertEqual($numberInfo->NegativePattern, $negPattern);

		//the default positive pattern prefix and postfix
		$negPattern = array('¤','');
		$this->assertEqual($numberInfo->PositivePattern, $negPattern);

		//the default currency symbol
		$this->assertEqual($numberInfo->CurrencySymbol, 'US$');

		$this->assertEqual($numberInfo->getCurrencySymbol('JPY'), '¥');

		$this->assertEqual($numberInfo->NegativeInfinitySymbol, '-∞');

		$this->assertEqual($numberInfo->PositiveInfinitySymbol, '+∞');

		$this->assertEqual($numberInfo->NegativeSign, '-');

		$this->assertEqual($numberInfo->PositiveSign, '+');

		$this->assertEqual($numberInfo->NaNSymbol, '�');

		$this->assertEqual($numberInfo->PercentSymbol, '%');

		$this->assertEqual($numberInfo->PerMilleSymbol, '‰');

	}

	function testPatternsSet()
	{
		$numberInfo = NumberFormatInfo::getInstance();

		$numberInfo->DecimalDigits = 0;
		$this->assertEqual($numberInfo->DecimalDigits,0);

		$numberInfo->DecimalSeparator = ',';
		$this->assertEqual($numberInfo->DecimalSeparator,',');

		$numberInfo->GroupSeparator = ' ';
		$this->assertEqual($numberInfo->GroupSeparator,' ');

		$numberInfo->GroupSizes = array(2,3);
		$groupsize = array(2,3);
		$this->assertEqual($numberInfo->GroupSizes, $groupsize);

		$numberInfo->NegativePattern = array('-$$','.');
		$negPattern = array('-$$','.');
		$this->assertEqual($numberInfo->NegativePattern, $negPattern);

		$numberInfo->PositivePattern = array('YY','.');
		$negPattern = array('YY','.');
		$this->assertEqual($numberInfo->PositivePattern, $negPattern);

		//the default CurrencySymbol symbol
		$numberInfo->CurrencySymbol = '$$$';
		$this->assertEqual($numberInfo->CurrencySymbol, '$$$');
	}

	function testLocalizedPatterns()
	{
		$fr = NumberFormatInfo::getInstance('fr');
		$de = NumberFormatInfo::getInstance('de');
		$en = NumberFormatInfo::getInstance('en_US');

		$this->assertEqual($fr->DecimalSeparator, ',');
		$this->assertEqual($de->DecimalSeparator, ',');
		$this->assertEqual($en->DecimalSeparator, '.');

		$this->assertEqual($fr->GroupSeparator, ' ');
		$this->assertEqual($de->GroupSeparator, '.');
		$this->assertEqual($en->GroupSeparator, ',');
	}

}

?>