diff --git a/discretisedfield/line.py b/discretisedfield/line.py index 96803576..2a84c9b1 100644 --- a/discretisedfield/line.py +++ b/discretisedfield/line.py @@ -170,7 +170,7 @@ def point_columns(self): @point_columns.setter def point_columns(self, val): - if len(val) != 3: + if len(val) != len(self._point_columns): msg = f"Cannot change column names with a list of lenght {len(val)}." raise ValueError(msg) diff --git a/discretisedfield/mesh.py b/discretisedfield/mesh.py index b06c3b80..95c6bf71 100644 --- a/discretisedfield/mesh.py +++ b/discretisedfield/mesh.py @@ -1546,7 +1546,7 @@ def dV(self): 8.0 """ - return np.product(self.cell) + return np.prod(self.cell) def scale(self, factor, reference_point=None, inplace=False): """Scale the underlying region and all subregions. diff --git a/discretisedfield/tests/test_interact.py b/discretisedfield/tests/test_interact.py index 55a883c2..9bea5135 100644 --- a/discretisedfield/tests/test_interact.py +++ b/discretisedfield/tests/test_interact.py @@ -11,4 +11,4 @@ def test_interact(): # Only test whether it runs. @df.interact(x=field.mesh.slider("x")) def myplot(x): - field.plane(x=x).mpl() + field.sel(x=x).mpl() diff --git a/discretisedfield/tools/tools.py b/discretisedfield/tools/tools.py index 5f9053f3..fc601778 100644 --- a/discretisedfield/tools/tools.py +++ b/discretisedfield/tools/tools.py @@ -273,9 +273,17 @@ def topological_charge(field, /, method="continuous", absolute=False): q = topological_charge_density(field, method=method) if absolute: - return float(abs(q).integrate()) + result = abs(q).integrate() + if isinstance(result, np.ndarray) and result.size == 1: + result = result.item() + assert np.isscalar(result), "Expected a scalar result from integration" + return float(result) else: - return float(q.integrate()) + result = q.integrate() + if isinstance(result, np.ndarray) and result.size == 1: + result = result.item() + assert np.isscalar(result), "Expected a scalar result from integration" + return float(result) def emergent_magnetic_field(field): diff --git a/pytest.ini b/pytest.ini new file mode 100644 index 00000000..7b497deb --- /dev/null +++ b/pytest.ini @@ -0,0 +1,9 @@ +[pytest] +python_files = test_*.py +python_functions = test_* +filterwarnings = + ignore::DeprecationWarning:traitlets.*: + #ignore:Automatic coloring is only supported for 3d fields.*:UserWarning + ignore:The truth value of an empty array is ambiguous.*:DeprecationWarning + ignore:invalid value encountered in divide:RuntimeWarning + ignore:`ipykernel.pylab.backend_inline` is deprecated.*:DeprecationWarning