Count visible incidents and high-severity incidents from a small queue.

incident-queue-report Counting with a bounded loop makes the threshold and visible queue size explicit.

Incident Queue Reliability Report

min_severity
incident_queue_reliability_report.rb
Replay: real traced execution (multi-file project)
min_severity = 2
severities = [1, 2, 3, 3]
visible = 0
high = 0

severities.each do |severity|
  if severity >= min_severity
    visible += 1
  end

  if severity >= 3
    high += 1
  end
end

puts "min=#{min_severity}"
puts "visible=#{visible}"
puts "high=#{high}"
min_severity = 1
severities = [1, 2, 3, 3]
visible = 0
high = 0

severities.each do |severity|
  if severity >= min_severity
    visible += 1
  end

  if severity >= 3
    high += 1
  end
end

puts "min=#{min_severity}"
puts "visible=#{visible}"
puts "high=#{high}"
min_severity = 3
severities = [1, 2, 3, 3]
visible = 0
high = 0

severities.each do |severity|
  if severity >= min_severity
    visible += 1
  end

  if severity >= 3
    high += 1
  end
end

puts "min=#{min_severity}"
puts "visible=#{visible}"
puts "high=#{high}"
  1. min_severity ← 2, severities ← [1, 2, 3, 3], visible ← 0, high ← 0

    1min_severity→ 2 = 2 #@min_severity=1, 32severities→ [1, 2, 3, 3] = [1, 2, 3, 3]3visible→ 0 = 04high→ 0 = 056severities[1, 2, 3, 3].each do |severity|7  if severity >= min_severity8    visible += 19  end1011  if severity >= 312    high += 113  end14end
  2. do |severity|

    pass 1 of 4
    6severities.each do |severity1|7  if severity >= min_severity8    visible += 1
    All 4 passes — pass 1 is the card above
    passseverityseveritieshigh
    11
    22
    330 1
    43[1, 2, 3, 3]1 2
  3. visible ← 1

    pass 1 of 3
    6severities.each do |severity|7  if severity2 >= min_severity28    visible→ 1 += 19  end
    All 3 passes — pass 1 is the card above
    passseverityseveritiesvisiblehigh
    120 1
    231 20 1
    33[1, 2, 3, 3]2 31 2
  4. high ← 1

    pass 1 of 2
    11if severity3 >= 312  high→ 1 += 113end
  5. high ← 2

    pass 2 of 2
    6severities[1, 2, 3, 3].each do |severity|7  if severity >= min_severity8    visible += 19  end1011  if severity3 >= 312    high→ 2 += 113  end14end
  6. puts "min=#{min_severity}"

    16puts "min=#{min_severity2}"17puts "visible=#{visible3}"18puts "high=#{high2}"
    outputmin=2
    visible=3
    high=2
  1. min_severity ← 1, severities ← [1, 2, 3, 3], visible ← 0, high ← 0

    1min_severity→ 1 = 12severities→ [1, 2, 3, 3] = [1, 2, 3, 3]3visible→ 0 = 04high→ 0 = 056severities[1, 2, 3, 3].each do |severity|7  if severity >= min_severity8    visible += 19  end1011  if severity >= 312    high += 113  end14end
  2. do |severity|

    pass 1 of 4
    6severities.each do |severity1|7  if severity >= min_severity8    visible += 1
    All 4 passes — pass 1 is the card above
    passseverityseveritieshigh
    11
    22
    330 1
    43[1, 2, 3, 3]1 2
  3. visible ← 1

    pass 1 of 4
    6severities.each do |severity|7  if severity1 >= min_severity18    visible→ 1 += 19  end
    All 4 passes — pass 1 is the card above
    passseverityseveritiesvisiblehigh
    110 1
    221 2
    332 30 1
    43[1, 2, 3, 3]3 41 2
  4. high ← 1

    pass 1 of 2
    11if severity3 >= 312  high→ 1 += 113end
  5. high ← 2

    pass 2 of 2
    6severities[1, 2, 3, 3].each do |severity|7  if severity >= min_severity8    visible += 19  end1011  if severity3 >= 312    high→ 2 += 113  end14end
  6. puts "min=#{min_severity}"

    16puts "min=#{min_severity1}"17puts "visible=#{visible4}"18puts "high=#{high2}"
    outputmin=1
    visible=4
    high=2
  1. min_severity ← 3, severities ← [1, 2, 3, 3], visible ← 0, high ← 0

    1min_severity→ 3 = 32severities→ [1, 2, 3, 3] = [1, 2, 3, 3]3visible→ 0 = 04high→ 0 = 056severities[1, 2, 3, 3].each do |severity|7  if severity >= min_severity8    visible += 19  end1011  if severity >= 312    high += 113  end14end
  2. do |severity|

    pass 1 of 4
    6severities.each do |severity1|7  if severity >= min_severity8    visible += 1
    All 4 passes — pass 1 is the card above
    passseveritymin_severityseveritiesvisiblehigh
    11
    22
    3330 10 1
    433[1, 2, 3, 3]1 21 2
  3. visible ← 1

    pass 1 of 2
    6severities.each do |severity|7  if severity3 >= min_severity38    visible→ 1 += 19  end
  4. high ← 1

    pass 1 of 2
    11if severity3 >= 312  high→ 1 += 113end
  5. visible ← 2

    pass 2 of 2
    6severities.each do |severity|7  if severity3 >= min_severity38    visible→ 2 += 19  end
  6. high ← 2

    pass 2 of 2
    6severities[1, 2, 3, 3].each do |severity|7  if severity >= min_severity8    visible += 19  end1011  if severity3 >= 312    high→ 2 += 113  end14end
  7. puts "min=#{min_severity}"

    16puts "min=#{min_severity3}"17puts "visible=#{visible2}"18puts "high=#{high2}"
    outputmin=3
    visible=2
    high=2