from src.domain.codegen.credit_estimator import estimate_codegen_credits


def test_codegen_credit_estimate_has_a_starter_floor() -> None:
    estimate = estimate_codegen_credits(prompt="Build a landing page")

    assert estimate.minimum_credits == 5
    assert estimate.maximum_credits == 15
    assert estimate.attachment_credits == 0


def test_codegen_credit_estimate_includes_prompt_and_attachment_complexity() -> None:
    estimate = estimate_codegen_credits(
        prompt="x" * 1_800,
        attachment_sizes=[6 * 1024 * 1024],
        attachment_count=2,
    )

    assert estimate.prompt_credits == 2
    assert estimate.attachment_credits == 3
    assert estimate.minimum_credits == 10
    assert estimate.maximum_credits == 30
