Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 24eb4c3

Browse filesBrowse files
Add tests
1 parent bab236d commit 24eb4c3
Copy full SHA for 24eb4c3

File tree

1 file changed

+103
-0
lines changed
Filter options

1 file changed

+103
-0
lines changed

‎src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/PercentToLocalizedStringTransformerTest.php

Copy file name to clipboardExpand all lines: src/Symfony/Component/Form/Tests/Extension/Core/DataTransformer/PercentToLocalizedStringTransformerTest.php
+103Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -79,6 +79,109 @@ public function testReverseTransform()
7979
$this->assertEquals(2, $transformer->reverseTransform('200'));
8080
}
8181

82+
public function reverseTransformWithRoundingProvider()
83+
{
84+
return [
85+
// towards positive infinity (1.6 -> 2, -1.6 -> -1)
86+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.5', 35, PercentToLocalizedStringTransformer::ROUND_CEILING],
87+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.4', 35, PercentToLocalizedStringTransformer::ROUND_CEILING],
88+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.45', 3.5, PercentToLocalizedStringTransformer::ROUND_CEILING],
89+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.44', 3.5, PercentToLocalizedStringTransformer::ROUND_CEILING],
90+
[null, 0, '34.5', 0.35, PercentToLocalizedStringTransformer::ROUND_CEILING],
91+
[null, 0, '34.4', 0.35, PercentToLocalizedStringTransformer::ROUND_CEILING],
92+
[null, 1, '3.45', 0.035, PercentToLocalizedStringTransformer::ROUND_CEILING],
93+
[null, 1, '3.44', 0.035, PercentToLocalizedStringTransformer::ROUND_CEILING],
94+
// towards negative infinity (1.6 -> 1, -1.6 -> -2)
95+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.5', 34, PercentToLocalizedStringTransformer::ROUND_FLOOR],
96+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.4', 34, PercentToLocalizedStringTransformer::ROUND_FLOOR],
97+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.45', 3.4, PercentToLocalizedStringTransformer::ROUND_FLOOR],
98+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.44', 3.4, PercentToLocalizedStringTransformer::ROUND_FLOOR],
99+
[null, 0, '34.5', 0.34, PercentToLocalizedStringTransformer::ROUND_FLOOR],
100+
[null, 0, '34.4', 0.34, PercentToLocalizedStringTransformer::ROUND_FLOOR],
101+
[null, 1, '3.45', 0.034, PercentToLocalizedStringTransformer::ROUND_FLOOR],
102+
[null, 1, '3.44', 0.034, PercentToLocalizedStringTransformer::ROUND_FLOOR],
103+
// away from zero (1.6 -> 2, -1.6 -> 2)
104+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.5', 35, PercentToLocalizedStringTransformer::ROUND_UP],
105+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.4', 35, PercentToLocalizedStringTransformer::ROUND_UP],
106+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.45', 3.5, PercentToLocalizedStringTransformer::ROUND_UP],
107+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.44', 3.5, PercentToLocalizedStringTransformer::ROUND_UP],
108+
[null, 0, '34.5', 0.35, PercentToLocalizedStringTransformer::ROUND_UP],
109+
[null, 0, '34.4', 0.35, PercentToLocalizedStringTransformer::ROUND_UP],
110+
[null, 1, '3.45', 0.035, PercentToLocalizedStringTransformer::ROUND_UP],
111+
[null, 1, '3.44', 0.035, PercentToLocalizedStringTransformer::ROUND_UP],
112+
// towards zero (1.6 -> 1, -1.6 -> -1)
113+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.5', 34, PercentToLocalizedStringTransformer::ROUND_DOWN],
114+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.4', 34, PercentToLocalizedStringTransformer::ROUND_DOWN],
115+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.45', 3.4, PercentToLocalizedStringTransformer::ROUND_DOWN],
116+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.44', 3.4, PercentToLocalizedStringTransformer::ROUND_DOWN],
117+
[PercentToLocalizedStringTransformer::INTEGER,2, '37.37', 37.37, PercentToLocalizedStringTransformer::ROUND_DOWN],
118+
[PercentToLocalizedStringTransformer::INTEGER,2, '2.01', 2.01, PercentToLocalizedStringTransformer::ROUND_DOWN],
119+
[null, 0, '34.5', 0.34, PercentToLocalizedStringTransformer::ROUND_DOWN],
120+
[null, 0, '34.4', 0.34, PercentToLocalizedStringTransformer::ROUND_DOWN],
121+
[null, 1, '3.45', 0.034, PercentToLocalizedStringTransformer::ROUND_DOWN],
122+
[null, 1, '3.44', 0.034, PercentToLocalizedStringTransformer::ROUND_DOWN],
123+
[null, 2, '37.37', 0.3737, PercentToLocalizedStringTransformer::ROUND_DOWN],
124+
[null, 2, '2.01', 0.0201, PercentToLocalizedStringTransformer::ROUND_DOWN],
125+
// round halves (.5) to the next even number
126+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.6', 35, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
127+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.5', 34, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
128+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.4', 34, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
129+
[PercentToLocalizedStringTransformer::INTEGER,0, '33.5', 34, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
130+
[PercentToLocalizedStringTransformer::INTEGER,0, '32.5', 32, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
131+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.46', 3.5, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
132+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.45', 3.4, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
133+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.44', 3.4, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
134+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.35', 3.4, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
135+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.25', 3.2, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
136+
[null, 0, '34.6', 0.35, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
137+
[null, 0, '34.5', 0.34, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
138+
[null, 0, '34.4', 0.34, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
139+
[null, 0, '33.5', 0.34, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
140+
[null, 0, '32.5', 0.32, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
141+
[null, 1, '3.46', 0.035, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
142+
[null, 1, '3.45', 0.034, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
143+
[null, 1, '3.44', 0.034, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
144+
[null, 1, '3.35', 0.034, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
145+
[null, 1, '3.25', 0.032, PercentToLocalizedStringTransformer::ROUND_HALF_EVEN],
146+
// round halves (.5) away from zero
147+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.6', 35, PercentToLocalizedStringTransformer::ROUND_HALF_UP],
148+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.5', 35, PercentToLocalizedStringTransformer::ROUND_HALF_UP],
149+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.4', 34, PercentToLocalizedStringTransformer::ROUND_HALF_UP],
150+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.46', 3.5, PercentToLocalizedStringTransformer::ROUND_HALF_UP],
151+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.45', 3.5, PercentToLocalizedStringTransformer::ROUND_HALF_UP],
152+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.44', 3.4, PercentToLocalizedStringTransformer::ROUND_HALF_UP],
153+
[null, 0, '34.6', 0.35, PercentToLocalizedStringTransformer::ROUND_HALF_UP],
154+
[null, 0, '34.5', 0.35, PercentToLocalizedStringTransformer::ROUND_HALF_UP],
155+
[null, 0, '34.4', 0.34, PercentToLocalizedStringTransformer::ROUND_HALF_UP],
156+
[null, 1, '3.46', 0.035, PercentToLocalizedStringTransformer::ROUND_HALF_UP],
157+
[null, 1, '3.45', 0.035, PercentToLocalizedStringTransformer::ROUND_HALF_UP],
158+
[null, 1, '3.44', 0.034, PercentToLocalizedStringTransformer::ROUND_HALF_UP],
159+
// round halves (.5) towards zero
160+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.6', 35, PercentToLocalizedStringTransformer::ROUND_HALF_DOWN],
161+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.5', 34, PercentToLocalizedStringTransformer::ROUND_HALF_DOWN],
162+
[PercentToLocalizedStringTransformer::INTEGER,0, '34.4', 34, PercentToLocalizedStringTransformer::ROUND_HALF_DOWN],
163+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.46', 3.5, PercentToLocalizedStringTransformer::ROUND_HALF_DOWN],
164+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.45', 3.4, PercentToLocalizedStringTransformer::ROUND_HALF_DOWN],
165+
[PercentToLocalizedStringTransformer::INTEGER,1, '3.44', 3.4, PercentToLocalizedStringTransformer::ROUND_HALF_DOWN],
166+
[null, 0, '34.6', 0.35, PercentToLocalizedStringTransformer::ROUND_HALF_DOWN],
167+
[null, 0, '34.5', 0.34, PercentToLocalizedStringTransformer::ROUND_HALF_DOWN],
168+
[null, 0, '34.4', 0.34, PercentToLocalizedStringTransformer::ROUND_HALF_DOWN],
169+
[null, 1, '3.46', 0.035, PercentToLocalizedStringTransformer::ROUND_HALF_DOWN],
170+
[null, 1, '3.45', 0.034, PercentToLocalizedStringTransformer::ROUND_HALF_DOWN],
171+
[null, 1, '3.44', 0.034, PercentToLocalizedStringTransformer::ROUND_HALF_DOWN],
172+
];
173+
}
174+
175+
/**
176+
* @dataProvider reverseTransformWithRoundingProvider
177+
*/
178+
public function testReverseTransformWithRounding($type, $scale, $input, $output, $roundingMode)
179+
{
180+
$transformer = new PercentToLocalizedStringTransformer($scale, $type, $roundingMode);
181+
182+
$this->assertEquals($output, $transformer->reverseTransform($input));
183+
}
184+
82185
public function testReverseTransformEmpty()
83186
{
84187
$transformer = new PercentToLocalizedStringTransformer();

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.