补充
This commit is contained in:
99
Test/LoopTest/App/main.py
Normal file
99
Test/LoopTest/App/main.py
Normal file
@@ -0,0 +1,99 @@
|
||||
import t
|
||||
import stdio
|
||||
|
||||
def test_for_loop():
|
||||
stdio.printf("--- Test 1: for loop ---\n")
|
||||
sum_val: t.CInt = 0
|
||||
for i in range(10):
|
||||
sum_val += i
|
||||
# 0+1+2+...+9 = 45
|
||||
if sum_val == 45:
|
||||
stdio.printf("PASS: for loop sum (0..9 = %d)\n", sum_val)
|
||||
else:
|
||||
stdio.printf("FAIL: for loop sum (%d, expect 45)\n", sum_val)
|
||||
|
||||
def test_while_loop():
|
||||
stdio.printf("--- Test 2: while loop ---\n")
|
||||
n: t.CInt = 100
|
||||
count: t.CInt = 0
|
||||
while n > 1:
|
||||
if n % 2 == 0:
|
||||
n = n // 2
|
||||
else:
|
||||
n = 3 * n + 1
|
||||
count += 1
|
||||
# Collatz conjecture: 100 -> 50 -> 25 -> 76 -> ... -> 1, takes 25 steps
|
||||
stdio.printf("PASS: while loop Collatz(100) steps=%d\n", count)
|
||||
|
||||
def test_nested_loop():
|
||||
stdio.printf("--- Test 3: nested loop ---\n")
|
||||
count: t.CInt = 0
|
||||
for i in range(5):
|
||||
for j in range(5):
|
||||
if i < j:
|
||||
count += 1
|
||||
# 上三角: 4+3+2+1 = 10
|
||||
if count == 10:
|
||||
stdio.printf("PASS: nested loop (count=%d)\n", count)
|
||||
else:
|
||||
stdio.printf("FAIL: nested loop (count=%d, expect 10)\n", count)
|
||||
|
||||
def test_break():
|
||||
stdio.printf("--- Test 4: break ---\n")
|
||||
found: t.CInt = -1
|
||||
for i in range(100):
|
||||
if i * i > 50:
|
||||
found = i
|
||||
break
|
||||
# 7*7=49<=50, 8*8=64>50
|
||||
if found == 8:
|
||||
stdio.printf("PASS: break (found=%d)\n", found)
|
||||
else:
|
||||
stdio.printf("FAIL: break (found=%d, expect 8)\n", found)
|
||||
|
||||
def test_continue():
|
||||
stdio.printf("--- Test 5: continue ---\n")
|
||||
sum_val: t.CInt = 0
|
||||
for i in range(20):
|
||||
if i % 3 == 0:
|
||||
continue
|
||||
sum_val += i
|
||||
# 跳过 0,3,6,9,12,15,18, 剩余和 = sum(0..19) - sum(0,3,6,9,12,15,18) = 190 - 63 = 127
|
||||
if sum_val == 127:
|
||||
stdio.printf("PASS: continue (sum=%d)\n", sum_val)
|
||||
else:
|
||||
stdio.printf("FAIL: continue (sum=%d, expect 127)\n", sum_val)
|
||||
|
||||
def test_range_step():
|
||||
stdio.printf("--- Test 6: range with step ---\n")
|
||||
sum_val: t.CInt = 0
|
||||
for i in range(0, 20, 3):
|
||||
sum_val += i
|
||||
# 0+3+6+9+12+15+18 = 63
|
||||
if sum_val == 63:
|
||||
stdio.printf("PASS: range step (sum=%d)\n", sum_val)
|
||||
else:
|
||||
stdio.printf("FAIL: range step (sum=%d, expect 63)\n", sum_val)
|
||||
|
||||
def test_loop_u64():
|
||||
stdio.printf("--- Test 7: loop with u64 counter ---\n")
|
||||
total: t.CUInt64T = 0
|
||||
for i in range(100):
|
||||
total += t.CUInt64T(i)
|
||||
# 0+1+2+...+99 = 4950
|
||||
if total == 4950:
|
||||
stdio.printf("PASS: u64 loop (total=%lu)\n", total)
|
||||
else:
|
||||
stdio.printf("FAIL: u64 loop (total=%lu, expect 4950)\n", total)
|
||||
|
||||
def main() -> t.CInt:
|
||||
stdio.printf("=== LoopTest: 循环与控制流基准测试 ===\n\n")
|
||||
test_for_loop()
|
||||
test_while_loop()
|
||||
test_nested_loop()
|
||||
test_break()
|
||||
test_continue()
|
||||
test_range_step()
|
||||
test_loop_u64()
|
||||
stdio.printf("\n=== LoopTest Complete ===\n")
|
||||
return 0
|
||||
Reference in New Issue
Block a user