tests/basics/int_big_to_small.py: Bifurcate test using small-int-max.

Different results are needed for different integer sizes.

Signed-off-by: Jeff Epler <jepler@unpythonic.net>
This commit is contained in:
Jeff Epler
2025-07-15 18:28:35 +01:00
committed by Damien George
parent 2d08f2f631
commit f6dcf35d5c
3 changed files with 58 additions and 0 deletions

View File

@@ -5,6 +5,17 @@ except:
print("SKIP")
raise SystemExit
# Skip this test on "REPR B" where (1<<29 + 1) is not a small int.
k = 1 << 29
micropython.heap_lock()
try:
k = k + 1
except MemoryError:
print("SKIP")
raise SystemExit
finally:
micropython.heap_unlock()
# All less than small int max.
for d in (0, 27, 1<<29, -1861, -(1<<29)):
i = 1<<70

View File

@@ -0,0 +1,22 @@
try:
import micropython
micropython.heap_lock
except:
print("SKIP")
raise SystemExit
# All less than small int max.
for d in (0, 27, 1<<28, -1861, -(1<<28)):
i = 1<<70
print(i)
j = (1<<70) + d
print(j)
# k should now be a small int.
k = j - i
print(k)
# Now verify that working with k doesn't allocate (i.e. it's a small int).
micropython.heap_lock()
print(k + 20)
print(k // 20)
micropython.heap_unlock()

View File

@@ -0,0 +1,25 @@
1180591620717411303424
1180591620717411303424
0
20
0
1180591620717411303424
1180591620717411303451
27
47
1
1180591620717411303424
1180591620717679738880
268435456
268435476
13421772
1180591620717411303424
1180591620717411301563
-1861
-1841
-94
1180591620717411303424
1180591620717142867968
-268435456
-268435436
-13421773