Files
yrtv/database/L3/analyzer/test_basic_processor.py

60 lines
1.9 KiB
Python
Raw Normal View History

2026-01-29 02:21:44 +08:00
"""
Test BasicProcessor implementation
"""
import sqlite3
import sys
import os
# Add parent directory to path
sys.path.insert(0, os.path.join(os.path.dirname(os.path.abspath(__file__)), '..', '..'))
from database.L3.processors import BasicProcessor
def test_basic_processor():
"""Test BasicProcessor on a real player from L2"""
# Connect to L2 database
l2_path = os.path.join(os.path.dirname(__file__), '..', 'L2', 'L2.db')
conn = sqlite3.connect(l2_path)
try:
# Get a test player
cursor = conn.cursor()
cursor.execute("SELECT steam_id_64 FROM dim_players LIMIT 1")
result = cursor.fetchone()
if not result:
print("No players found in L2 database")
return False
steam_id = result[0]
print(f"Testing BasicProcessor for player: {steam_id}")
# Calculate features
features = BasicProcessor.calculate(steam_id, conn)
print(f"\n✓ Calculated {len(features)} features")
print(f"\nSample features:")
print(f" core_avg_rating: {features.get('core_avg_rating', 0)}")
print(f" core_avg_kd: {features.get('core_avg_kd', 0)}")
print(f" core_total_kills: {features.get('core_total_kills', 0)}")
print(f" core_win_rate: {features.get('core_win_rate', 0)}")
print(f" core_top_weapon: {features.get('core_top_weapon', 'unknown')}")
# Verify we have all 41 features
expected_count = 41
if len(features) == expected_count:
print(f"\n✓ Feature count correct: {expected_count}")
return True
else:
print(f"\n✗ Feature count mismatch: expected {expected_count}, got {len(features)}")
return False
finally:
conn.close()
if __name__ == "__main__":
success = test_basic_processor()
sys.exit(0 if success else 1)