mirror of
https://github.com/pybind/pybind11.git
synced 2025-01-30 23:02:37 +00:00
38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
|
from __future__ import annotations
|
||
|
|
||
|
from typing import TYPE_CHECKING, Sequence
|
||
|
|
||
|
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: 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)
|