Spaces:
Runtime error
Runtime error
File size: 1,952 Bytes
19ee5f6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | from app.services.numeric_validator import (
run_numeric_checks_for_demo_answer,
validate_derivative,
)
def test_validate_derivative_success_sets_sympy_cas_fields() -> None:
item = validate_derivative("x**2", "2*x")
assert item.is_valid is True
assert item.sympy_status == "ok"
assert item.sympy_result == "2*x"
assert item.wolfram_status == "not_run"
assert item.wolfram_result is None
assert item.cas_status == "SYMPY_ONLY"
assert item.preferred_engine == "sympy"
assert item.confidence_impact == "neutral"
assert item.human_review_reason is None
def test_validate_derivative_failure_sets_review_reason() -> None:
item = validate_derivative("x**2", "x")
assert item.is_valid is False
assert item.sympy_status == "ok"
assert item.sympy_result == "2*x"
assert item.wolfram_status == "not_run"
assert item.cas_status == "SYMPY_ONLY"
assert item.preferred_engine == "sympy"
assert item.confidence_impact == "decrease"
assert item.human_review_reason == "sympy_contradicts_expected_derivative"
def test_validate_derivative_unusable_expression_sets_no_cas_validation() -> None:
item = validate_derivative("sin(", "2*x")
assert item.is_valid is False
assert item.sympy_status == "failed"
assert item.sympy_result is None
assert item.wolfram_status == "not_run"
assert item.cas_status == "NO_CAS_VALIDATION"
assert item.preferred_engine == "none"
assert item.confidence_impact == "decrease"
assert item.human_review_reason == "sympy_unusable_expression"
def test_demo_numeric_checks_keep_report_consistent() -> None:
report = run_numeric_checks_for_demo_answer("On trouve f'(x)=2x.")
assert len(report.checks) == 1
assert report.checks[0].is_valid is True
assert report.checks[0].cas_status == "SYMPY_ONLY"
assert report.contradicted_by_numeric_check is False
assert report.needs_human_review is False
|