test "test_loop_edge_cases" { println "Testing loop edge cases..."; // Empty range (0..0 should not iterate) let count1 = 0; for i in 0..0 { count1++; } if (count1 == 0) { println " -> Empty range (0..0): Passed"; } else { println " -> Empty range (0..0): Failed"; exit(1); } // Single iteration range (0..1) let count2 = 0; for i in 0..1 { count2++; } if (count2 == 1) { println " -> Single iteration (0..1): Passed"; } else { println " -> Single iteration (0..1): Failed"; exit(1); } // Repeat 0 times (should not execute) let count3 = 0; repeat 0 { count3++; } if (count3 == 0) { println " -> Repeat 0 times: Passed"; } else { println " -> Repeat 0 times: Failed"; exit(1); } // Repeat 1 time let count4 = 0; repeat 1 { count4++; } if (count4 == 1) { println " -> Repeat 1 time: Passed"; } else { println " -> Repeat 1 time: Failed"; exit(1); } // Nested loops let total = 0; for i in 0..3 { for j in 0..2 { total = total + 1; } } if (total == 6) { println " -> Nested for-in loops: Passed"; } else { println " -> Nested for-in loops: Failed"; exit(1); } // Break in nested loop let outer_count = 0; for i in 0..3 { outer_count = outer_count + 1; let inner_done = 0; loop { inner_done = inner_done + 1; if (inner_done >= 2) { break; } } } if (outer_count == 3) { println " -> Nested loop with break: Passed"; } else { println " -> Nested loop with break: Failed"; exit(1); } // Large step value let count7 = 0; for i in 0..100 step 25 { count7++; } if (count7 == 4) { println " -> Large step value (step 25): Passed"; } else { println " -> Large step value: Failed"; exit(1); } println "All loop edge cases passed!"; }