ror HF Staff commited on
Commit
7830bba
·
1 Parent(s): a4f344a

Added counts to the summary legend

Browse files
Files changed (1) hide show
  1. summary_page.py +41 -25
summary_page.py CHANGED
@@ -38,15 +38,17 @@ LABEL_OFFSET = 1 # Distance of label from bar
38
  FAILURE_RATE_FONT_SIZE = 28
39
 
40
 
41
- def calculate_overall_failure_rates(df: pd.DataFrame, available_models: list[str]) -> tuple[float, float]:
42
  """Calculate overall failure rates for AMD and NVIDIA across all models."""
43
  if df.empty or not available_models:
44
  return 0.0, 0.0
45
 
46
- total_amd_tests = 0
47
- total_amd_failures = 0
48
- total_nvidia_tests = 0
49
- total_nvidia_failures = 0
 
 
50
 
51
  for model_name in available_models:
52
  if model_name not in df.index:
@@ -56,21 +58,16 @@ def calculate_overall_failure_rates(df: pd.DataFrame, available_models: list[str
56
  amd_stats, nvidia_stats = extract_model_data(row)[:2]
57
 
58
  # AMD totals
59
- amd_total = amd_stats['passed'] + amd_stats['failed'] + amd_stats['error']
60
- if amd_total > 0:
61
- total_amd_tests += amd_total
62
- total_amd_failures += amd_stats['failed'] + amd_stats['error']
63
-
64
  # NVIDIA totals
65
- nvidia_total = nvidia_stats['passed'] + nvidia_stats['failed'] + nvidia_stats['error']
66
- if nvidia_total > 0:
67
- total_nvidia_tests += nvidia_total
68
- total_nvidia_failures += nvidia_stats['failed'] + nvidia_stats['error']
69
-
70
- amd_failure_rate = (total_amd_failures / total_amd_tests * 100) if total_amd_tests > 0 else 0.0
71
- nvidia_failure_rate = (total_nvidia_failures / total_nvidia_tests * 100) if total_nvidia_tests > 0 else 0.0
72
 
73
- return amd_failure_rate, nvidia_failure_rate
74
 
75
 
76
  def draw_text_and_bar(
@@ -118,7 +115,12 @@ def create_summary_page(df: pd.DataFrame, available_models: list[str]) -> plt.Fi
118
  return fig
119
 
120
  # Calculate overall failure rates
121
- amd_failure_rate, nvidia_failure_rate = calculate_overall_failure_rates(df, available_models)
 
 
 
 
 
122
 
123
  # Calculate dimensions for N-column layout
124
  model_count = len(available_models)
@@ -181,6 +183,26 @@ def create_summary_page(df: pd.DataFrame, available_models: list[str]) -> plt.Fi
181
  visible_model_count += 1
182
 
183
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
184
  # Add legend horizontally in bottom right corner
185
  patch_height = 0.3
186
  patch_width = 3
@@ -190,12 +212,6 @@ def create_summary_page(df: pd.DataFrame, available_models: list[str]) -> plt.Fi
190
  legend_spacing = 10
191
  legend_font_size = 15
192
 
193
- # Add failure rate explanation text on the left
194
- # explanation_text = "Failure rate = failed / (passed + failed)"
195
- # ax.text(0, legend_y, explanation_text,
196
- # ha='left', va='bottom', color='#CCCCCC',
197
- # fontsize=legend_font_size, fontfamily='monospace', style='italic')
198
-
199
  # Legend entries
200
  legend_items = [
201
  ('passed', 'Passed'),
 
38
  FAILURE_RATE_FONT_SIZE = 28
39
 
40
 
41
+ def get_overall_stats(df: pd.DataFrame, available_models: list[str]) -> tuple[list[int], list[int]]:
42
  """Calculate overall failure rates for AMD and NVIDIA across all models."""
43
  if df.empty or not available_models:
44
  return 0.0, 0.0
45
 
46
+ total_amd_passed = 0
47
+ total_amd_failed = 0
48
+ total_amd_skipped = 0
49
+ total_nvidia_passed = 0
50
+ total_nvidia_failed = 0
51
+ total_nvidia_skipped = 0
52
 
53
  for model_name in available_models:
54
  if model_name not in df.index:
 
58
  amd_stats, nvidia_stats = extract_model_data(row)[:2]
59
 
60
  # AMD totals
61
+ total_amd_passed += amd_stats['passed']
62
+ total_amd_failed += amd_stats['failed'] + amd_stats['error']
63
+ total_amd_skipped += amd_stats['skipped']
64
+
 
65
  # NVIDIA totals
66
+ total_nvidia_passed += nvidia_stats['passed']
67
+ total_nvidia_failed += nvidia_stats['failed'] + nvidia_stats['error']
68
+ total_nvidia_skipped += nvidia_stats['skipped']
 
 
 
 
69
 
70
+ return [total_amd_passed, total_amd_failed, total_amd_skipped], [total_nvidia_passed, total_nvidia_failed, total_nvidia_skipped]
71
 
72
 
73
  def draw_text_and_bar(
 
115
  return fig
116
 
117
  # Calculate overall failure rates
118
+ amd_counts, nvidia_counts = get_overall_stats(df, available_models)
119
+
120
+ amd_failure_rate = (amd_counts[1] / sum(amd_counts)) if sum(amd_counts) > 0 else 0.0
121
+ amd_failure_rate *= 100
122
+ nvidia_failure_rate = (nvidia_counts[1] / sum(nvidia_counts)) if sum(nvidia_counts) > 0 else 0.0
123
+ nvidia_failure_rate *= 100
124
 
125
  # Calculate dimensions for N-column layout
126
  model_count = len(available_models)
 
183
  visible_model_count += 1
184
 
185
 
186
+ # Add AMD and NVIDIA test totals in the bottom left
187
+ # Calculate line spacing to align middle with legend
188
+ line_height = 0.4 # Height between lines
189
+ legend_y = max_y + 1
190
+
191
+ # Position the two lines so their middle aligns with legend_y
192
+ amd_y = legend_y - line_height / 2
193
+ nvidia_y = legend_y + line_height / 2
194
+
195
+ amd_totals_text = f"AMD Tests - Passed: {amd_counts[0]}, Failed: {amd_counts[1]}, Skipped: {amd_counts[2]}"
196
+ nvidia_totals_text = f"NVIDIA Tests - Passed: {nvidia_counts[0]}, Failed: {nvidia_counts[1]}, Skipped: {nvidia_counts[2]}"
197
+
198
+ ax.text(0, amd_y, amd_totals_text,
199
+ ha='left', va='bottom', color='#CCCCCC',
200
+ fontsize=14, fontfamily='monospace')
201
+
202
+ ax.text(0, nvidia_y, nvidia_totals_text,
203
+ ha='left', va='bottom', color='#CCCCCC',
204
+ fontsize=14, fontfamily='monospace')
205
+
206
  # Add legend horizontally in bottom right corner
207
  patch_height = 0.3
208
  patch_width = 3
 
212
  legend_spacing = 10
213
  legend_font_size = 15
214
 
 
 
 
 
 
 
215
  # Legend entries
216
  legend_items = [
217
  ('passed', 'Passed'),