diff options
author | P. J. McDermott <pj@pehjota.net> | 2017-01-04 20:40:01 (EST) |
---|---|---|
committer | P. J. McDermott <pj@pehjota.net> | 2017-01-04 21:10:01 (EST) |
commit | e6de8cea0795de6483303f533130bcb15f9e9fa5 (patch) | |
tree | 29bf235141ec0017d6a22ed9df80a7f73a66bc4a /t/11_nj-st-75-2017.t | |
parent | fbb895e34448c36ffadb2ea687ab8902a374d64f (diff) | |
download | Math-Decimal-FastPP-e6de8cea0795de6483303f533130bcb15f9e9fa5.zip Math-Decimal-FastPP-e6de8cea0795de6483303f533130bcb15f9e9fa5.tar.gz Math-Decimal-FastPP-e6de8cea0795de6483303f533130bcb15f9e9fa5.tar.bz2 |
t/11_nj-st-75-2017.t: Rename to t/20_nj-st-75-2017.t
Diffstat (limited to 't/11_nj-st-75-2017.t')
-rw-r--r-- | t/11_nj-st-75-2017.t | 142 |
1 files changed, 0 insertions, 142 deletions
diff --git a/t/11_nj-st-75-2017.t b/t/11_nj-st-75-2017.t deleted file mode 100644 index 873db24..0000000 --- a/t/11_nj-st-75-2017.t +++ /dev/null @@ -1,142 +0,0 @@ -# t/11_nj-st-75-2017.t - dmul, drhtz, drhfz tests using NJ ST-75 for 2017 -# -# Copyright (C) 2017 Patrick McDermott -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <http://www.gnu.org/licenses/>. - -use strict; -use warnings; - -use Test::More; -use B qw(svref_2object); -use Math::FastPPDecimal; - -my @st75; -my $from; -my $to; -my $tax; -my @funcs; -my $i; -my $t; -my $f; - -# There are 1000 test amounts between 0.01 and 10.00. Six require tie-breaking -# when rounding the calculated tax, but NJ's ST-75 appears to use different -# tie-breaking rules for different amounts: -# -# Rate Amt Tax ST-75 Rule -# ---------------------------------------- -# 0.06875 * 0.80 = 0.055 0.06 Half up -# 2.40 0.165 0.17 Half up -# 4.00 0.275 0.27 Half down -# 5.60 0.385 0.38 Half down -# 7.20 0.495 0.49 Half down -# 8.80 0.605 0.60 Half down -# -# So in the below two-dimensional array, we test both rounding functions for all -# but these six anomalous amounts. This means we are running 1000 * 2 - 6 -# tests. - -plan("tests" => 1000 * 2 - 6); - -@st75 = ( - # From To Tax Rounding functions - [0.01, 0.07, .00, \&drhtz, \&drhfz], - [0.08, 0.21, .01, \&drhtz, \&drhfz], - [0.22, 0.36, .02, \&drhtz, \&drhfz], - [0.37, 0.50, .03, \&drhtz, \&drhfz], - [0.51, 0.65, .04, \&drhtz, \&drhfz], - [0.66, 0.79, .05, \&drhtz, \&drhfz], - [0.80, 0.80, .06, \&drhfz], - [0.81, 0.94, .06, \&drhtz, \&drhfz], - [0.95, 1.09, .07, \&drhtz, \&drhfz], - [1.10, 1.23, .08, \&drhtz, \&drhfz], - [1.24, 1.38, .09, \&drhtz, \&drhfz], - [1.39, 1.52, .10, \&drhtz, \&drhfz], - [1.53, 1.67, .11, \&drhtz, \&drhfz], - [1.68, 1.81, .12, \&drhtz, \&drhfz], - [1.82, 1.96, .13, \&drhtz, \&drhfz], - [1.97, 2.10, .14, \&drhtz, \&drhfz], - [2.11, 2.25, .15, \&drhtz, \&drhfz], - [2.26, 2.39, .16, \&drhtz, \&drhfz], - [2.40, 2.40, .17, \&drhfz], - [2.41, 2.54, .17, \&drhtz, \&drhfz], - [2.55, 2.69, .18, \&drhtz, \&drhfz], - [2.70, 2.83, .19, \&drhtz, \&drhfz], - [2.84, 2.98, .20, \&drhtz, \&drhfz], - [2.99, 3.12, .21, \&drhtz, \&drhfz], - [3.13, 3.27, .22, \&drhtz, \&drhfz], - [3.28, 3.41, .23, \&drhtz, \&drhfz], - [3.42, 3.56, .24, \&drhtz, \&drhfz], - [3.57, 3.70, .25, \&drhtz, \&drhfz], - [3.71, 3.85, .26, \&drhtz, \&drhfz], - [3.86, 3.99, .27, \&drhtz, \&drhfz], - [4.00, 4.00, .27, \&drhtz ], - [4.01, 4.14, .28, \&drhtz, \&drhfz], - [4.15, 4.29, .29, \&drhtz, \&drhfz], - [4.30, 4.43, .30, \&drhtz, \&drhfz], - [4.44, 4.58, .31, \&drhtz, \&drhfz], - [4.59, 4.72, .32, \&drhtz, \&drhfz], - [4.73, 4.87, .33, \&drhtz, \&drhfz], - [4.88, 5.01, .34, \&drhtz, \&drhfz], - [5.02, 5.16, .35, \&drhtz, \&drhfz], - [5.17, 5.30, .36, \&drhtz, \&drhfz], - [5.31, 5.45, .37, \&drhtz, \&drhfz], - [5.46, 5.59, .38, \&drhtz, \&drhfz], - [5.60, 5.60, .38, \&drhtz ], - [5.61, 5.74, .39, \&drhtz, \&drhfz], - [5.75, 5.89, .40, \&drhtz, \&drhfz], - [5.90, 6.03, .41, \&drhtz, \&drhfz], - [6.04, 6.18, .42, \&drhtz, \&drhfz], - [6.19, 6.32, .43, \&drhtz, \&drhfz], - [6.33, 6.47, .44, \&drhtz, \&drhfz], - [6.48, 6.61, .45, \&drhtz, \&drhfz], - [6.62, 6.76, .46, \&drhtz, \&drhfz], - [6.77, 6.90, .47, \&drhtz, \&drhfz], - [6.91, 7.05, .48, \&drhtz, \&drhfz], - [7.06, 7.19, .49, \&drhtz, \&drhfz], - [7.20, 7.20, .49, \&drhtz ], - [7.21, 7.34, .50, \&drhtz, \&drhfz], - [7.35, 7.49, .51, \&drhtz, \&drhfz], - [7.50, 7.63, .52, \&drhtz, \&drhfz], - [7.64, 7.78, .53, \&drhtz, \&drhfz], - [7.79, 7.92, .54, \&drhtz, \&drhfz], - [7.93, 8.07, .55, \&drhtz, \&drhfz], - [8.08, 8.21, .56, \&drhtz, \&drhfz], - [8.22, 8.36, .57, \&drhtz, \&drhfz], - [8.37, 8.50, .58, \&drhtz, \&drhfz], - [8.51, 8.65, .59, \&drhtz, \&drhfz], - [8.66, 8.79, .60, \&drhtz, \&drhfz], - [8.80, 8.80, .60, \&drhtz ], - [8.81, 8.94, .61, \&drhtz, \&drhfz], - [8.95, 9.09, .62, \&drhtz, \&drhfz], - [9.10, 9.23, .63, \&drhtz, \&drhfz], - [9.24, 9.38, .64, \&drhtz, \&drhfz], - [9.39, 9.52, .65, \&drhtz, \&drhfz], - [9.53, 9.67, .66, \&drhtz, \&drhfz], - [9.68, 9.81, .67, \&drhtz, \&drhfz], - [9.82, 9.96, .68, \&drhtz, \&drhfz], - [9.97, 10.00, .69, \&drhtz, \&drhfz], -); - -foreach (@st75) { - ($from, $to, $tax, @funcs) = @{$_}; - for ($i = $from; $i <= $to; $i = dadd($i, "0.01")) { - foreach $f (@funcs) { - $t = &$f(dmul($i, "0.06875"), 2); - is(int($t), int($tax), svref_2object($f)->GV->NAME . - "(dmul(" . $i . ", \"0.06875\"), 2)"); - } - } -} |