1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54
|
import numpy as np
import pytest
import umap
from unittest import mock
np.random.seed(42)
@pytest.fixture(scope="session")
def mapper(iris):
return umap.UMAP(n_epochs=100).fit(iris.data)
def test_umap_plot_dependency():
with mock.patch.dict("sys.modules", pandas=mock.MagicMock()):
try:
from umap import plot
except ImportError:
assert True
else:
assert False, "Exception not raised for missing dependency"
# Check that the environment is actually setup for testability
# i.e. all the extra packages have been installed
@pytest.mark.xfail(run=False)
def test_umap_plot_testability():
try:
from umap import plot
assert True
except ImportError:
assert False, "Missing dependencies - unable to test!"
# These tests requires revision: Refactoring is
# needed as there is no assertion nor
# property verification.
@pytest.mark.xfail(run=False)
def test_plot_runs_at_all(mapper, iris):
from umap import plot as umap_plot
umap_plot.points(mapper)
umap_plot.points(mapper, labels=iris.target)
umap_plot.points(mapper, values=iris.data[:, 0])
umap_plot.points(mapper, theme="fire")
umap_plot.diagnostic(mapper, diagnostic_type="all")
umap_plot.diagnostic(mapper, diagnostic_type="neighborhood")
umap_plot.connectivity(mapper)
umap_plot.interactive(mapper)
umap_plot.interactive(mapper, labels=iris.target)
umap_plot.interactive(mapper, values=iris.data[:, 0])
umap_plot.interactive(mapper, theme="fire")
umap_plot._datashade_points(mapper.embedding_)
|