Mihir Mungara commited on
Commit
747aba3
Β·
1 Parent(s): b475d7b

graders result clampped between 0 and 1

Browse files
Files changed (2) hide show
  1. environment.py +10 -9
  2. main.py +4 -5
environment.py CHANGED
@@ -279,17 +279,18 @@ class DataCleaningEnv:
279
  component_scores[k] * w
280
  for k, w in weights.items()
281
  ) - penalty
282
- # Clamp to strictly (0, 1) excluding endpoints for grader compliance
283
- total = max(0.0001, min(0.9999, total))
 
284
 
285
  return Reward(
286
- total=round(total, 4),
287
- duplicate_score=round(dup_score, 4),
288
- missing_score=round(missing_score, 4),
289
- dtype_score=round(dtype_score, 4),
290
- outlier_score=round(outlier_score, 4),
291
- schema_score=round(schema_score, 4),
292
- penalty=round(penalty, 4)
293
  )
294
 
295
  # ─────────────────────────────────────────
 
279
  component_scores[k] * w
280
  for k, w in weights.items()
281
  ) - penalty
282
+ # Clamp ALL scores strictly to (0, 1) β€” grader rejects 0.0 and 1.0
283
+ def _sc(v):
284
+ return round(max(0.0001, min(0.9999, float(v))), 4)
285
 
286
  return Reward(
287
+ total=_sc(total),
288
+ duplicate_score=_sc(dup_score),
289
+ missing_score=_sc(missing_score),
290
+ dtype_score=_sc(dtype_score),
291
+ outlier_score=_sc(outlier_score),
292
+ schema_score=_sc(schema_score),
293
+ penalty=round(max(0.0, min(0.9999, float(penalty))), 4)
294
  )
295
 
296
  # ─────────────────────────────────────────
main.py CHANGED
@@ -1,4 +1,3 @@
1
-
2
  import sys
3
  import os
4
  sys.path.insert(0, os.path.dirname(__file__))
@@ -280,7 +279,7 @@ def validate():
280
  )
281
  step_result = env.step(action)
282
  assert step_result.observation is not None
283
- assert 0.0 <= step_result.reward.total <= 1.0
284
 
285
  # Test state
286
  state_result = env.state()
@@ -327,7 +326,7 @@ def submit_score(entry: Dict[str, Any]):
327
  leaderboard_data.append({
328
  "model_name": entry["model_name"],
329
  "task_id": entry["task_id"],
330
- "score": round(float(entry["score"]), 4),
331
  "steps": entry.get("steps", 0),
332
  "timestamp": __import__("datetime").datetime.utcnow().isoformat()
333
  })
@@ -365,7 +364,7 @@ def get_leaderboard():
365
  ranked.append({
366
  "model_name": model,
367
  "scores": scores,
368
- "avg_score": round(avg, 4)
369
  })
370
 
371
  ranked.sort(key=lambda x: x["avg_score"], reverse=True)
@@ -375,4 +374,4 @@ def get_leaderboard():
375
  return {
376
  "leaderboard": ranked,
377
  "total_submissions": len(leaderboard_data)
378
- }
 
 
1
  import sys
2
  import os
3
  sys.path.insert(0, os.path.dirname(__file__))
 
279
  )
280
  step_result = env.step(action)
281
  assert step_result.observation is not None
282
+ assert 0.0 < step_result.reward.total < 1.0 # strict bounds required by grader
283
 
284
  # Test state
285
  state_result = env.state()
 
326
  leaderboard_data.append({
327
  "model_name": entry["model_name"],
328
  "task_id": entry["task_id"],
329
+ "score": round(max(0.0001, min(0.9999, float(entry["score"]))), 4),
330
  "steps": entry.get("steps", 0),
331
  "timestamp": __import__("datetime").datetime.utcnow().isoformat()
332
  })
 
364
  ranked.append({
365
  "model_name": model,
366
  "scores": scores,
367
+ "avg_score": round(max(0.0001, min(0.9999, avg)), 4)
368
  })
369
 
370
  ranked.sort(key=lambda x: x["avg_score"], reverse=True)
 
374
  return {
375
  "leaderboard": ranked,
376
  "total_submissions": len(leaderboard_data)
377
+ }