standalone/demo: numpy2 compatibility

This commit is contained in:
Sebastien Bourdeauducq 2025-01-04 15:30:24 +08:00
parent e480081e4b
commit 8322d457c6
2 changed files with 12 additions and 16 deletions

View File

@ -67,7 +67,7 @@ def _bool(x):
def _float(x):
if isinstance(x, np.ndarray):
return np.float_(x)
return np.float64(x)
else:
return float(x)
@ -111,6 +111,9 @@ def patch(module):
def output_strln(x):
print(x, end='')
def output_int32_list(x):
print([int(e) for e in x])
def dbg_stack_address(_):
return 0
@ -126,11 +129,12 @@ def patch(module):
return output_float
elif name == "output_str":
return output_strln
elif name == "output_int32_list":
return output_int32_list
elif name in {
"output_bool",
"output_int32",
"output_int64",
"output_int32_list",
"output_uint32",
"output_uint64",
"output_strln",

View File

@ -29,10 +29,10 @@ def u32_max() -> uint32:
return ~uint32(0)
def i32_min() -> int32:
return int32(1 << 31)
return int32(-(1 << 31))
def i32_max() -> int32:
return int32(~(1 << 31))
return int32((1 << 31)-1)
def u64_min() -> uint64:
return uint64(0)
@ -63,8 +63,9 @@ def test_conv_from_i32():
i32_max()
]:
output_int64(int64(x))
output_uint32(uint32(x))
output_uint64(uint64(x))
if x >= 0:
output_uint32(uint32(x))
output_uint64(uint64(x))
output_float64(float(x))
def test_conv_from_u32():
@ -108,7 +109,6 @@ def test_conv_from_u64():
def test_f64toi32():
for x in [
float(i32_min()) - 1.0,
float(i32_min()),
float(i32_min()) + 1.0,
-1.5,
@ -117,7 +117,6 @@ def test_f64toi32():
1.5,
float(i32_max()) - 1.0,
float(i32_max()),
float(i32_max()) + 1.0
]:
output_int32(int32(x))
@ -138,24 +137,17 @@ def test_f64toi64():
def test_f64tou32():
for x in [
-1.5,
float(u32_min()) - 1.0,
-0.5,
float(u32_min()),
0.5,
float(u32_min()) + 1.0,
1.5,
float(u32_max()) - 1.0,
float(u32_max()),
float(u32_max()) + 1.0
]:
output_uint32(uint32(x))
def test_f64tou64():
for x in [
-1.5,
float(u64_min()) - 1.0,
-0.5,
float(u64_min()),
0.5,
float(u64_min()) + 1.0,
@ -181,4 +173,4 @@ def run() -> int32:
test_f64tou32()
test_f64tou64()
return 0
return 0