Classify remaining reserve from fixed capacity and selected demand.

Capacity Reserve Reliability Report

demand
capacity_reserve_reliability_report.swift
Replay: real traced execution (multi-file project)
let demand = 72
let capacity = 100
let reserve = capacity - demand
let status: String

if reserve >= 20 {
    status = "stable"
} else if reserve >= 10 {
    status = "watch"
} else {
    status = "tight"
}

let line = "demand=\(demand) reserve=\(reserve) status=\(status)"

print(line)
let demand = 88
let capacity = 100
let reserve = capacity - demand
let status: String

if reserve >= 20 {
    status = "stable"
} else if reserve >= 10 {
    status = "watch"
} else {
    status = "tight"
}

let line = "demand=\(demand) reserve=\(reserve) status=\(status)"

print(line)
let demand = 95
let capacity = 100
let reserve = capacity - demand
let status: String

if reserve >= 20 {
    status = "stable"
} else if reserve >= 10 {
    status = "watch"
} else {
    status = "tight"
}

let line = "demand=\(demand) reserve=\(reserve) status=\(status)"

print(line)
  1. demand ← 72, capacity ← 100, reserve ← 28

    1let demand→ 72 = 72  //@demand=88, 952let capacity→ 100 = 1003let reserve→ 28 = capacity100 - demand724let status: String
  2. if reserve >= 20

    6if reserve28 >= 20 {7    status = "stable"8} else if reserve >= 10 {
  3. line ← demand=72 reserve=28 status=stable

    14let line→ demand=72 reserve=28 status=stable = "demand=\(demand72) reserve=\(reserve28) status=\(statusstable)"1516print(linedemand=72 reserve=28 status=stable)
    outputdemand=72 reserve=28 status=stable
  1. demand ← 88, capacity ← 100, reserve ← 12

    1let demand→ 88 = 882let capacity→ 100 = 1003let reserve→ 12 = capacity100 - demand884let status: String
  2. if reserve >= 10

    7    status = "stable"8} else if reserve12 >= 10 {9    status = "watch"10} else {
  3. line ← demand=88 reserve=12 status=watch

    14let line→ demand=88 reserve=12 status=watch = "demand=\(demand88) reserve=\(reserve12) status=\(statuswatch)"1516print(linedemand=88 reserve=12 status=watch)
    outputdemand=88 reserve=12 status=watch
  1. demand ← 95, capacity ← 100, reserve ← 5

    1let demand→ 95 = 952let capacity→ 100 = 1003let reserve→ 5 = capacity100 - demand954let status: String
  2. line ← demand=95 reserve=5 status=tight

    14let line→ demand=95 reserve=5 status=tight = "demand=\(demand95) reserve=\(reserve5) status=\(statustight)"1516print(linedemand=95 reserve=5 status=tight)
    outputdemand=95 reserve=5 status=tight
reserve label Capacity reports are easier to read when raw demand is paired with remaining reserve and a stable, watch, or tight label.