#!/usr/bin/env python3
"""Test script untuk memastikan trading style config bekerja dengan benar"""

import sys
sys.path.insert(0, '.')

from neurobroV6 import analyze_stock, load_free_float
import os

# Test config untuk berbagai trading styles
test_configs = {
    'daytrade': {'trading_style': 'daytrade', 'min_score': 0, 'min_price': 50, 'max_price': 50000},
    'swing': {'trading_style': 'swing', 'min_score': 0, 'min_price': 50, 'max_price': 50000},
    'long': {'trading_style': 'long', 'min_score': 0, 'min_price': 50, 'max_price': 50000},
    'custom': {'trading_style': 'custom', 'min_score': 0, 'min_price': 50, 'max_price': 50000}
}

# Load free float
free_float_file = 'free_float_idx.csv'
free_float_map = {}
if os.path.exists(free_float_file):
    free_float_map = load_free_float(free_float_file)

# Test dengan BBCA
test_ticker = 'BBCA.JK'

print("=" * 60)
print(f"TESTING TRADING STYLE CONFIG - {test_ticker}")
print("=" * 60)

for style_name, config in test_configs.items():
    print(f"\n{'='*60}")
    print(f"STYLE: {style_name.upper()}")
    print(f"Config: {config}")
    print(f"{'='*60}")

    try:
        result = analyze_stock(test_ticker, free_float_map, is_single_mode=True, config=config)

        if result:
            print(f"✓ Price: {result['price']}")
            print(f"✓ Score: {result['score']}/100")

            # Tampilkan MA details dari breakdown
            ma_details = [d for d in result['details'] if 'MA' in d or 'EMA' in d or 'SMA' in d or 'CROSS' in d]
            print("\nMA Details from breakdown:")
            for detail in ma_details:
                print(f"  - {detail}")

            # Tampilkan values
            print(f"\nEntry: {result['entry_low']}-{result['entry_high']}")
            print(f"SL: {result['sl']}")
            print(f"TP1: {result['tp1']}")
            print(f"R:R: {result['rr']}")
        else:
            print("✗ FAILED - No result returned")
    except Exception as e:
        print(f"✗ ERROR: {e}")
        import traceback
        traceback.print_exc()

print(f"\n{'='*60}")
print("TEST COMPLETE")
print(f"{'='*60}")
