Shivaaaahdjdnd/code_analysis
0
1import requests2import json3 4API_URL = "https://shivaaaahdjdnd-code-analysis.hf.space/api/batch-analysis"5HEALTH_URL = "https://shivaaaahdjdnd-code-analysis.hf.space/health"6 7print("Testing Live API on Hugging Face Spaces")8print("=" * 70)9 10# Health check first11print("\n[Health Check]")12try:13 r = requests.get(HEALTH_URL, timeout=15)14 h = r.json()15 print(f"Status: {h.get('status')}")16 print(f"Model: {h.get('model')}")17 print(f"AI Enabled: {h.get('ai_enabled')}")18except Exception as e:19 print(f"Health check failed: {e}")20 21# Test 1: Single Submission with test cases22print("\nTest 1: Single Submission (with test cases)")23test1 = {24 "submissions": [25 {26 "question": "Reverse a string",27 "user_code": "def reverse(s):\n return s[::-1]",28 "correct_solution": "def reverse(s):\n return s[::-1]",29 "language": "python",30 "difficulty": "easy",31 "test_cases": [32 {"input": "hello", "expected_output": "olleh"},33 {"input": "world", "expected_output": "dlrow"}34 ]35 }36 ]37}38 39try:40 response = requests.post(API_URL, json=test1, timeout=60)41 result = response.json()42 print(f"Status: {result.get('status')}")43 print(f"Average Score: {result.get('average_score')}/100")44 sub = result['results'][0]45 print(f"Tests Passed: {sub['analysis']['correctness']['test_cases_passed']}/{sub['analysis']['correctness']['total_test_cases']}")46 print(f"AI Analysis: {sub['analysis']['correctness']['ai_analysis'][:100] if sub['analysis']['correctness']['ai_analysis'] else 'N/A (fallback mode)'}")47except Exception as e:48 print(f"Error: {e}")49 50# Test 2: Multiple Submissions51print("\nTest 2: Multiple Submissions (3 problems)")52test2 = {53 "submissions": [54 {55 "question": "Find two numbers that add up to target",56 "user_code": "def two_sum(nums, target):\n for i in range(len(nums)):\n for j in range(i+1, len(nums)):\n if nums[i] + nums[j] == target:\n return [i, j]\n return []",57 "correct_solution": "def two_sum(nums, target):\n seen = {}\n for i, num in enumerate(nums):\n if target - num in seen:\n return [seen[target - num], i]\n seen[num] = i\n return []",58 "language": "python",59 "difficulty": "easy",60 "test_cases": [61 {"input": [[2, 7, 11, 15], 9], "expected_output": "[0, 1]"}62 ]63 },64 {65 "question": "Check if string is palindrome",66 "user_code": "def is_palindrome(s):\n return s == s[::-1]",67 "correct_solution": "def is_palindrome(s):\n return s == s[::-1]",68 "language": "python",69 "difficulty": "easy"70 },71 {72 "question": "Find maximum in array",73 "user_code": "def find_max(arr):\n max_val = arr[0]\n for num in arr:\n if num > max_val:\n max_val = num\n return max_val",74 "correct_solution": "def find_max(arr):\n return max(arr)",75 "language": "python",76 "difficulty": "easy"77 }78 ]79}80 81try:82 response = requests.post(API_URL, json=test2, timeout=120)83 result = response.json()84 print(f"Status: {result.get('status')}")85 print(f"Average Score: {result.get('average_score')}/100")86 print(f"Total Submissions: {result.get('total_submissions')}")87 88 print("\nIndividual Results:")89 for sub in result.get('results', []):90 print(f" #{sub['submission_id']}: {sub['question_title'][:40]}...")91 print(f" Score: {sub['overall_score']}/100")92 print(f" Correctness: {sub['analysis']['correctness']['score']}/40")93 print(f" Quality: {sub['analysis']['code_quality']['score']}/25")94 print(f" Efficiency: {sub['analysis']['efficiency']['score']}/20 ({sub['analysis']['efficiency']['time_complexity']})")95 print(f" Feedback: {sub.get('feedback', '')[:100]}")96 97except Exception as e:98 print(f"Error: {e}")99 100# Test 3: JavaScript101print("\nTest 3: JavaScript Code")102test3 = {103 "submissions": [104 {105 "question": "Reverse a string in JavaScript",106 "user_code": "function reverse(str) {\n return str.split('').reverse().join('');\n}",107 "correct_solution": "const reverse = (str) => str.split('').reverse().join('');",108 "language": "javascript",109 "difficulty": "easy"110 }111 ]112}113 114try:115 response = requests.post(API_URL, json=test3, timeout=60)116 result = response.json()117 print(f"Status: {result.get('status')}")118 print(f"Score: {result['results'][0]['overall_score']}/100")119except Exception as e:120 print(f"Error: {e}")121 122print("\n" + "=" * 70)123print("All tests completed!")124print(f"API Endpoint: {API_URL}")