@@ -102,7 +102,7 @@ public function test_validate_success($value, $min, $max, $decpoint = '.')
102102 public function valueProvider ()
103103 {
104104 return [
105- // $value, $expect, $roundto, $decpoint, $thousands, $trimzeros, $prefix='', $postfix='', $engineering = false
105+ // $value, $expect, $roundto, $decpoint, $thousands, $trimzeros, $prefix='', $postfix='', $engineering = false, $format = ''
106106 ['5000 ' , '5 000,00 ' , '2 ' , ', ' , ' ' , false ],
107107 ['5000 ' , '5 000 ' , '2 ' , ', ' , ' ' , true ],
108108 ['5000 ' , '5 000 ' , '0 ' , ', ' , ' ' , false ],
@@ -149,6 +149,22 @@ public function valueProvider()
149149 ['1e15 ' , '1000 ' . "\xE2\x80\xAF" . 'T ' , '-1 ' , ', ' , ' ' , true , '' , '' , true ],
150150 ['1e-21 ' , '0.001 ' . "\xE2\x80\xAF" . 'a ' , '-1 ' , ', ' , ' ' , true , '' , '' , true ],
151151
152+ // test format string
153+ // invalid or empty format (ignored)
154+ ['5000 ' , '5 000 ' , '-1 ' , '. ' , ' ' , true , '' , '' , false , '' ],
155+ ['5000 ' , '5 000.00 ' , '2 ' , '. ' , ' ' , false , '' , '' , false , '%s ' ],
156+ ['5000 ' , '5 000.00 ' , '2 ' , '. ' , ' ' , false , '' , '' , false , '%1$d ' ],
157+ ['5000 ' , '5 000.00 ' , '2 ' , '. ' , ' ' , false , '' , '' , false , '%04d%02d%02d ' ],
158+ // valid format
159+ ['1.7 ' , '1.70 ' , '-1 ' , '. ' , ' ' , true , '' , '' , false , '%01.2f ' ],
160+ ['1.7 ' , '1.70 ' , '-1 ' , '. ' , ' ' , true , '' , '' , false , '%01.2F ' ],
161+ ['1.7 ' , '0001 ' , '-1 ' , '. ' , ' ' , true , '' , '' , false , "%'.04d " ],
162+ ['15 ' , '1111 ' , '-1 ' , '. ' , ' ' , true , '' , '' , false , '%04b ' ],
163+ ['362525200 ' , '3.625e+8 ' , '-1 ' , '. ' , ' ' , true , '' , '' , false , '%.3e ' ],
164+ ['362525200 ' , '3.625E+8 ' , '-1 ' , '. ' , ' ' , true , '' , '' , false , '%.3E ' ],
165+ ['1 ' , '1 ' , '-1 ' , '. ' , ' ' , true , '' , '' , false , '%u ' ],
166+ ['-1 ' , '18446744073709551615 ' , '-1 ' , '. ' , ' ' , true , '' , '' , false , '%u ' ],
167+
152168 ];
153169 }
154170
@@ -158,7 +174,8 @@ public function valueProvider()
158174 public function test_renderValue (
159175 $ value , $ expect , $ roundto , $ decpoint ,
160176 $ thousands , $ trimzeros ,
161- $ prefix = '' , $ postfix = '' , $ engineering = false
177+ $ prefix = '' , $ postfix = '' , $ engineering = false ,
178+ $ format = ''
162179 )
163180 {
164181 $ decimal = new Decimal ([
@@ -168,7 +185,8 @@ public function test_renderValue(
168185 'trimzeros ' => $ trimzeros ,
169186 'prefix ' => $ prefix ,
170187 'postfix ' => $ postfix ,
171- 'engineering ' => $ engineering
188+ 'engineering ' => $ engineering ,
189+ 'format ' => $ format
172190 ]);
173191 $ R = new \Doku_Renderer_xhtml ();
174192 $ R ->doc = '' ;
0 commit comments