test_length_based_example_selector.py — langchain Source File
Architecture documentation for test_length_based_example_selector.py, a python file in the langchain codebase. 3 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR 7e68d2d6_6314_1254_1bda_33f0fc029c9d["test_length_based_example_selector.py"] 120e2591_3e15_b895_72b6_cb26195e40a6["pytest"] 7e68d2d6_6314_1254_1bda_33f0fc029c9d --> 120e2591_3e15_b895_72b6_cb26195e40a6 a4804e3f_4fa3_c9fc_7121_e057c2daa7e3["langchain_core.example_selectors"] 7e68d2d6_6314_1254_1bda_33f0fc029c9d --> a4804e3f_4fa3_c9fc_7121_e057c2daa7e3 e6b4f61e_7b98_6666_3641_26b069517d4a["langchain_core.prompts"] 7e68d2d6_6314_1254_1bda_33f0fc029c9d --> e6b4f61e_7b98_6666_3641_26b069517d4a style 7e68d2d6_6314_1254_1bda_33f0fc029c9d fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
"""Test functionality related to length based selector."""
import pytest
from langchain_core.example_selectors import (
LengthBasedExampleSelector,
)
from langchain_core.prompts import PromptTemplate
EXAMPLES = [
{"question": "Question: who are you?\nAnswer: foo"},
{"question": "Question: who are you?\nAnswer: foo"},
]
@pytest.fixture
def selector() -> LengthBasedExampleSelector:
"""Get length based selector to use in tests."""
prompts = PromptTemplate(input_variables=["question"], template="{question}")
return LengthBasedExampleSelector(
examples=EXAMPLES,
example_prompt=prompts,
max_length=30,
)
def test_selector_valid(selector: LengthBasedExampleSelector) -> None:
"""Test LengthBasedExampleSelector can select examples.."""
short_question = "Short question?"
output = selector.select_examples({"question": short_question})
assert output == EXAMPLES
def test_selector_add_example(selector: LengthBasedExampleSelector) -> None:
"""Test LengthBasedExampleSelector can add an example."""
new_example = {"question": "Question: what are you?\nAnswer: bar"}
selector.add_example(new_example)
short_question = "Short question?"
output = selector.select_examples({"question": short_question})
assert output == [*EXAMPLES, new_example]
def test_selector_trims_one_example(selector: LengthBasedExampleSelector) -> None:
"""Test LengthBasedExampleSelector can trim one example."""
long_question = """I am writing a really long question,
this probably is going to affect the example right?"""
output = selector.select_examples({"question": long_question})
assert output == EXAMPLES[:1]
def test_selector_trims_all_examples(
selector: LengthBasedExampleSelector,
) -> None:
"""Test LengthBasedExampleSelector can trim all examples."""
longest_question = """This question is super super super,
super super super super super super super super super super super,
super super super super long, this will affect the example right?"""
output = selector.select_examples({"question": longest_question})
assert output == []
# edge case
def test_selector_empty_example(
selector: LengthBasedExampleSelector,
) -> None:
"""Test Empty Example result empty."""
empty_list: list[dict] = []
empty_selector = LengthBasedExampleSelector(
examples=empty_list,
example_prompt=selector.example_prompt,
max_length=30,
)
output = empty_selector.select_examples({"question": "empty question"})
assert output == []
Domain
Subdomains
Functions
Dependencies
- langchain_core.example_selectors
- langchain_core.prompts
- pytest
Source
Frequently Asked Questions
What does test_length_based_example_selector.py do?
test_length_based_example_selector.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, Serialization subdomain.
What functions are defined in test_length_based_example_selector.py?
test_length_based_example_selector.py defines 6 function(s): selector, test_selector_add_example, test_selector_empty_example, test_selector_trims_all_examples, test_selector_trims_one_example, test_selector_valid.
What does test_length_based_example_selector.py depend on?
test_length_based_example_selector.py imports 3 module(s): langchain_core.example_selectors, langchain_core.prompts, pytest.
Where is test_length_based_example_selector.py in the architecture?
test_length_based_example_selector.py is located at libs/core/tests/unit_tests/example_selectors/test_length_based_example_selector.py (domain: CoreAbstractions, subdomain: Serialization, directory: libs/core/tests/unit_tests/example_selectors).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free