[DeferredDict] implement get/items/values for deferreddict
This commit is contained in:
parent
c2ef3e4217
commit
4ae8115139
2 changed files with 33 additions and 2 deletions
|
|
@ -2,7 +2,7 @@ import numpy
|
|||
from numpy.testing import assert_equal, assert_allclose
|
||||
from numpy import pi
|
||||
|
||||
from ..utils import remove_duplicate_vertices, remove_colinear_vertices, poly_contains_points, rotation_matrix_2d, apply_transforms
|
||||
from ..utils import remove_duplicate_vertices, remove_colinear_vertices, poly_contains_points, rotation_matrix_2d, apply_transforms, DeferredDict
|
||||
|
||||
|
||||
def test_remove_duplicate_vertices() -> None:
|
||||
|
|
@ -86,3 +86,21 @@ def test_apply_transforms_advanced() -> None:
|
|||
# 2. rotate by outer rotation (pi/2): (10, 0) -> (0, 10)
|
||||
# 3. add outer offset (0, 0) -> (0, 10)
|
||||
assert_allclose(combined[0], [0, 10, pi / 2, 1, 1], atol=1e-10)
|
||||
|
||||
|
||||
def test_deferred_dict_accessors_resolve_values_once() -> None:
|
||||
calls = 0
|
||||
|
||||
def make_value() -> int:
|
||||
nonlocal calls
|
||||
calls += 1
|
||||
return 7
|
||||
|
||||
deferred = DeferredDict[str, int]()
|
||||
deferred["x"] = make_value
|
||||
|
||||
assert deferred.get("missing", 9) == 9
|
||||
assert deferred.get("x") == 7
|
||||
assert list(deferred.values()) == [7]
|
||||
assert list(deferred.items()) == [("x", 7)]
|
||||
assert calls == 1
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue