Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
130 changes: 96 additions & 34 deletions discretisedfield/tests/test_field.py
Original file line number Diff line number Diff line change
Expand Up @@ -3737,47 +3737,72 @@ def test_k3d(valid_mesh):
f = df.Field(valid_mesh, nvdim=3, value=(1, 1, 1))
if f.mesh.region.ndim != 3:
with pytest.raises(RuntimeError):
f.k3d.vector()
# f.k3d.vector()
plot = k3d.plot()
f.k3d.vector(plot=plot)
else:
f.k3d.vector()
f.x.k3d.scalar()
f.norm.k3d.nonzero()
# f.k3d.vector()
# f.x.k3d.scalar()
# f.norm.k3d.nonzero()
plot = k3d.plot()
f.k3d.vector(plot=plot)

plot = k3d.plot()
f.x.k3d.scalar(plot=plot)

plot = k3d.plot()
f.norm.k3d.nonzero(plot=plot)


def test_k3d_nonzero(test_field):
# Default
test_field.norm.k3d.nonzero()
plot = k3d.plot()
test_field.norm.k3d.nonzero(plot=plot)

# Color
test_field.a.k3d.nonzero(color=0xFF00FF)
plot = k3d.plot()
test_field.a.k3d.nonzero(plot=plot, color=0xFF00FF)

# Multiplier
test_field.b.k3d.nonzero(color=0xFF00FF, multiplier=1e-6)
plot = k3d.plot()
test_field.b.k3d.nonzero(plot=plot, color=0xFF00FF, multiplier=1e-6)

# Interactive field
range_ = (test_field.mesh.region.pmin[2], test_field.mesh.region.pmin[2])

plot = k3d.plot()
test_field.c.sel(z=range_).k3d.nonzero(
color=0xFF00FF, multiplier=1e-6, interactive_field=test_field
plot=plot,
color=0xFF00FF,
multiplier=1e-6,
interactive_field=test_field,
)

# kwargs
plot = k3d.plot()
test_field.a.sel(z=range_).k3d.nonzero(
plot=plot,
color=0xFF00FF,
multiplier=1e-6,
interactive_field=test_field,
wireframe=True,
)

# Plot
# Plot reuse
plot = k3d.plot()
plot.display()
test_field.b.sel(z=range_).k3d.nonzero(
plot=plot, color=0xFF00FF, multiplier=1e-6, interactive_field=test_field
plot=plot,
color=0xFF00FF,
multiplier=1e-6,
interactive_field=test_field,
)

# Continuation for interactive plot testing.
# Continuation for interactive plot testing
test_field.c.sel(z=range_).k3d.nonzero(
plot=plot, color=0xFF00FF, multiplier=1e-6, interactive_field=test_field
plot=plot,
color=0xFF00FF,
multiplier=1e-6,
interactive_field=test_field,
)

assert len(plot.objects) == 2
Expand All @@ -3788,39 +3813,54 @@ def test_k3d_nonzero(test_field):

def test_k3d_scalar(test_field):
# Default
test_field.a.k3d.scalar()
plot = k3d.plot()
test_field.a.k3d.scalar(plot=plot)

# Filter field
test_field.b.k3d.scalar(filter_field=test_field.norm)
plot = k3d.plot()
test_field.b.k3d.scalar(plot=plot, filter_field=test_field.norm)

# Colormap
test_field.c.k3d.scalar(filter_field=test_field.norm, cmap="hsv", color=0xFF00FF)
plot = k3d.plot()
test_field.c.k3d.scalar(
plot=plot,
filter_field=test_field.norm,
cmap="hsv",
color=0xFF00FF,
)

# Multiplier
plot = k3d.plot()
test_field.a.k3d.scalar(
filter_field=test_field.norm, color=0xFF00FF, multiplier=1e-6
plot=plot,
filter_field=test_field.norm,
color=0xFF00FF,
multiplier=1e-6,
)

# Interactive field
plot = k3d.plot()
test_field.b.k3d.scalar(
plot=plot,
filter_field=test_field.norm,
color=0xFF00FF,
multiplier=1e-6,
interactive_field=test_field,
)

# kwargs
plot = k3d.plot()
test_field.c.k3d.scalar(
plot=plot,
filter_field=test_field.norm,
color=0xFF00FF,
multiplier=1e-6,
interactive_field=test_field,
wireframe=True,
)

# Plot
# Plot reuse
plot = k3d.plot()
plot.display()
range_ = (test_field.mesh.region.pmin[2], test_field.mesh.region.pmin[2])
test_field.a.sel(z=range_).k3d.scalar(
plot=plot,
Expand All @@ -3830,7 +3870,7 @@ def test_k3d_scalar(test_field):
interactive_field=test_field,
)

# Continuation for interactive plot testing.
# Continuation for interactive plot testing
test_field.b.sel(z=range_).k3d.scalar(
plot=plot,
filter_field=test_field.norm,
Expand All @@ -3845,29 +3885,41 @@ def test_k3d_scalar(test_field):
with pytest.raises(ValueError):
test_field.k3d.scalar()
with pytest.raises(ValueError):
test_field.c.k3d.scalar(filter_field=test_field) # filter field nvdim=3
plot = k3d.plot()
test_field.c.k3d.scalar(
plot=plot, filter_field=test_field
) # filter field nvdim=3


def test_k3d_vector(test_field):
# Default
test_field.k3d.vector()
plot = k3d.plot()
test_field.k3d.vector(plot=plot)

# Color field
test_field.k3d.vector(color_field=test_field.a)
plot = k3d.plot()
test_field.k3d.vector(plot=plot, color_field=test_field.a)

# Colormap
test_field.k3d.vector(color_field=test_field.norm, cmap="hsv")
plot = k3d.plot()
test_field.k3d.vector(plot=plot, color_field=test_field.norm, cmap="hsv")

# Head size
test_field.k3d.vector(color_field=test_field.norm, cmap="hsv", head_size=3)
plot = k3d.plot()
test_field.k3d.vector(
plot=plot, color_field=test_field.norm, cmap="hsv", head_size=3
)

# Points
plot = k3d.plot()
test_field.k3d.vector(
color_field=test_field.norm, cmap="hsv", head_size=3, points=False
plot=plot, color_field=test_field.norm, cmap="hsv", head_size=3, points=False
)

# Point size
plot = k3d.plot()
test_field.k3d.vector(
plot=plot,
color_field=test_field.norm,
cmap="hsv",
head_size=3,
Expand All @@ -3876,7 +3928,9 @@ def test_k3d_vector(test_field):
)

# Vector multiplier
plot = k3d.plot()
test_field.k3d.vector(
plot=plot,
color_field=test_field.norm,
cmap="hsv",
head_size=3,
Expand All @@ -3886,7 +3940,9 @@ def test_k3d_vector(test_field):
)

# Multiplier
plot = k3d.plot()
test_field.k3d.vector(
plot=plot,
color_field=test_field.norm,
cmap="hsv",
head_size=3,
Expand All @@ -3897,8 +3953,10 @@ def test_k3d_vector(test_field):
)

# Interactive field
plot = k3d.plot()
range_ = (test_field.mesh.region.pmin[2], test_field.mesh.region.pmin[2])
test_field.sel(z=range_).k3d.vector(
plot=plot,
color_field=test_field.norm,
cmap="hsv",
head_size=3,
Expand All @@ -3909,12 +3967,11 @@ def test_k3d_vector(test_field):
interactive_field=test_field,
)

# Plot
# Plot reuse
plot = k3d.plot()
plot.display()
test_field.sel(z=range_).k3d.vector(plot=plot, interactive_field=test_field)

# Continuation for interactive plot testing.
# Continuation for interactive plot testing
test_field.sel(z=range_).k3d.vector(plot=plot, interactive_field=test_field)

assert len(plot.objects) == 3
Expand All @@ -3923,7 +3980,8 @@ def test_k3d_vector(test_field):
with pytest.raises(ValueError):
test_field.a.k3d.vector()
with pytest.raises(ValueError):
test_field.k3d.vector(color_field=test_field) # filter field nvdim=3
plot = k3d.plot()
test_field.k3d.vector(plot=plot, color_field=test_field) # color field nvdim=3


def test_plot_large_sample():
Expand All @@ -3934,10 +3992,14 @@ def test_plot_large_sample():
value = (1e6, 1e6, 1e6)
field = df.Field(mesh, nvdim=3, value=value)

field.sel("z").mpl()
field.norm.k3d.nonzero()
field.x.k3d.scalar()
field.k3d.vector()
plot = k3d.plot()
field.norm.k3d.nonzero(plot=plot)

plot = k3d.plot()
field.x.k3d.scalar(plot=plot)

plot = k3d.plot()
field.k3d.vector(plot=plot)


@pytest.mark.pyvista
Expand Down
13 changes: 9 additions & 4 deletions discretisedfield/tests/test_mesh.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
import types

import ipywidgets
import k3d
import matplotlib.pyplot as plt
import numpy as np
import pytest
Expand Down Expand Up @@ -1305,10 +1306,13 @@ def test_mpl(valid_mesh, tmp_path):
def test_k3d(valid_mesh):
if valid_mesh.region.ndim != 3:
with pytest.raises(RuntimeError):
valid_mesh.k3d()
plot = k3d.plot()
valid_mesh.k3d(plot=plot)
else:
valid_mesh.k3d()
valid_mesh.sel(x=(0, 1e-9)).k3d()
plot = k3d.plot()
valid_mesh.k3d(plot=plot)
plot = k3d.plot()
valid_mesh.sel(x=(0, 1e-9)).k3d(plot=plot)


def test_k3d_mpl_subregions(tmp_path):
Expand All @@ -1334,7 +1338,8 @@ def test_k3d_mpl_subregions(tmp_path):
plt.close("all")

# k3d tests
mesh.k3d.subregions()
plot = k3d.plot()
mesh.k3d.subregions(plot=plot)


@pytest.mark.pyvista
Expand Down
7 changes: 5 additions & 2 deletions discretisedfield/tests/test_region.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import re

import k3d
import matplotlib.pyplot as plt
import numpy as np
import pytest
Expand Down Expand Up @@ -916,8 +917,10 @@ def test_k3d(p1, p2):
region.k3d()
else:
# Check if runs.
region.k3d()
region.k3d(multiplier=1e9, color=plot_util.cp_int[3], wireframe=True)
plot = k3d.plot()
region.k3d(plot=plot)
plot = k3d.plot()
region.k3d(plot=plot, multiplier=1e9, color=plot_util.cp_int[3], wireframe=True)


@pytest.mark.parametrize(
Expand Down
Loading