Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- # Floating point comparison
- f1=0.01
- f2=0.02
- float_cp () {
- IFS="."
- read -ra float1 <<< "$1"
- IFS="."
- read -ra float2 <<< "$2"
- if [[ ${float1[0]} -gt ${float2[0]} || (${float1[0]} -eq ${float2[0]} && ${float1[1]} -gt ${float2[1]}) ]]; then
- echo 1
- elif [[ ${float1[0]} -eq ${float2[0]} && ${float1[1]} -eq ${float2[1]} ]]; then
- echo 0
- else
- echo -1
- fi
- }
- if [[ "$(float_cp $f1 $f2)" -eq 0 ]]; then
- echo "yay eq"
- elif [[ "$(float_cp $f1 $f2)" -gt 0 ]]; then
- echo "may gt"
- elif [[ "$(float_cp $f1 $f2)" -lt 0 ]]; then
- echo "nay lt"
- fi
- tests ()
- {
- echo "float_cp tests"
- echo "eq"
- if [[ "$(float_cp 0.1 0.1)" -eq 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp 10.11 10.11)" -eq 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp .11 0.11)" -eq 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp 0.11 .11)" -eq 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- echo "training 0s currently fails"
- if [[ "$(float_cp 0.110 .11)" -eq 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp 0.11 .110)" -eq 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- echo "gt"
- if [[ "$(float_cp 0.2 0.1)" -gt 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp 2.1 0.1)" -gt 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp 20.11 10.11)" -gt 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp 10.21 10.11)" -gt 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp .12 0.11)" -gt 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp 0.12 .11)" -eq 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- echo "training 0s currently fails"
- if [[ "$(float_cp 0.120 .11)" -eq 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp 0.12 .110)" -eq 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- echo "lt"
- if [[ "$(float_cp 0.1 0.2)" -lt 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp 0.1 21)" -lt 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp 10.11 20.11)" -lt 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp 10.11 10.21)" -lt 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp .11 0.12)" -lt 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp 0.11 .12)" -lt 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- echo "training 0s currently fails"
- if [[ "$(float_cp 0.11 .120)" -lt 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- if [[ "$(float_cp 0.110 .12)" -lt 0 ]]; then
- echo "pass"
- else
- echo "fail"
- fi
- }
Advertisement
Add Comment
Please, Sign In to add comment