From 2bd9f5da7f4e66dde8b9233e0acc4914363715b3 Mon Sep 17 00:00:00 2001 From: m3n3235 <107667084+m3n3235@users.noreply.github.com> Date: Mon, 11 Sep 2023 13:50:20 -0700 Subject: [PATCH] Remove hamming option from string distance tests (#9882) Description: We should not test Hamming string distance for strings that are not equal length, since this is not defined. Removing hamming distance tests for unequal string distances. --- .../evaluation/string_distance/test_base.py | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/libs/langchain/tests/unit_tests/evaluation/string_distance/test_base.py b/libs/langchain/tests/unit_tests/evaluation/string_distance/test_base.py index eff632f454..70dc7aaa78 100644 --- a/libs/langchain/tests/unit_tests/evaluation/string_distance/test_base.py +++ b/libs/langchain/tests/unit_tests/evaluation/string_distance/test_base.py @@ -56,8 +56,13 @@ async def test_zero_distance_pairwise_async(distance: StringDistance) -> None: assert result["score"] == 0 +valid_distances = [ + distance for distance in StringDistance if distance != StringDistance.HAMMING +] + + @pytest.mark.requires("rapidfuzz") -@pytest.mark.parametrize("distance", list(StringDistance)) +@pytest.mark.parametrize("distance", valid_distances) @pytest.mark.parametrize("normalize_score", [True, False]) def test_non_zero_distance(distance: StringDistance, normalize_score: bool) -> None: eval_chain = StringDistanceEvalChain( @@ -74,7 +79,7 @@ def test_non_zero_distance(distance: StringDistance, normalize_score: bool) -> N @pytest.mark.asyncio @pytest.mark.requires("rapidfuzz") -@pytest.mark.parametrize("distance", list(StringDistance)) +@pytest.mark.parametrize("distance", valid_distances) async def test_non_zero_distance_async(distance: StringDistance) -> None: eval_chain = StringDistanceEvalChain(distance=distance) prediction = "I like to eat apples." @@ -87,7 +92,7 @@ async def test_non_zero_distance_async(distance: StringDistance) -> None: @pytest.mark.requires("rapidfuzz") -@pytest.mark.parametrize("distance", list(StringDistance)) +@pytest.mark.parametrize("distance", valid_distances) def test_non_zero_distance_pairwise(distance: StringDistance) -> None: eval_chain = PairwiseStringDistanceEvalChain(distance=distance) prediction = "I like to eat apples." @@ -101,7 +106,7 @@ def test_non_zero_distance_pairwise(distance: StringDistance) -> None: @pytest.mark.asyncio @pytest.mark.requires("rapidfuzz") -@pytest.mark.parametrize("distance", list(StringDistance)) +@pytest.mark.parametrize("distance", valid_distances) async def test_non_zero_distance_pairwise_async(distance: StringDistance) -> None: eval_chain = PairwiseStringDistanceEvalChain(distance=distance) prediction = "I like to eat apples."