mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-11-17 15:18:05 +00:00
Improve amount conversion code.
This commit is contained in:
@@ -38,15 +38,15 @@ class AmountTest extends TestCase
|
||||
{
|
||||
$values = [
|
||||
'0' => '0',
|
||||
'0.0' => '0',
|
||||
'0.0' => '0.0',
|
||||
'0.1' => '0.1',
|
||||
'.2' => '0.2',
|
||||
'0.01' => '0.01',
|
||||
'1' => '1',
|
||||
'1.0' => '1',
|
||||
'1.0' => '1.0',
|
||||
'1.1' => '1.1',
|
||||
'1.12' => '1.12',
|
||||
'1.10' => '1.1',
|
||||
'1.10' => '1.10',
|
||||
'12' => '12',
|
||||
'12.3' => '12.3',
|
||||
'12.34' => '12.34',
|
||||
@@ -63,14 +63,14 @@ class AmountTest extends TestCase
|
||||
'1,234.5' => '1234.5',
|
||||
'1,234.56' => '1234.56',
|
||||
'123,456,789' => '123456789',
|
||||
'0,0' => '0',
|
||||
'0,0' => '0.0',
|
||||
'0,1' => '0.1',
|
||||
',2' => '0.2',
|
||||
'0,01' => '0.01',
|
||||
'1,0' => '1',
|
||||
'1,0' => '1.0',
|
||||
'1,1' => '1.1',
|
||||
'1,12' => '1.12',
|
||||
'1,10' => '1.1',
|
||||
'1,10' => '1.10',
|
||||
'12,3' => '12.3',
|
||||
'12,34' => '12.34',
|
||||
'123,4' => '123.4',
|
||||
@@ -83,17 +83,17 @@ class AmountTest extends TestCase
|
||||
'1.234,5' => '1234.5',
|
||||
'1.234,56' => '1234.56',
|
||||
// many decimals
|
||||
'2.00' => '2',
|
||||
'3.000' => '3',
|
||||
'4.0000' => '4',
|
||||
'5.000' => '5',
|
||||
'6.0000' => '6',
|
||||
'7.200' => '7.2',
|
||||
'8.2000' => '8.2',
|
||||
'9.330' => '9.33',
|
||||
'10.3300' => '10.33',
|
||||
'2.00' => '2.00',
|
||||
'3.000' => '3.000',
|
||||
'4.0000' => '4.0000',
|
||||
'5.000' => '5.000',
|
||||
'6.0000' => '6.0000',
|
||||
'7.200' => '7.200',
|
||||
'8.2000' => '8.2000',
|
||||
'9.330' => '9.330',
|
||||
'10.3300' => '10.3300',
|
||||
'11.444' => '11.444',
|
||||
'12.4440' => '12.444',
|
||||
'12.4440' => '12.4440',
|
||||
'13.5555' => '13.5555',
|
||||
'14.45678' => '14.45678',
|
||||
'15.456789' => '15.456789',
|
||||
@@ -104,18 +104,19 @@ class AmountTest extends TestCase
|
||||
'20.16334567898' => '20.16334567898',
|
||||
'21.16364567898' => '21.16364567898',
|
||||
'22.163644567898' => '22.163644567898',
|
||||
'22.1636445670069' => '22.1636445670069',
|
||||
// many decimals, mixed, large numbers
|
||||
'63522.00' => '63522',
|
||||
'63523.000' => '63523',
|
||||
'63524.0000' => '63524',
|
||||
'63525.000' => '63525',
|
||||
'63526.0000' => '63526',
|
||||
'63527.200' => '63527.2',
|
||||
'63528.2000' => '63528.2',
|
||||
'63529.330' => '63529.33',
|
||||
'635210.3300' => '635210.33',
|
||||
'63522.00' => '63522.00',
|
||||
'63523.000' => '63523.000',
|
||||
'63524.0000' => '63524.0000',
|
||||
'63525.000' => '63525.000',
|
||||
'63526.0000' => '63526.0000',
|
||||
'63527.200' => '63527.200',
|
||||
'63528.2000' => '63528.2000',
|
||||
'63529.330' => '63529.330',
|
||||
'635210.3300' => '635210.3300',
|
||||
'635211.444' => '635211.444',
|
||||
'635212.4440' => '635212.444',
|
||||
'635212.4440' => '635212.4440',
|
||||
'635213.5555' => '635213.5555',
|
||||
'635214.45678' => '635214.45678',
|
||||
'635215.456789' => '635215.456789',
|
||||
@@ -127,17 +128,17 @@ class AmountTest extends TestCase
|
||||
'635221.16364567898' => '635221.16364567898',
|
||||
'635222.163644567898' => '635222.163644567898',
|
||||
// many decimals, mixed, also mixed thousands separators
|
||||
'63 522.00' => '63522',
|
||||
'63 523.000' => '63523',
|
||||
'63,524.0000' => '63524',
|
||||
'63 525.000' => '63525',
|
||||
'63,526.0000' => '63526',
|
||||
'63 527.200' => '63527.2',
|
||||
'63 528.2000' => '63528.2',
|
||||
'63 529.330' => '63529.33',
|
||||
'63,5210.3300' => '635210.33',
|
||||
'63 522.00' => '63522.00',
|
||||
'63 523.000' => '63523.000',
|
||||
'63,524.0000' => '63524.0000',
|
||||
'63 525.000' => '63525.000',
|
||||
'63,526.0000' => '63526.0000',
|
||||
'63 527.200' => '63527.200',
|
||||
'63 528.2000' => '63528.2000',
|
||||
'63 529.330' => '63529.330',
|
||||
'63,5210.3300' => '635210.3300',
|
||||
'63,5211.444' => '635211.444',
|
||||
'63 5212.4440' => '635212.444',
|
||||
'63 5212.4440' => '635212.4440',
|
||||
'163 5219.1634567898' => '1635219.1634567898',
|
||||
'444 163 5219.1634567898' => '4441635219.1634567898',
|
||||
'-0.34918323' => '-0.34918323',
|
||||
@@ -161,13 +162,13 @@ class AmountTest extends TestCase
|
||||
'--0.03881677' => '0.03881677',
|
||||
'--0.33' => '0.33',
|
||||
'--$1.23' => '1.23',
|
||||
'--63 5212.4440' => '635212.444',
|
||||
'--63 5212.4440' => '635212.4440',
|
||||
'--,2' => '0.2',
|
||||
];
|
||||
foreach ($values as $value => $expected) {
|
||||
$converter = new Amount;
|
||||
$result = $converter->convert($value);
|
||||
$this->assertEquals($expected, $result, sprintf('The original value was %s', $value));
|
||||
$this->assertEquals($expected, $result, sprintf('The original value was "%s", returned was "%s"', $value, $result));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user