"""Tests for finlint package content and public API."""

import pytest


def test_finlint_exports_load_suite():
    """finlint exports load_suite."""
    from finlint.vectors import load_suite
    assert callable(load_suite)


def test_finlint_exports_run_suite():
    """finlint exports run_suite."""
    from finlint.vectors import run_suite
    assert callable(run_suite)


def test_finlint_exports_run_vector():
    """finlint exports run_vector."""
    from finlint.vectors import run_vector
    assert callable(run_vector)


def test_finlint_exports_vector_error():
    """finlint exports VectorError."""
    from finlint.vectors import VectorError
    assert issubclass(VectorError, Exception)


def test_finlint_exports_vector_failure():
    """finlint exports VectorFailure."""
    from finlint.vectors import VectorFailure
    assert issubclass(VectorFailure, Exception)


def test_finlint_exports_parse_decimal_values():
    """finlint exports parse_decimal_values."""
    from finlint.vectors import parse_decimal_values
    assert callable(parse_decimal_values)


def test_finlint_version():
    """finlint has __version__."""
    import finlint
    assert hasattr(finlint, "__version__")
    assert finlint.__version__ == "1.0.0"


def test_finlint_pylint_checkers_register():
    """finlint_pylint checkers can be imported."""
    from finlint_pylint.checkers import no_float_money, decimal_from_string
    assert hasattr(no_float_money, "register")
    assert hasattr(decimal_from_string, "register")
