Home / Class/ TestCosineSimilarity Class — langchain Architecture

TestCosineSimilarity Class — langchain Architecture

Architecture documentation for the TestCosineSimilarity class in test_utils.py from the langchain codebase.

Entity Profile

Dependency Diagram

graph TD
  4c1938a2_4a1a_35a8_d156_8347ebb84129["TestCosineSimilarity"]
  9d1d5598_d06a_fe3a_f56b_4817abb4a2d1["test_utils.py"]
  4c1938a2_4a1a_35a8_d156_8347ebb84129 -->|defined in| 9d1d5598_d06a_fe3a_f56b_4817abb4a2d1
  c47691f3_cb84_dcdc_db85_f95bcc2cec1d["test_basic_cosine_similarity()"]
  4c1938a2_4a1a_35a8_d156_8347ebb84129 -->|method| c47691f3_cb84_dcdc_db85_f95bcc2cec1d
  69019c6d_5648_82aa_da72_478faa741c4d["test_identical_vectors()"]
  4c1938a2_4a1a_35a8_d156_8347ebb84129 -->|method| 69019c6d_5648_82aa_da72_478faa741c4d
  4f855709_7cde_2176_4ffc_84acab6254b0["test_opposite_vectors()"]
  4c1938a2_4a1a_35a8_d156_8347ebb84129 -->|method| 4f855709_7cde_2176_4ffc_84acab6254b0
  676197f1_1894_f037_f692_097e89a9ba02["test_zero_vector()"]
  4c1938a2_4a1a_35a8_d156_8347ebb84129 -->|method| 676197f1_1894_f037_f692_097e89a9ba02
  7482ab9a_8f0f_3235_fb2a_98f0c87b6cb6["test_multiple_vectors()"]
  4c1938a2_4a1a_35a8_d156_8347ebb84129 -->|method| 7482ab9a_8f0f_3235_fb2a_98f0c87b6cb6
  0f9ab9a5_2826_441c_97a9_d7209bd77373["test_numpy_array_input()"]
  4c1938a2_4a1a_35a8_d156_8347ebb84129 -->|method| 0f9ab9a5_2826_441c_97a9_d7209bd77373
  e6a9261f_91b0_6bd7_2134_f30c043adbee["test_mixed_input_types()"]
  4c1938a2_4a1a_35a8_d156_8347ebb84129 -->|method| e6a9261f_91b0_6bd7_2134_f30c043adbee
  342f769f_341b_6100_0448_5bcef47c5add["test_higher_dimensions()"]
  4c1938a2_4a1a_35a8_d156_8347ebb84129 -->|method| 342f769f_341b_6100_0448_5bcef47c5add
  95ce910b_b872_97fc_1b29_5f4e9f2253e9["test_empty_matrices()"]
  4c1938a2_4a1a_35a8_d156_8347ebb84129 -->|method| 95ce910b_b872_97fc_1b29_5f4e9f2253e9
  af2a855c_74c0_a052_4a2c_072829d3a103["test_single_empty_matrix()"]
  4c1938a2_4a1a_35a8_d156_8347ebb84129 -->|method| af2a855c_74c0_a052_4a2c_072829d3a103
  900445fe_99d6_9e7b_2109_48e0615875b3["test_dimension_mismatch_error()"]
  4c1938a2_4a1a_35a8_d156_8347ebb84129 -->|method| 900445fe_99d6_9e7b_2109_48e0615875b3
  2a5b7dd4_7fd8_26c2_efe3_bce66a4aca25["test_nan_and_inf_handling()"]
  4c1938a2_4a1a_35a8_d156_8347ebb84129 -->|method| 2a5b7dd4_7fd8_26c2_efe3_bce66a4aca25
  d222f185_b8af_f9cb_5174_9b7340cddfde["test_large_values()"]
  4c1938a2_4a1a_35a8_d156_8347ebb84129 -->|method| d222f185_b8af_f9cb_5174_9b7340cddfde

Relationship Graph

Source Code

libs/core/tests/unit_tests/vectorstores/test_utils.py lines 13–164

class TestCosineSimilarity:
    """Tests for _cosine_similarity function."""

    def test_basic_cosine_similarity(self) -> None:
        """Test basic cosine similarity calculation."""
        # Simple orthogonal vectors
        x: list[list[float]] = [[1, 0], [0, 1]]
        y: list[list[float]] = [[1, 0], [0, 1]]
        result = _cosine_similarity(x, y)
        expected = np.array([[1.0, 0.0], [0.0, 1.0]])
        np.testing.assert_array_almost_equal(result, expected)

    def test_identical_vectors(self) -> None:
        """Test cosine similarity of identical vectors."""
        x: list[list[float]] = [[1, 2, 3]]
        y: list[list[float]] = [[1, 2, 3]]
        result = _cosine_similarity(x, y)
        expected = np.array([[1.0]])
        np.testing.assert_array_almost_equal(result, expected)

    def test_opposite_vectors(self) -> None:
        """Test cosine similarity of opposite vectors."""
        x: list[list[float]] = [[1, 2, 3]]
        y: list[list[float]] = [[-1, -2, -3]]
        result = _cosine_similarity(x, y)
        expected = np.array([[-1.0]])
        np.testing.assert_array_almost_equal(result, expected)

    def test_zero_vector(self) -> None:
        """Test cosine similarity with zero vector."""
        x: list[list[float]] = [[0, 0, 0]]
        y: list[list[float]] = [[1, 2, 3]]
        with pytest.raises(ValueError, match="NaN values found"):
            _cosine_similarity(x, y)

    def test_multiple_vectors(self) -> None:
        """Test cosine similarity with multiple vectors."""
        x: list[list[float]] = [[1, 0], [0, 1], [1, 1]]
        y: list[list[float]] = [[1, 0], [0, 1]]
        result = _cosine_similarity(x, y)
        expected = np.array(
            [
                [1.0, 0.0],
                [0.0, 1.0],
                [1 / math.sqrt(2), 1 / math.sqrt(2)],
            ]
        )
        np.testing.assert_array_almost_equal(result, expected)

    def test_numpy_array_input(self) -> None:
        """Test with numpy array inputs."""
        x: np.ndarray = np.array([[1, 0], [0, 1]])
        y: np.ndarray = np.array([[1, 0], [0, 1]])
        result = _cosine_similarity(x, y)
        expected = np.array([[1.0, 0.0], [0.0, 1.0]])
        np.testing.assert_array_almost_equal(result, expected)

    def test_mixed_input_types(self) -> None:
        """Test with mixed input types (list and numpy array)."""
        x: list[list[float]] = [[1, 0], [0, 1]]
        y: np.ndarray = np.array([[1, 0], [0, 1]])
        result = _cosine_similarity(x, y)
        expected = np.array([[1.0, 0.0], [0.0, 1.0]])
        np.testing.assert_array_almost_equal(result, expected)

    def test_higher_dimensions(self) -> None:
        """Test with higher dimensional vectors."""
        x: list[list[float]] = [[1, 0, 0, 0], [0, 1, 0, 0]]
        y: list[list[float]] = [[1, 0, 0, 0], [0, 0, 1, 0], [0, 0, 0, 1]]
        result = _cosine_similarity(x, y)
        expected = np.array([[1.0, 0.0, 0.0], [0.0, 0.0, 0.0]])
        np.testing.assert_array_almost_equal(result, expected)

    def test_empty_matrices(self) -> None:
        """Test with empty matrices."""
        x: list[list[float]] = []
        y: list[list[float]] = []
        result = _cosine_similarity(x, y)
        expected = np.array([[]])
        np.testing.assert_array_equal(result, expected)

Frequently Asked Questions

What is the TestCosineSimilarity class?
TestCosineSimilarity is a class in the langchain codebase, defined in libs/core/tests/unit_tests/vectorstores/test_utils.py.
Where is TestCosineSimilarity defined?
TestCosineSimilarity is defined in libs/core/tests/unit_tests/vectorstores/test_utils.py at line 13.

Analyze Your Own Codebase

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

Try Supermodel Free