fix failure rates calculation in history view
Browse files- time_series_gradio.py +39 -10
time_series_gradio.py
CHANGED
|
@@ -152,17 +152,46 @@ def create_time_series_summary_gradio(historical_df: pd.DataFrame) -> dict:
|
|
| 152 |
for date in dates:
|
| 153 |
date_data = historical_df[historical_df['date'] == date]
|
| 154 |
|
| 155 |
-
|
| 156 |
-
|
| 157 |
-
|
| 158 |
-
|
| 159 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 160 |
|
| 161 |
-
|
| 162 |
-
|
| 163 |
-
|
| 164 |
-
|
| 165 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 166 |
|
| 167 |
daily_stats.append({
|
| 168 |
'date': date,
|
|
|
|
| 152 |
for date in dates:
|
| 153 |
date_data = historical_df[historical_df['date'] == date]
|
| 154 |
|
| 155 |
+
# Calculate failure rates using the same logic as summary_page.py
|
| 156 |
+
# This includes ERROR tests in failures and excludes SKIPPED from total
|
| 157 |
+
total_amd_tests = 0
|
| 158 |
+
total_amd_failures = 0
|
| 159 |
+
total_nvidia_tests = 0
|
| 160 |
+
total_nvidia_failures = 0
|
| 161 |
+
amd_passed = 0
|
| 162 |
+
amd_failed = 0
|
| 163 |
+
amd_skipped = 0
|
| 164 |
+
nvidia_passed = 0
|
| 165 |
+
nvidia_failed = 0
|
| 166 |
+
nvidia_skipped = 0
|
| 167 |
|
| 168 |
+
for _, row in date_data.iterrows():
|
| 169 |
+
amd_stats, nvidia_stats = extract_model_data(row)[:2]
|
| 170 |
+
|
| 171 |
+
# AMD (matching summary_page.py logic: failed + error, excluding skipped)
|
| 172 |
+
amd_total = amd_stats['passed'] + amd_stats['failed'] + amd_stats['error']
|
| 173 |
+
if amd_total > 0:
|
| 174 |
+
total_amd_tests += amd_total
|
| 175 |
+
total_amd_failures += amd_stats['failed'] + amd_stats['error']
|
| 176 |
+
|
| 177 |
+
# For test counts graphs (these still use the old logic with skipped)
|
| 178 |
+
amd_passed += amd_stats['passed']
|
| 179 |
+
amd_failed += amd_stats['failed'] + amd_stats['error']
|
| 180 |
+
amd_skipped += amd_stats['skipped']
|
| 181 |
+
|
| 182 |
+
# NVIDIA (matching summary_page.py logic: failed + error, excluding skipped)
|
| 183 |
+
nvidia_total = nvidia_stats['passed'] + nvidia_stats['failed'] + nvidia_stats['error']
|
| 184 |
+
if nvidia_total > 0:
|
| 185 |
+
total_nvidia_tests += nvidia_total
|
| 186 |
+
total_nvidia_failures += nvidia_stats['failed'] + nvidia_stats['error']
|
| 187 |
+
|
| 188 |
+
# For test counts graphs (these still use the old logic with skipped)
|
| 189 |
+
nvidia_passed += nvidia_stats['passed']
|
| 190 |
+
nvidia_failed += nvidia_stats['failed'] + nvidia_stats['error']
|
| 191 |
+
nvidia_skipped += nvidia_stats['skipped']
|
| 192 |
+
|
| 193 |
+
amd_failure_rate = (total_amd_failures / total_amd_tests * 100) if total_amd_tests > 0 else 0
|
| 194 |
+
nvidia_failure_rate = (total_nvidia_failures / total_nvidia_tests * 100) if total_nvidia_tests > 0 else 0
|
| 195 |
|
| 196 |
daily_stats.append({
|
| 197 |
'date': date,
|