mirror of
https://github.com/pocketpy/pocketpy
synced 2025-10-22 20:40:18 +00:00
add float division by zero
This commit is contained in:
parent
2d682b24d8
commit
a402406982
@ -70,6 +70,7 @@ static bool int__truediv__(int argc, py_Ref argv) {
|
|||||||
py_i64 lhs = py_toint(&argv[0]);
|
py_i64 lhs = py_toint(&argv[0]);
|
||||||
py_f64 rhs;
|
py_f64 rhs;
|
||||||
if(try_castfloat(&argv[1], &rhs)) {
|
if(try_castfloat(&argv[1], &rhs)) {
|
||||||
|
if(rhs == 0.0) return ZeroDivisionError("float division by zero");
|
||||||
py_newfloat(py_retval(), lhs / rhs);
|
py_newfloat(py_retval(), lhs / rhs);
|
||||||
} else {
|
} else {
|
||||||
py_newnotimplemented(py_retval());
|
py_newnotimplemented(py_retval());
|
||||||
@ -82,6 +83,7 @@ static bool float__truediv__(int argc, py_Ref argv) {
|
|||||||
py_f64 lhs = py_tofloat(&argv[0]);
|
py_f64 lhs = py_tofloat(&argv[0]);
|
||||||
py_f64 rhs;
|
py_f64 rhs;
|
||||||
if(try_castfloat(&argv[1], &rhs)) {
|
if(try_castfloat(&argv[1], &rhs)) {
|
||||||
|
if(rhs == 0.0) return ZeroDivisionError("float division by zero");
|
||||||
py_newfloat(py_retval(), lhs / rhs);
|
py_newfloat(py_retval(), lhs / rhs);
|
||||||
} else {
|
} else {
|
||||||
py_newnotimplemented(py_retval());
|
py_newnotimplemented(py_retval());
|
||||||
|
@ -54,8 +54,19 @@ assert eq(float("123.456"), 123.456)
|
|||||||
|
|
||||||
|
|
||||||
inf = float("inf")
|
inf = float("inf")
|
||||||
|
|
||||||
|
try:
|
||||||
assert 1/0 == inf
|
assert 1/0 == inf
|
||||||
|
exit(1)
|
||||||
|
except ZeroDivisionError:
|
||||||
|
pass
|
||||||
|
|
||||||
|
try:
|
||||||
assert -1/0 == -inf
|
assert -1/0 == -inf
|
||||||
|
exit(1)
|
||||||
|
except ZeroDivisionError:
|
||||||
|
pass
|
||||||
|
|
||||||
assert 1/inf == 0
|
assert 1/inf == 0
|
||||||
assert -1/inf == 0
|
assert -1/inf == 0
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user