Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

Re: Some simple math and absolute values

by BillKSmith (Monsignor)
on May 23, 2020 at 23:37 UTC ( [id://11117189]=note: print w/replies, xml ) Need Help??


in reply to Some simple math and absolute values

The following code may not be any shorter than yours, but I find it much easier to understand. The tests demonstrate that it produces the same total as yours for a variety of weights.
use strict; use warnings; use Test::More tests => 11; my $min = 1; my $price = 10; sub total { my $wt = $_[0]; my $Total = ($wt < -$min) ? $price * $wt : ($wt < 0 ) ? $price * (-$min) : ($wt < $min ) ? $price * $min : $price * $wt ; return $Total; } sub refrence { my $wt = $_[0]; my $nwt = abs($wt); $nwt = $min if $nwt<$min; my $total = $nwt*$price; $total = -$total if $wt<0; return $total; } for (0..10) { my $trial_wt = .3 * ($_ -5); is( total($trial_wt), refrence($trial_wt), "Weight: $trial_wt"); }

OUTPUT:

1..11 ok 1 - Weight: -1.5 ok 2 - Weight: -1.2 ok 3 - Weight: -0.9 ok 4 - Weight: -0.6 ok 5 - Weight: -0.3 ok 6 - Weight: 0 ok 7 - Weight: 0.3 ok 8 - Weight: 0.6 ok 9 - Weight: 0.9 ok 10 - Weight: 1.2 ok 11 - Weight: 1.5
Bill

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://11117189]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others musing on the Monastery: (2)
As of 2024-04-25 06:24 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found