Edge case tests check boundaries such as empty values and limits.

edge case Testing a boundary value catches behavior that regular examples often miss.

Edge Case Checks

rawValue
edge_cases.ts
Replay: real traced execution (multi-file project)
function clampPercent(value: number): number {
    if (value < 0) {
        return 0;
    }
    if (value > 100) {
        return 100;
    }
    return value;
}

const rawValue: number = -5;
const clamped: number = clampPercent(rawValue);
const expected: number = rawValue < 0 ? 0 : 100;
const passed: boolean = clamped === expected;

console.log(`${rawValue}->${clamped}:${passed}`);
function clampPercent(value: number): number {
    if (value < 0) {
        return 0;
    }
    if (value > 100) {
        return 100;
    }
    return value;
}

const rawValue: number = 125;
const clamped: number = clampPercent(rawValue);
const expected: number = rawValue < 0 ? 0 : 100;
const passed: boolean = clamped === expected;

console.log(`${rawValue}->${clamped}:${passed}`);
  1. rawValue ← -5

    8    return value;9}1011const rawValue→ -5: number = -5;  //@rawValue=12512const clamped: number = clampPercent(rawValue-5);13const expected: number = rawValue < 0 ? 0 : 100;
  2. function clampPercent(value: number): number

    1function clampPercent(value-5: number): number {2    if (value < 0) {
  3. if (value < 0)

    1function clampPercent(value: number): number {2    if (value-5 < 0) {3        return 0;4    }
  4. clamped ← 0, expected ← 0, rawValue ← -5, passed ← true

    11const rawValue: number = -5;  //@rawValue=12512const clamped→ 0: number = clampPercent(rawValue-5);13const expected→ 0: number = rawValue→ -5 < 0 ? 0 : 100;14const passed→ true: boolean = clamped→ 0 === expected0;1516console.log(`${rawValue-5}->${clamped0}:${passedtrue}`);
    output-5->0:true
  1. rawValue ← 125

    8    return value;9}1011const rawValue→ 125: number = 125;12const clamped: number = clampPercent(rawValue125);13const expected: number = rawValue < 0 ? 0 : 100;
  2. function clampPercent(value: number): number

    1function clampPercent(value125: number): number {2    if (value < 0) {
  3. if (value > 100)

    3    return 0;4}5if (value125 > 100) {6    return 100;7}
  4. clamped ← 100, expected ← 100, rawValue ← 125, passed ← true

    11const rawValue: number = 125;12const clamped→ 100: number = clampPercent(rawValue125);13const expected→ 100: number = rawValue→ 125 < 0 ? 0 : 100;14const passed→ true: boolean = clamped→ 100 === expected100;1516console.log(`${rawValue125}->${clamped100}:${passedtrue}`);
    output125->100:true