Spaces:
Runtime error
Runtime error
"""Test LLM Math functionality.""" | |
import pytest | |
from langchain.chains.llm_math.base import LLMMathChain | |
from langchain.chains.llm_math.prompt import _PROMPT_TEMPLATE | |
from tests.unit_tests.llms.fake_llm import FakeLLM | |
def fake_llm_math_chain() -> LLMMathChain: | |
"""Fake LLM Math chain for testing.""" | |
complex_question = _PROMPT_TEMPLATE.format(question="What is the square root of 2?") | |
queries = { | |
_PROMPT_TEMPLATE.format(question="What is 1 plus 1?"): "Answer: 2", | |
complex_question: "```python\nprint(2**.5)\n```", | |
_PROMPT_TEMPLATE.format(question="foo"): "foo", | |
} | |
fake_llm = FakeLLM(queries=queries) | |
return LLMMathChain(llm=fake_llm, input_key="q", output_key="a") | |
def test_simple_question(fake_llm_math_chain: LLMMathChain) -> None: | |
"""Test simple question that should not need python.""" | |
question = "What is 1 plus 1?" | |
output = fake_llm_math_chain.run(question) | |
assert output == "Answer: 2" | |
def test_complex_question(fake_llm_math_chain: LLMMathChain) -> None: | |
"""Test complex question that should need python.""" | |
question = "What is the square root of 2?" | |
output = fake_llm_math_chain.run(question) | |
assert output == f"Answer: {2**.5}\n" | |
def test_error(fake_llm_math_chain: LLMMathChain) -> None: | |
"""Test question that raises error.""" | |
with pytest.raises(ValueError): | |
fake_llm_math_chain.run("foo") | |