khushiks21/fraud-investigation-env
0
1#!/usr/bin/env python32from server.case_generator import _case_device_takeover, _case_legitimate_new_device3from models import FraudAction4from server.grader import _grade_task25 6print("\n" + "="*80)7print("TEST 1: ATO-001 Device Takeover (FRAUD) with WRONG answer (saying legitimate)")8print("="*80)9 10case1 = _case_device_takeover()11obs1 = case1["observation"]12truth1 = case1["truth"]13 14print(f"Case: {obs1.case_id}")15print(f"Truth: is_fraud={truth1['is_fraud']}, type={truth1['fraud_type']}, action={truth1['action']}")16 17# Wrong answer18action1 = FraudAction(19 action_type="submit_decision",20 is_fraud=False,21 fraud_type="legitimate",22 confidence=0.90,23 evidence=["support_call_context"],24 attack_vector="none",25 action="allow",26 flagged_accounts=[],27 hub_account=None,28 regulatory_action="none",29 reasoning="Thinking this is legitimate..."30)31 32print("\nGrading WRONG answer...")33reward1, feedback1 = _grade_task2(action1, truth1)34print(f"\nFinal reward: {reward1:.6f} (formatted: {reward1:.2f})")35 36print("\n" + "="*80)37print("TEST 2: ATO-004 Legitimate (NO FRAUD) with CORRECT answer")38print("="*80)39 40case2 = _case_legitimate_new_device()41obs2 = case2["observation"]42truth2 = case2["truth"]43 44print(f"Case: {obs2.case_id}")45print(f"Truth: is_fraud={truth2['is_fraud']}, type={truth2['fraud_type']}, action={truth2['action']}")46 47# CORRECT answer - perfect match48action2 = FraudAction(49 action_type="submit_decision",50 is_fraud=False,51 fraud_type="legitimate",52 confidence=0.90,53 evidence=["support_call_context", "same_city", "normal_time", "usual_merchant"],54 attack_vector="none",55 action="allow",56 flagged_accounts=[],57 hub_account=None,58 regulatory_action="none",59 reasoning="The user received a new iPhone 15 after reporting their old phone stolen. Login occurred from Mumbai at normal evening time. Transaction amount (₹3200) is within usual range for Amazon purchases. All signals align with legitimate device replacement."60)61 62print("\nGrading CORRECT answer...")63reward2, feedback2 = _grade_task2(action2, truth2)64print(f"\nFinal reward: {reward2:.6f} (formatted: {reward2:.2f})")65 66print("\n" + "="*80)67 68 