MCPcopy
hub / github.com/pydata/xarray / test_eval_chained_comparisons

Function test_eval_chained_comparisons

xarray/tests/test_eval.py:97–118  ·  view source on GitHub ↗

Test that chained comparisons are transformed for query() consistency. Chained comparisons like 'a < b < c' are transformed to '(a < b) & (b < c)' to match pd.eval() behavior, which query() uses.

()

Source from the content-addressed store, hash-verified

95
96
97def test_eval_chained_comparisons() -> None:
98 """Test that chained comparisons are transformed for query() consistency.
99
100 Chained comparisons like 'a < b < c' are transformed to '(a < b) & (b < c)'
101 to match pd.eval() behavior, which query() uses.
102 """
103 ds = Dataset({"x": ("dim", np.arange(10))})
104
105 # Basic chained comparison: 2 < x < 7
106 actual = ds.eval("2 < x < 7")
107 expect = (ds["x"] > 2) & (ds["x"] < 7)
108 assert_identical(expect, actual)
109
110 # Mixed operators: 0 <= x < 5
111 actual = ds.eval("0 <= x < 5")
112 expect = (ds["x"] >= 0) & (ds["x"] < 5)
113 assert_identical(expect, actual)
114
115 # Explicit bitwise operators also work
116 actual = ds.eval("(x > 2) & (x < 7)")
117 expect = (ds["x"] > 2) & (ds["x"] < 7)
118 assert_identical(expect, actual)
119
120
121def test_eval_restricted_syntax() -> None:

Callers

nothing calls this directly

Calls 4

evalMethod · 0.95
DatasetClass · 0.90
assert_identicalFunction · 0.90
arangeMethod · 0.80

Tested by

no test coverage detected

Used in the wild real call sites across dependent graphs

searching dependent graphs…