# -*- coding: utf-8 -*-
"""解析器测试"""
import pytest
from decimal import Decimal
from datetime import datetime
from zoneinfo import ZoneInfo
from models.parsers import TypeParser

def test_parse_decimal():
    """测试金额解析"""
    assert TypeParser.parse_decimal("100.555", 2) == Decimal("100.56")
    assert TypeParser.parse_decimal(None) is None
    assert TypeParser.parse_decimal("invalid") is None

def test_parse_int():
    """测试整数解析"""
    assert TypeParser.parse_int("123") == 123
    assert TypeParser.parse_int(456) == 456
    assert TypeParser.parse_int(None) is None
    assert TypeParser.parse_int("abc") is None

def test_parse_timestamp():
    """测试时间戳解析"""
    tz = ZoneInfo("Asia/Taipei")
    dt = TypeParser.parse_timestamp("2025-01-15 10:30:00", tz)
    assert dt is not None
    assert dt.year == 2025
    assert dt.month == 1
    assert dt.day == 15
