Compare commits

...

2 Commits

Author SHA1 Message Date
blueloveTH
8ff60df158 Update 72_lz4.py 2025-05-29 19:11:15 +08:00
blueloveTH
a402406982 add float division by zero 2025-05-29 17:17:22 +08:00
3 changed files with 17 additions and 2 deletions

View File

@ -70,6 +70,7 @@ static bool int__truediv__(int argc, py_Ref argv) {
py_i64 lhs = py_toint(&argv[0]);
py_f64 rhs;
if(try_castfloat(&argv[1], &rhs)) {
if(rhs == 0.0) return ZeroDivisionError("float division by zero");
py_newfloat(py_retval(), lhs / rhs);
} else {
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 rhs;
if(try_castfloat(&argv[1], &rhs)) {
if(rhs == 0.0) return ZeroDivisionError("float division by zero");
py_newfloat(py_retval(), lhs / rhs);
} else {
py_newnotimplemented(py_retval());

View File

@ -54,8 +54,19 @@ assert eq(float("123.456"), 123.456)
inf = float("inf")
try:
assert 1/0 == inf
exit(1)
except ZeroDivisionError:
pass
try:
assert -1/0 == -inf
exit(1)
except ZeroDivisionError:
pass
assert 1/inf == 0
assert -1/inf == 0

View File

@ -8,6 +8,8 @@ def test(data: bytes):
compressed = lz4.compress(data)
decompressed = lz4.decompress(compressed)
assert data == decompressed
if len(data) == 0:
return 0
return len(compressed) / len(data)
test(b'')