-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_env.py
More file actions
47 lines (42 loc) · 2.07 KB
/
test_env.py
File metadata and controls
47 lines (42 loc) · 2.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import time
import sys
sys.path.insert(0, r'c:\Users\ishua\OneDrive\Desktop\meta-2')
print('Testing DuckDB executor...')
t0 = time.time()
from executor import get_executor
ex = get_executor()
print(f'Tables built in {time.time()-t0:.1f}s')
print('Table stats:', ex.table_stats)
print()
print('Testing real query comparison (Task 1)...')
from tasks import TASKS
task = TASKS['task_1_basic_antipatterns']
original = task['sql_query']
optimized = "SELECT id, customer_id, status, total, created_at FROM orders WHERE customer_id = 5000 AND created_at >= DATE '2024-01-01' AND created_at < DATE '2025-01-01'"
result = ex.compare(original, optimized)
print(f" Original : {result['original_ms']:.1f} ms ({result['original_rows']} rows)")
print(f" Optimized: {result['optimized_ms']:.1f} ms ({result['optimized_rows']} rows)")
print(f" Speedup : {result['speedup']:.2f}x")
print(f" Correct : {result['results_match']}")
print(f" Verdict : {result['verdict']}")
print()
print('Testing full grader...')
from graders import grade
from models import Action
action = Action(
suggestions=[
{"issue_type": "select_star", "line": 1, "description": "SELECT * fetches all columns unnecessarily from 500k rows", "severity": "medium", "fix": "Select only needed columns"},
{"issue_type": "non_sargable_cast", "line": 3, "description": "CAST on customer_id prevents columnar pruning", "severity": "high", "fix": "Use direct integer comparison"},
{"issue_type": "function_on_date_column", "line": 4, "description": "year() on created_at forces full column evaluation", "severity": "high", "fix": "Use date range with BETWEEN"},
],
optimized_query=optimized,
summary="Three anti-patterns identified: SELECT * wastes bandwidth, CAST and year() prevent DuckDB zone-map pruning causing full 500k row scans.",
estimated_improvement="5-10x faster by enabling columnar pruning and reducing I/O",
approved=False
)
reward = grade(task, action)
print(f" Score : {reward.score}")
print(f" Breakdown: {reward.breakdown}")
print(reward.feedback[:300])
print()
print('ALL TESTS PASSED!')