|
10 | 10 | DiffDerivative) |
11 | 11 | from devito.symbolics import indexify, retrieve_indexed |
12 | 12 | from devito.types.dimension import StencilDimension |
| 13 | +from devito.warnings import DevitoWarning |
13 | 14 |
|
14 | 15 | _PRECISION = 9 |
15 | 16 |
|
@@ -1160,17 +1161,26 @@ def test_expand_add(self): |
1160 | 1161 | def test_expand_nest(self): |
1161 | 1162 | """ |
1162 | 1163 | Check valid nested derivative expands (combining x derivatives) |
| 1164 | + Note that it is important to specify `fd_order` to avoid raising a warning |
1163 | 1165 | """ |
| 1166 | + a = self.u.dx(fd_order=2) |
| 1167 | + b = a.subs({self.u: -5*self.u.dx(fd_order=2) + 4*self.u + 3}, postprocess=False) |
| 1168 | + expanded = 4*Derivative(self.u, self.x, fd_order=2) \ |
| 1169 | + - 5*Derivative(self.u, (self.x, 2), fd_order=4) |
| 1170 | + assert b.expand(add=True, nest=True) == expanded |
| 1171 | + |
| 1172 | + # Check that doing the naïve thing raises a warning, but asserts equal |
1164 | 1173 | expanded = 4*Derivative(self.u, self.x) - 5*Derivative(self.u, (self.x, 2)) |
1165 | | - assert self.b.expand(add=True, nest=True) == expanded |
| 1174 | + with pytest.warns(DevitoWarning): |
| 1175 | + assert self.b.expand(add=True, nest=True) == expanded |
1166 | 1176 |
|
1167 | 1177 | def test_nested_orders(self): |
1168 | 1178 | """ |
1169 | 1179 | Check nested expansion results in correct derivative and fd order |
1170 | 1180 | """ |
1171 | 1181 | # Default fd_order |
1172 | 1182 | du22 = Derivative(Derivative(self.u, (self.x, 2)), (self.x, 2)) |
1173 | | - with pytest.warns(UserWarning): |
| 1183 | + with pytest.warns(DevitoWarning): |
1174 | 1184 | du22_expanded = du22.expand(nest=True) |
1175 | 1185 | du4 = Derivative(self.u, (self.x, 4)) |
1176 | 1186 | assert du22_expanded == du4 |
|
0 commit comments