Normalize small input labels before counting useful records.

normalization Pipeline code often trims or lowers values before comparing them.
counting The final count stays scalar so replay can show the pipeline result clearly.

Normalize Input

min_length
normalize_input.lua
Replay: real traced execution (multi-file project)
local min_length = 4
local kept = 0
local labels = ""

for _, raw in ipairs({"  Ada  ", "Lua", "Trace"}) do
  local name = raw:lower():gsub("^%s+", ""):gsub("%s+$", "")
  if #name >= min_length then
    kept = kept + 1
    labels = labels .. name .. ";"
  end
end

print("min_length=" .. min_length)
print("kept=" .. kept)
print("labels=" .. labels)
local min_length = 3
local kept = 0
local labels = ""

for _, raw in ipairs({"  Ada  ", "Lua", "Trace"}) do
  local name = raw:lower():gsub("^%s+", ""):gsub("%s+$", "")
  if #name >= min_length then
    kept = kept + 1
    labels = labels .. name .. ";"
  end
end

print("min_length=" .. min_length)
print("kept=" .. kept)
print("labels=" .. labels)
local min_length = 5
local kept = 0
local labels = ""

for _, raw in ipairs({"  Ada  ", "Lua", "Trace"}) do
  local name = raw:lower():gsub("^%s+", ""):gsub("%s+$", "")
  if #name >= min_length then
    kept = kept + 1
    labels = labels .. name .. ";"
  end
end

print("min_length=" .. min_length)
print("kept=" .. kept)
print("labels=" .. labels)
  1. min_length ← 4, kept ← 0, labels ← (empty)

    1local min_length→ 4 = 4 --@min_length=3, 52local kept→ 0 = 03local labels→ (empty) = ""
  2. name ← ada

    pass 1 of 3
    5for _1, raw  Ada   in ipairs({"  Ada  ", "Lua", "Trace"}) do6  local name→ ada = raw  Ada  :lower():gsub("^%s+", ""):gsub("%s+$", "")7  if #name >= min_length then
    All 3 passes — pass 1 is the card above
    pass_rawmin_lengthnamekeptlabels
    11 Ada ada
    22Lualua
    33Trace4trace0 1(empty) trace;
  3. kept ← 1, labels ← trace;

    6local name = raw:lower():gsub("^%s+", ""):gsub("%s+$", "")7if #nametrace >= min_length4 then8  kept→ 1 = kept + 19  labels→ trace; = labels .. nametrace .. ";"10end
  4. print("min_length=" .. min_length)

    13print("min_length=" .. min_length4)14print("kept=" .. kept1)15print("labels=" .. labelstrace;)
    outputmin_length=4
    kept=1
    labels=trace;
  1. min_length ← 3, kept ← 0, labels ← (empty)

    1local min_length→ 3 = 32local kept→ 0 = 03local labels→ (empty) = ""
  2. name ← ada

    pass 1 of 3
    5for _1, raw  Ada   in ipairs({"  Ada  ", "Lua", "Trace"}) do6  local name→ ada = raw  Ada  :lower():gsub("^%s+", ""):gsub("%s+$", "")7  if #name >= min_length then
    All 3 passes — pass 1 is the card above
    pass_rawname
    11 Ada ada
    22Lualua
    33Tracetrace
  3. kept ← 1, labels ← ada;

    pass 1 of 3
    6local name = raw:lower():gsub("^%s+", ""):gsub("%s+$", "")7if #nameada >= min_length3 then8  kept→ 1 = kept + 19  labels→ ada; = labels .. nameada .. ";"10end
    All 3 passes — pass 1 is the card above
    passnamekeptlabels
    1ada0 1(empty) ada;
    2lua1 2ada; ada;lua;
    3trace2 3ada;lua; ada;lua;trace;
  4. print("min_length=" .. min_length)

    13print("min_length=" .. min_length3)14print("kept=" .. kept3)15print("labels=" .. labelsada;lua;trace;)
    outputmin_length=3
    kept=3
    labels=ada;lua;trace;
  1. min_length ← 5, kept ← 0, labels ← (empty)

    1local min_length→ 5 = 52local kept→ 0 = 03local labels→ (empty) = ""
  2. name ← ada

    pass 1 of 3
    5for _1, raw  Ada   in ipairs({"  Ada  ", "Lua", "Trace"}) do6  local name→ ada = raw  Ada  :lower():gsub("^%s+", ""):gsub("%s+$", "")7  if #name >= min_length then
    All 3 passes — pass 1 is the card above
    pass_rawmin_lengthnamekeptlabels
    11 Ada ada
    22Lualua
    33Trace5trace0 1(empty) trace;
  3. kept ← 1, labels ← trace;

    6local name = raw:lower():gsub("^%s+", ""):gsub("%s+$", "")7if #nametrace >= min_length5 then8  kept→ 1 = kept + 19  labels→ trace; = labels .. nametrace .. ";"10end
  4. print("min_length=" .. min_length)

    13print("min_length=" .. min_length5)14print("kept=" .. kept1)15print("labels=" .. labelstrace;)
    outputmin_length=5
    kept=1
    labels=trace;