#!/usr/bin/env python3
"""
Test script for the UI search functionality.
This script tests the search functionality of the UI without launching the Gradio interface.
"""

import os
import json
from pathlib import Path
from ui.gradio_interface import GradioInterface


def main():
    """Main function to test the UI search functionality."""
    # Create the interface
    interface = GradioInterface()
    
    # Test queries
    test_queries = [
        "What are the latest advancements in quantum computing?",
        "Compare transformer and RNN architectures for NLP tasks",
        "Explain the environmental impact of electric vehicles"
    ]
    
    # Test each query
    for query in test_queries:
        print(f"\n\n{'=' * 80}")
        print(f"Testing query: {query}")
        print(f"{'=' * 80}\n")
        
        # Process the query
        markdown_results, results_file = interface.process_query(query, num_results=5)
        
        # Print the results
        print(f"\nResults file: {results_file}")
        print(f"\nMarkdown results preview:")
        print(f"{markdown_results[:500]}...\n")
        
        # Check if results file exists and has content
        if results_file and os.path.exists(results_file):
            with open(results_file, 'r') as f:
                results = json.load(f)
                print(f"Number of results: {len(results)}")
                
                if len(results) > 0:
                    print(f"First result title: {results[0].get('title', 'No title')}")
                    print(f"First result URL: {results[0].get('url', 'No URL')}")
        else:
            print("No results file or empty results.")
    
    print("\nTest completed.")


if __name__ == "__main__":
    main()
