Home / File/ test_base.py — langchain Source File

test_base.py — langchain Source File

Architecture documentation for test_base.py, a python file in the langchain codebase. 2 imports, 0 dependents.

Entity Profile

Dependency Diagram

graph LR
  67eba672_6f40_dc5f_600e_486b9f4f5759["test_base.py"]
  120e2591_3e15_b895_72b6_cb26195e40a6["pytest"]
  67eba672_6f40_dc5f_600e_486b9f4f5759 --> 120e2591_3e15_b895_72b6_cb26195e40a6
  97c6b5fa_ecc6_4ad3_16d4_87a8dc1b81f0["langchain_classic.evaluation.string_distance"]
  67eba672_6f40_dc5f_600e_486b9f4f5759 --> 97c6b5fa_ecc6_4ad3_16d4_87a8dc1b81f0
  style 67eba672_6f40_dc5f_600e_486b9f4f5759 fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

import pytest

from langchain_classic.evaluation.string_distance import (
    PairwiseStringDistanceEvalChain,
    StringDistance,
    StringDistanceEvalChain,
)


@pytest.mark.requires("rapidfuzz")
@pytest.mark.parametrize("distance", list(StringDistance))
def test_zero_distance(distance: StringDistance) -> None:
    eval_chain = StringDistanceEvalChain(distance=distance)
    string = "三人行则必有我师"
    result = eval_chain.evaluate_strings(prediction=string, reference=string)
    assert "score" in result
    assert result["score"] == 0


@pytest.mark.requires("rapidfuzz")
@pytest.mark.parametrize("distance", list(StringDistance))
async def test_zero_distance_async(distance: StringDistance) -> None:
    eval_chain = StringDistanceEvalChain(distance=distance)
    string = "三人行则必有我师"
    result = await eval_chain.aevaluate_strings(prediction=string, reference=string)
    assert "score" in result
    assert result["score"] == 0


@pytest.mark.requires("rapidfuzz")
@pytest.mark.parametrize("distance", list(StringDistance))
@pytest.mark.parametrize("normalize_score", [True, False])
def test_zero_distance_pairwise(
    *,
    distance: StringDistance,
    normalize_score: bool,
) -> None:
    eval_chain = PairwiseStringDistanceEvalChain(
        distance=distance,
        normalize_score=normalize_score,
    )
    string = "三人行则必有我师"
    result = eval_chain.evaluate_string_pairs(prediction=string, prediction_b=string)
    assert "score" in result
    assert result["score"] == 0


@pytest.mark.requires("rapidfuzz")
@pytest.mark.parametrize("distance", list(StringDistance))
async def test_zero_distance_pairwise_async(distance: StringDistance) -> None:
    eval_chain = PairwiseStringDistanceEvalChain(distance=distance)
    string = "三人行则必有我师"
    result = await eval_chain.aevaluate_string_pairs(
        prediction=string,
        prediction_b=string,
    )
    assert "score" in result
    assert result["score"] == 0


// ... (63 more lines)

Subdomains

Dependencies

  • langchain_classic.evaluation.string_distance
  • pytest

Frequently Asked Questions

What does test_base.py do?
test_base.py is a source file in the langchain codebase, written in python. It belongs to the CoreAbstractions domain, RunnableInterface subdomain.
What functions are defined in test_base.py?
test_base.py defines 8 function(s): test_non_zero_distance, test_non_zero_distance_async, test_non_zero_distance_pairwise, test_non_zero_distance_pairwise_async, test_zero_distance, test_zero_distance_async, test_zero_distance_pairwise, test_zero_distance_pairwise_async.
What does test_base.py depend on?
test_base.py imports 2 module(s): langchain_classic.evaluation.string_distance, pytest.
Where is test_base.py in the architecture?
test_base.py is located at libs/langchain/tests/unit_tests/evaluation/string_distance/test_base.py (domain: CoreAbstractions, subdomain: RunnableInterface, directory: libs/langchain/tests/unit_tests/evaluation/string_distance).

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free