Heart-Attack-Risk-Rate / TEST_CASES.md
Kasilanka Bhoopesh Siva Srikar
Complete Heart Attack Risk Prediction App - Ready for Deployment
08123aa

🧪 Test Cases for Heart Attack Risk Prediction App

Test Case 1: Low Risk Patient (Healthy Individual)

Input:

  • Gender: Female (2)
  • Age: 35 years
  • Height: 165 cm
  • Weight: 60 kg
  • Systolic BP: 120 mmHg
  • Diastolic BP: 80 mmHg
  • Cholesterol: Normal (1)
  • Glucose: Normal (1)
  • Smoking: No (0)
  • Alcohol: No (0)
  • Physical Activity: Yes (1)
  • Protein Level: 14.0
  • Ejection Fraction: 60.0

Expected Output:

  • Risk Level: ✅ Low Risk
  • Risk Probability: < 10% (typically 2-8%)
  • Prediction: No Heart Disease
  • Key Risk Factors: ✅ Health Status: Healthy indicators
  • Model Breakdown:
    • XGBoost: ~5-8% risk
    • CatBoost: ~1-2% risk (most accurate for low risk)
    • LightGBM: ~20-25% risk (Note: LightGBM tends to be more conservative/risk-averse)
    • Ensemble: ~2-5% risk (weighted: 5% XGB + 85% CAT + 10% LGB)
  • Recommendation: ✅ Low Risk - Continue maintaining a healthy lifestyle!

Note: LightGBM may show higher individual risk percentages due to its training characteristics, but the ensemble weights (85% CatBoost) ensure the final prediction remains accurate.


Test Case 2: Moderate Risk Patient (Some Risk Factors)

Input:

  • Gender: Male (1)
  • Age: 55 years
  • Height: 175 cm
  • Weight: 85 kg (BMI ~27.8 - Overweight)
  • Systolic BP: 135 mmHg
  • Diastolic BP: 88 mmHg
  • Cholesterol: Above Normal (2)
  • Glucose: Normal (1)
  • Smoking: No (0)
  • Alcohol: Yes (1)
  • Physical Activity: No (0)
  • Protein Level: 6.5
  • Ejection Fraction: 55.0

Expected Output:

  • Risk Level: ⚠️ Moderate Risk
  • Risk Probability: 30-50% (typically 35-45%)
  • Prediction: May indicate risk
  • Key Risk Factors: ⚠️ High BP, High cholesterol, Alcohol consumption, Physical inactivity
  • Model Breakdown:
    • XGBoost: ~35-45% risk
    • CatBoost: ~35-45% risk
    • LightGBM: ~35-45% risk
    • Ensemble: ~35-45% risk
  • Recommendation: ⚠️ Moderate Risk - Consider consulting a healthcare professional.

Test Case 3: High Risk Patient (Multiple Risk Factors)

Input:

  • Gender: Male (1)
  • Age: 65 years
  • Height: 170 cm
  • Weight: 95 kg (BMI ~32.9 - Obese)
  • Systolic BP: 150 mmHg
  • Diastolic BP: 100 mmHg
  • Cholesterol: Well Above Normal (3)
  • Glucose: Well Above Normal (3)
  • Smoking: Yes (1)
  • Alcohol: Yes (1)
  • Physical Activity: No (0)
  • Protein Level: 6.0
  • Ejection Fraction: 45.0

Expected Output:

  • Risk Level: 🚨 Very High Risk
  • Risk Probability: > 70% (typically 75-90%)
  • Prediction: Heart Disease Detected
  • Key Risk Factors: ⚠️ High BMI (>30), High BP, High cholesterol, High glucose, Smoking, Alcohol consumption, Physical inactivity
  • Model Breakdown:
    • XGBoost: ~75-90% risk
    • CatBoost: ~75-90% risk
    • LightGBM: ~75-90% risk
    • Ensemble: ~75-90% risk
  • Recommendation: ⚠️ High Risk Detected! Please consult with a healthcare professional immediately.

Test Case 4: Borderline Case (Age Factor)

Input:

  • Gender: Female (2)
  • Age: 50 years
  • Height: 160 cm
  • Weight: 70 kg (BMI ~27.3 - Overweight)
  • Systolic BP: 130 mmHg
  • Diastolic BP: 85 mmHg
  • Cholesterol: Above Normal (2)
  • Glucose: Normal (1)
  • Smoking: No (0)
  • Alcohol: No (0)
  • Physical Activity: Yes (1)
  • Protein Level: 7.0
  • Ejection Fraction: 58.0

Expected Output:

  • Risk Level: ⚠️ Moderate Risk
  • Risk Probability: 20-40% (typically 25-35%)
  • Prediction: May indicate risk
  • Key Risk Factors: ⚠️ High BMI (>30), High BP, High cholesterol
  • Model Breakdown:
    • XGBoost: ~25-35% risk
    • CatBoost: ~25-35% risk
    • LightGBM: ~25-35% risk
    • Ensemble: ~25-35% risk
  • Recommendation: ⚠️ Moderate Risk - Consider consulting a healthcare professional.

Test Case 5: Young Patient with Lifestyle Risks

Input:

  • Gender: Male (1)
  • Age: 28 years
  • Height: 180 cm
  • Weight: 75 kg (BMI ~23.1 - Normal)
  • Systolic BP: 125 mmHg
  • Diastolic BP: 82 mmHg
  • Cholesterol: Normal (1)
  • Glucose: Normal (1)
  • Smoking: Yes (1)
  • Alcohol: Yes (1)
  • Physical Activity: No (0)
  • Protein Level: 14.5
  • Ejection Fraction: 62.0

Expected Output:

  • Risk Level: ⚠️ Moderate Risk
  • Risk Probability: 15-30% (typically 20-28%)
  • Prediction: May indicate risk
  • Key Risk Factors: ⚠️ Smoking, Alcohol consumption, Physical inactivity
  • Model Breakdown:
    • XGBoost: ~20-28% risk
    • CatBoost: ~20-28% risk
    • LightGBM: ~20-28% risk
    • Ensemble: ~20-28% risk
  • Recommendation: ⚠️ Moderate Risk - Consider consulting a healthcare professional.

Test Case 6: Elderly Patient with Good Health

Input:

  • Gender: Female (2)
  • Age: 70 years
  • Height: 155 cm
  • Weight: 58 kg (BMI ~24.1 - Normal)
  • Systolic BP: 125 mmHg
  • Diastolic BP: 78 mmHg
  • Cholesterol: Normal (1)
  • Glucose: Normal (1)
  • Smoking: No (0)
  • Alcohol: No (0)
  • Physical Activity: Yes (1)
  • Protein Level: 13.5
  • Ejection Fraction: 58.0

Expected Output:

  • Risk Level: ✅ Low to Moderate Risk
  • Risk Probability: 10-25% (typically 15-22%)
  • Prediction: No Heart Disease (or low risk)
  • Key Risk Factors: ✅ Health Status: Healthy indicators (or minimal risk factors)
  • Model Breakdown:
    • XGBoost: ~15-22% risk
    • CatBoost: ~15-22% risk
    • LightGBM: ~15-22% risk
    • Ensemble: ~15-22% risk
  • Recommendation: ✅ Low Risk - Continue maintaining a healthy lifestyle! (or Moderate Risk warning)

Test Case 7: Extreme High Risk (All Risk Factors)

Input:

  • Gender: Male (1)
  • Age: 60 years
  • Height: 168 cm
  • Weight: 100 kg (BMI ~35.4 - Obese)
  • Systolic BP: 160 mmHg
  • Diastolic BP: 105 mmHg
  • Cholesterol: Well Above Normal (3)
  • Glucose: Well Above Normal (3)
  • Smoking: Yes (1)
  • Alcohol: Yes (1)
  • Physical Activity: No (0)
  • Protein Level: 5.5
  • Ejection Fraction: 40.0

Expected Output:

  • Risk Level: 🚨 Very High Risk
  • Risk Probability: > 85% (typically 88-95%)
  • Prediction: Heart Disease Detected
  • Key Risk Factors: ⚠️ High BMI (>30), High BP, High cholesterol, High glucose, Smoking, Alcohol consumption, Physical inactivity
  • Model Breakdown:
    • XGBoost: ~88-95% risk
    • CatBoost: ~88-95% risk
    • LightGBM: ~88-95% risk
    • Ensemble: ~88-95% risk
  • Recommendation: ⚠️ High Risk Detected! Please consult with a healthcare professional immediately.

Test Case 8: Only Physical Inactivity

Input:

  • Gender: Female (2)
  • Age: 40 years
  • Height: 165 cm
  • Weight: 65 kg (BMI ~23.9 - Normal)
  • Systolic BP: 118 mmHg
  • Diastolic BP: 75 mmHg
  • Cholesterol: Normal (1)
  • Glucose: Normal (1)
  • Smoking: No (0)
  • Alcohol: No (0)
  • Physical Activity: No (0)
  • Protein Level: 14.0
  • Ejection Fraction: 60.0

Expected Output:

  • Risk Level: ✅ Low Risk
  • Risk Probability: < 15% (typically 5-12%)
  • Prediction: No Heart Disease
  • Key Risk Factors: ℹ️ Lifestyle Note: Physical inactivity - Consider adding regular physical activity to reduce risk.
  • Model Breakdown:
    • XGBoost: ~5-12% risk
    • CatBoost: ~5-12% risk
    • LightGBM: ~5-12% risk
    • Ensemble: ~5-12% risk
  • Recommendation: ✅ Low Risk - Continue maintaining a healthy lifestyle!

✅ Verification Checklist

UI Elements to Verify:

  • Page title displays correctly: "Predicting Heart Attack Risk: An Ensemble Modeling Approach"
  • Subtitle includes: "XGBoost, CatBoost, and LightGBM"
  • Sidebar shows optimized ensemble weights (XGB: 5%, CAT: 85%, LGB: 10%)
  • Sidebar displays Accuracy: 80.77% and Recall: 93.27%
  • All input fields are present and functional
  • Prediction button works correctly
  • Results display with proper formatting

Model Display to Verify:

  • All 4 models displayed horizontally: XGBoost, CatBoost, LightGBM, Ensemble
  • Each model shows progress bar with percentage inside
  • Risk percentage displayed below each bar
  • Color coding: Green (low), Orange (moderate), Red (high)
  • Ensemble metrics section shows Accuracy and Recall

Prediction Results to Verify:

  • Risk probability displayed correctly
  • Risk level matches probability range
  • Key risk factors identified correctly
  • Recommendations match risk level
  • Model breakdown shows all 4 models
  • Ensemble method info displayed

Error Handling:

  • App handles missing models gracefully
  • Invalid inputs show appropriate warnings
  • Error messages are user-friendly

📊 Expected Ensemble Metrics (Sidebar)

  • Accuracy: 80.77%
  • Recall: 93.27%
  • Ensemble Weights: XGBoost: 5.0%, CatBoost: 85.0%, LightGBM: 10.0%

🎯 Quick Test Scenarios

  1. Minimum Input Test: Use default values, click predict → Should show low risk
  2. Maximum Risk Test: Set all risk factors to maximum → Should show very high risk
  3. Edge Case Test: Age 20, all normal → Should show very low risk
  4. Edge Case Test: Age 100, all normal → Should show moderate risk due to age
  5. Single Risk Factor: Only smoking → Should show moderate risk
  6. Physical Inactivity Only: Only inactive, all else normal → Should show info message (not warning)

📝 Notes

  • Actual risk percentages may vary slightly (±2-3%) due to model variations
  • The ensemble uses weighted average: 5% XGBoost + 85% CatBoost + 10% LightGBM
  • Important: LightGBM may show higher individual risk percentages (15-25% for low-risk cases) due to its training characteristics. This is expected behavior and does not affect the final ensemble prediction, which is heavily weighted toward CatBoost (85%).
  • The final ensemble prediction is the weighted average of all three models, so even if LightGBM shows higher values, the ensemble result remains accurate.
  • For low-risk patients: CatBoost typically shows the most accurate low values (~1-2%), while LightGBM may show 20-25%. The ensemble (weighted) will be closer to CatBoost's prediction.