[
  {
    "case": "independent_three_leg_portfolio",
    "input": {
      "bankroll": 1000,
      "mode": "independent",
      "fractionalKelly": 0.25,
      "exposureCapPercent": 10,
      "legs": [
        {"label": "Team A", "odds": "+150", "probabilityPercent": 45},
        {"label": "Team B", "odds": "-110", "probabilityPercent": 55},
        {"label": "Total Over", "odds": "2.05", "probabilityPercent": 52}
      ],
      "correlationAcknowledged": true
    },
    "expected": {
      "rowsAccepted": 3,
      "modeWarning": "verify correlation",
      "capAppliedWhenRawExposureExceedsCap": true
    }
  },
  {
    "case": "exposure_cap_scaling",
    "input": {
      "bankroll": 1000,
      "mode": "independent",
      "fractionalKelly": 1,
      "exposureCapPercent": 5,
      "legs": [
        {"label": "High edge 1", "odds": "+200", "probabilityPercent": 45},
        {"label": "High edge 2", "odds": "+180", "probabilityPercent": 44}
      ],
      "correlationAcknowledged": true
    },
    "expected": {
      "maxTotalCappedStake": 50,
      "scaleFactorBelowOne": true
    }
  },
  {
    "case": "mutually_exclusive_probability_over_100",
    "input": {
      "bankroll": 1000,
      "mode": "mutually_exclusive",
      "fractionalKelly": 0.25,
      "exposureCapPercent": 10,
      "legs": [
        {"label": "Outcome A", "odds": "+150", "probabilityPercent": 55},
        {"label": "Outcome B", "odds": "+150", "probabilityPercent": 55}
      ],
      "correlationAcknowledged": true
    },
    "expected": {
      "warning": "Mutually exclusive probabilities exceed 100%"
    }
  },
  {
    "case": "missing_correlation_acknowledgement",
    "input": {
      "bankroll": 1000,
      "mode": "independent",
      "fractionalKelly": 0.25,
      "exposureCapPercent": 10,
      "legs": [
        {"label": "Leg 1", "odds": "+120", "probabilityPercent": 50},
        {"label": "Leg 2", "odds": "+140", "probabilityPercent": 48}
      ],
      "correlationAcknowledged": false
    },
    "expected": {
      "warning": "Correlation acknowledgement missing."
    }
  },
  {
    "case": "invalid_row_count",
    "input": {
      "bankroll": 1000,
      "rows": 1
    },
    "expected": {
      "error": "Enter between 2 and 15 rows."
    }
  }
]
