tests: include: math: simplify bc conditions, review $?

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Reviewed-by: John Kennedy <john.kennedy@delphix.com>
Reviewed-by: Ryan Moeller <ryan@iXsystems.com>
Signed-off-by: Ahelenia Ziemiańska <nabijaczleweli@nabijaczleweli.xyz>
Closes #13259
This commit is contained in:
наб 2022-03-23 17:54:07 +01:00 committed by Brian Behlendorf
parent caccfc870f
commit 6586085673

View File

@ -30,17 +30,14 @@ function within_percent
typeset percent=$3 typeset percent=$3
# Set $a or $b to $2 such that a >= b # Set $a or $b to $2 such that a >= b
[[ '1' = $(echo "if ($2 > $a) 1 else 0" | bc) ]] && a=$2 || b=$2 [ 1 -eq $(echo "$2 > $a" | bc) ] && a=$2 || b=$2
# Prevent division by 0 # Prevent division by 0
[[ $a =~ [1-9] ]] || return 1 [[ $a =~ [1-9] ]] || return 1
typeset p=$(echo "scale=2; $b * 100 / $a" | bc) typeset p=$(echo "scale=2; $b * 100 / $a" | bc)
log_note "Comparing $a and $b given $percent% (calculated: $p%)" log_note "Comparing $a and $b given $percent% (calculated: $p%)"
[[ '1' = $(echo "scale=2; if ($p >= $percent) 1 else 0" | bc) ]] && \ [ 1 -eq $(echo "scale=2; $p >= $percent" | bc) ]
return 0
return 1
} }
# #
@ -61,9 +58,7 @@ function within_tolerance #value #target #tolerance
typeset diff=$((abs(val - target))) typeset diff=$((abs(val - target)))
log_note "Checking if $val is within +/-$tol of $target (diff: $diff)" log_note "Checking if $val is within +/-$tol of $target (diff: $diff)"
((diff <= tol)) && return 0 ((diff <= tol))
return 1
} }
# #