Phase 222: If Condition Normalization - Part 4 (E2E Testing) New test: phase222_if_cond_left_literal_min.hako - Tests condition normalization in if-sum pattern - Loop condition: i < len (canonical form) - If condition: i > 0 (var > literal - canonical form) - Expected: RC=2 (i=1,2 counted, i=0 skipped) Test results: ✅ phase222_if_cond_left_literal_min.hako: RC=2 PASS ✅ phase212_if_sum_min.hako: RC=2 PASS (regression) ✅ loop_if_phi.hako: sum=9 PASS (complex condition → legacy mode) Status: E2E verification complete Next: Phase 222-5 - Documentation updates
46 lines
1.0 KiB
Plaintext
46 lines
1.0 KiB
Plaintext
// Phase 222: If Condition Left Literal Pattern Test
|
|
// Tests: Condition normalization (literal on left → var on left)
|
|
// Target: ConditionPatternBox normalization + if-sum pattern
|
|
//
|
|
// Pattern:
|
|
// Loop condition: 0 < i (literal < var) → normalized to i > 0
|
|
// If condition: i > 0 (var > literal) - already canonical
|
|
//
|
|
// Expected behavior:
|
|
// i=0 → skip (0 > 0 = false)
|
|
// i=1 → count (1 > 0 = true)
|
|
// i=2 → count (2 > 0 = true)
|
|
//
|
|
// Expected result: RC=2 (count of valid iterations)
|
|
|
|
static box Main {
|
|
count_valid(data) {
|
|
local sum
|
|
sum = 0
|
|
local i
|
|
i = 0
|
|
local len
|
|
len = 3
|
|
|
|
loop(i < len) {
|
|
if i > 0 {
|
|
// Conditional update: sum = sum + 1
|
|
sum = sum + 1
|
|
} else {
|
|
// Else branch (do nothing)
|
|
sum = sum + 0
|
|
}
|
|
|
|
i = i + 1
|
|
}
|
|
|
|
return sum
|
|
}
|
|
|
|
main(args) {
|
|
local result
|
|
result = Main.count_valid(0) // dummy arg
|
|
return result
|
|
}
|
|
}
|