Skip to content

Commit 50f6030

Browse files
committed
Use st.shared
1 parent d933be3 commit 50f6030

File tree

1 file changed

+13
-6
lines changed

1 file changed

+13
-6
lines changed

properties/test_index_manipulation.py

+13-6
Original file line numberDiff line numberDiff line change
@@ -58,9 +58,9 @@ def unique(draw, strategy):
5858

5959
random.seed(123456)
6060

61-
# Share to ensure we get unique names on each draw?
62-
UNIQUE_NAME = unique(strategy=xrst.names())
63-
DIM_NAME = xrst.dimension_names(name_strategy=UNIQUE_NAME, min_dims=1, max_dims=1)
61+
# This strategy will be shared to ensure we get unique names on each draw.
62+
# So we don't rename to an already present dimension name, for example.
63+
unique_names = unique(strategy=xrst.names())
6464

6565

6666
class DatasetStateMachine(RuleBasedStateMachine):
@@ -72,7 +72,14 @@ def __init__(self):
7272
self.dataset = Dataset()
7373
self.check_default_indexes = True
7474

75-
@rule(var=xrst.index_variables(dims=DIM_NAME), target=indexed_dims)
75+
@rule(
76+
var=xrst.index_variables(
77+
dims=xrst.dimension_names(
78+
name_strategy=st.shared(unique_names), min_dims=1, max_dims=1
79+
)
80+
),
81+
target=indexed_dims,
82+
)
7683
def add_dim_coord(self, var):
7784
(name,) = var.dims
7885
# dim coord
@@ -88,7 +95,7 @@ def reset_index(self, dim):
8895
self.dataset = self.dataset.reset_index(dim)
8996

9097
@rule(
91-
newname=UNIQUE_NAME,
98+
newname=st.shared(unique_names),
9299
oldnames=st.lists(consumes(indexed_dims), min_size=1, unique=True),
93100
target=multi_indexed_dims,
94101
)
@@ -111,7 +118,7 @@ def unstack(self, dim):
111118
# TODO Fix this when adding st.none()
112119
return multiple()
113120

114-
@rule(newname=UNIQUE_NAME, oldname=consumes(indexed_dims))
121+
@rule(newname=st.shared(unique_names), oldname=consumes(indexed_dims))
115122
def rename_vars(self, newname, oldname):
116123
# benbovy: "skip the default indexes invariant test when the name of an
117124
# existing dimension coordinate is passed as input kwarg or dict key

0 commit comments

Comments
 (0)