| from __future__ import annotations | |
| from collections.abc import Sequence | |
| from typing import TYPE_CHECKING | |
| if TYPE_CHECKING: | |
| from conftest import SanitizedString | |
| from pybind11_tests import docs_advanced_cast_custom as m | |
| def assert_negate_function( | |
| input_sequence: Sequence[float], | |
| target: tuple[float, float], | |
| ) -> None: | |
| output = m.negate(input_sequence) | |
| assert isinstance(output, tuple) | |
| assert len(output) == 2 | |
| assert isinstance(output[0], float) | |
| assert isinstance(output[1], float) | |
| assert output == target | |
| def test_negate(doc: SanitizedString) -> None: | |
| assert ( | |
| doc(m.negate) | |
| == "negate(arg0: collections.abc.Sequence[float]) -> tuple[float, float]" | |
| ) | |
| assert_negate_function([1.0, -1.0], (-1.0, 1.0)) | |
| assert_negate_function((1.0, -1.0), (-1.0, 1.0)) | |
| assert_negate_function([1, -1], (-1.0, 1.0)) | |
| assert_negate_function((1, -1), (-1.0, 1.0)) | |
| def test_docs() -> None: | |
| ########################################################################### | |
| # PLEASE UPDATE docs/advanced/cast/custom.rst IF ANY CHANGES ARE MADE HERE. | |
| ########################################################################### | |
| point1 = [1.0, -1.0] | |
| point2 = m.negate(point1) | |
| assert point2 == (-1.0, 1.0) |