from __future__ import annotations

import unittest

from us_cpa.tax_years import supported_tax_years, tax_year_rules


class TaxYearRuleTests(unittest.TestCase):
    def test_supported_years_are_listed(self) -> None:
        self.assertEqual(supported_tax_years(), [2024, 2025])

    def test_tax_year_rules_include_source_citations(self) -> None:
        rules = tax_year_rules(2025)

        self.assertIn("sourceCitations", rules)
        self.assertIn("standardDeduction", rules["sourceCitations"])
        self.assertIn("ordinaryIncomeBrackets", rules["sourceCitations"])

    def test_unsupported_tax_year_raises_clear_error(self) -> None:
        with self.assertRaisesRegex(ValueError, "Unsupported tax year 2023"):
            tax_year_rules(2023)


if __name__ == "__main__":
    unittest.main()
