#!/usr/bin/env python3 """ Test the updated pages parameter parsing """ import asyncio import sys import os # Add src to path sys.path.insert(0, 'src') from mcp_pdf_tools.server import parse_pages_parameter def test_page_parsing(): """Test page parameter parsing (1-based user input -> 0-based internal)""" print("Testing page parameter parsing (1-based user input -> 0-based internal)...") # Test different input formats - all converted from 1-based user input to 0-based internal test_cases = [ (None, None), ("1,2,3", [0, 1, 2]), # 1-based input -> 0-based internal ("[2, 3]", [1, 2]), # This is the problematic case from the user ("5", [4]), # Page 5 becomes index 4 ([1, 2, 3], [0, 1, 2]), # List input also converted ("2,3,4", [1, 2, 3]), # Pages 2,3,4 -> indexes 1,2,3 ("[1,2,3]", [0, 1, 2]) # Another format ] all_passed = True for input_val, expected in test_cases: try: result = parse_pages_parameter(input_val) if result == expected: print(f"āœ… '{input_val}' -> {result}") else: print(f"āŒ '{input_val}' -> {result}, expected {expected}") all_passed = False except Exception as e: print(f"āŒ '{input_val}' -> Error: {e}") all_passed = False return all_passed if __name__ == "__main__": success = test_page_parsing() if success: print("\nšŸŽ‰ All page parameter parsing tests passed!") else: print("\n🚨 Some tests failed!") sys.exit(0 if success else 1)