685013a44b76d5274ee0a4c2821854779d385c19
[kivitendo-erp.git] / t / form / round_amount.t
1 use strict;
2 use Test::More;
3
4 use lib 't';
5 use Support::TestSetup;
6
7 Support::TestSetup::login();
8
9 my $config = {};
10
11 $config->{numberformat} = '1.000,00';
12
13 # Positive values
14 is($::form->round_amount(1.05, 2), '1.05', '1.05 @ 2');
15 is($::form->round_amount(1.05, 1), '1.1',  '1.05 @ 1');
16 is($::form->round_amount(1.05, 0), '1',    '1.05 @ 0');
17
18 is($::form->round_amount(1.045, 2), '1.05', '1.045 @ 2');
19 is($::form->round_amount(1.045, 1), '1',    '1.045 @ 1');
20 is($::form->round_amount(1.045, 0), '1',    '1.045 @ 0');
21
22 is($::form->round_amount(33.675, 2), '33.68', '33.675 @ 2');
23 is($::form->round_amount(33.675, 1), '33.7',  '33.675 @ 1');
24 is($::form->round_amount(33.675, 0), '34',    '33.675 @ 0');
25
26 is($::form->round_amount(64.475, 2), '64.48', '64.475 @ 2');
27 is($::form->round_amount(64.475, 1), '64.5',  '64.475 @ 1');
28 is($::form->round_amount(64.475, 0), '64',    '64.475 @ 0');
29
30 is($::form->round_amount(64.475499, 5), '64.4755', '64.475499 @ 5');
31 is($::form->round_amount(64.475499, 4), '64.4755', '64.475499 @ 4');
32 is($::form->round_amount(64.475499, 3), '64.475',  '64.475499 @ 3');
33 is($::form->round_amount(64.475499, 2), '64.48',   '64.475499 @ 2');
34 is($::form->round_amount(64.475499, 1), '64.5',    '64.475499 @ 1');
35 is($::form->round_amount(64.475499, 0), '64',      '64.475499 @ 0');
36
37 is($::form->round_amount(64.475999, 5), '64.476', '64.475999 @ 5');
38 is($::form->round_amount(64.475999, 4), '64.476', '64.475999 @ 4');
39 is($::form->round_amount(64.475999, 3), '64.476', '64.475999 @ 3');
40 is($::form->round_amount(64.475999, 2), '64.48',  '64.475999 @ 2');
41 is($::form->round_amount(64.475999, 1), '64.5',   '64.475999 @ 1');
42 is($::form->round_amount(64.475999, 0), '64',     '64.475999 @ 0');
43
44 is($::form->round_amount(44.9 * 0.75, 2), '33.68', '44.9 * 0.75 @ 2');
45 is($::form->round_amount(44.9 * 0.75, 1), '33.7',  '44.9 * 0.75 @ 1');
46 is($::form->round_amount(44.9 * 0.75, 0), '34',    '44.9 * 0.75 @ 0');
47
48 is($::form->round_amount(149.175, 2), '149.18', '149.175 @ 2');
49 is($::form->round_amount(149.175, 1), '149.2',  '149.175 @ 1');
50 is($::form->round_amount(149.175, 0), '149',    '149.175 @ 0');
51
52 is($::form->round_amount(198.90 * 0.75, 2), '149.18', '198.90 * 0.75 @ 2');
53 is($::form->round_amount(198.90 * 0.75, 1), '149.2',  '198.90 * 0.75 @ 1');
54 is($::form->round_amount(198.90 * 0.75, 0), '149',    '198.90 * 0.75 @ 0');
55
56 # Negative values
57 is($::form->round_amount(-1.05, 2), '-1.05', '-1.05 @ 2');
58 is($::form->round_amount(-1.05, 1), '-1.1',  '-1.05 @ 1');
59 is($::form->round_amount(-1.05, 0), '-1',    '-1.05 @ 0');
60
61 is($::form->round_amount(-1.045, 2), '-1.05', '-1.045 @ 2');
62 is($::form->round_amount(-1.045, 1), '-1',    '-1.045 @ 1');
63 is($::form->round_amount(-1.045, 0), '-1',    '-1.045 @ 0');
64
65 is($::form->round_amount(-33.675, 2), '-33.68', '33.675 @ 2');
66 is($::form->round_amount(-33.675, 1), '-33.7',  '33.675 @ 1');
67 is($::form->round_amount(-33.675, 0), '-34',    '33.675 @ 0');
68
69 is($::form->round_amount(-44.9 * 0.75, 2), '-33.68', '-44.9 * 0.75 @ 2');
70 is($::form->round_amount(-44.9 * 0.75, 1), '-33.7',  '-44.9 * 0.75 @ 1');
71 is($::form->round_amount(-44.9 * 0.75, 0), '-34',    '-44.9 * 0.75 @ 0');
72
73 is($::form->round_amount(-149.175, 2), '-149.18', '-149.175 @ 2');
74 is($::form->round_amount(-149.175, 1), '-149.2',  '-149.175 @ 1');
75 is($::form->round_amount(-149.175, 0), '-149',    '-149.175 @ 0');
76
77 is($::form->round_amount(-198.90 * 0.75, 2), '-149.18', '-198.90 * 0.75 @ 2');
78 is($::form->round_amount(-198.90 * 0.75, 1), '-149.2',  '-198.90 * 0.75 @ 1');
79 is($::form->round_amount(-198.90 * 0.75, 0), '-149',    '-198.90 * 0.75 @ 0');
80
81 done_testing;
82
83 1;