@@ -1066,6 +1066,27 @@ def test_eval_item(array_fixture):
10661066 np .testing .assert_allclose (res [()], nres [0 :10 :2 ])
10671067
10681068
1069+ # Test stringeval with a slice
1070+ def test_stringeval_slice (array_fixture ):
1071+ a1 , a2 , a3 , a4 , na1 , na2 , na3 , na4 = array_fixture
1072+ expr = blosc2 .lazyexpr ("a1 + a2 - (a3 * a4)" , operands = {"a1" : a1 , "a2" : a2 , "a3" : a3 , "a4" : a4 })
1073+ nres = ne_evaluate ("na1 + na2 - (na3 * na4)" )[:2 ]
1074+ res = expr .slice (slice (0 , 2 ))
1075+ assert isinstance (res , blosc2 .ndarray .NDArray )
1076+ np .testing .assert_allclose (res [:], nres )
1077+ res = expr [:2 ]
1078+ assert isinstance (res , np .ndarray )
1079+ np .testing .assert_allclose (res , nres )
1080+
1081+ expr1 = blosc2 .lazyexpr ("a1 * a2" , operands = {"a1" : a1 , "a2" : a2 })
1082+ expr2 = blosc2 .lazyexpr ("expr1[:2] + a3[:2]" )
1083+ nres = ne_evaluate ("(na1 * na2) + na3" )[:2 ]
1084+ assert isinstance (expr2 , blosc2 .LazyExpr )
1085+ res = expr2 .compute ()
1086+ assert isinstance (res , blosc2 .ndarray .NDArray )
1087+ np .testing .assert_allclose (res [()], nres )
1088+
1089+
10691090# Test get_chunk method
10701091@pytest .mark .heavy
10711092def test_get_chunk (array_fixture ):
0 commit comments