11from __future__ import annotations
22
33from functools import partial
4+ from importlib .util import find_spec
45from pathlib import Path
56
67import numpy as np
78import pytest
89from matplotlib import cm
10+ from packaging .version import Version
911
1012import scanpy as sc
13+ from scanpy ._compat import pkg_version
1114from testing .scanpy ._helpers .data import pbmc3k_processed , pbmc68k_reduced
1215from testing .scanpy ._pytest .marks import needs
1316
1417HERE : Path = Path (__file__ ).parent
1518ROOT = HERE / "_images"
1619
20+ SKIP_IF_OLD_IGRAPH = pytest .mark .skipif (
21+ not find_spec ("igraph" ) or pkg_version ("igraph" ) < Version ("1" ),
22+ reason = "igraph 0.x has different RNG behavior" ,
23+ )
24+
1725
1826pytestmark = [needs .igraph ]
1927
@@ -32,6 +40,7 @@ def pbmc(pbmc_session):
3240 return pbmc_session .copy ()
3341
3442
43+ @SKIP_IF_OLD_IGRAPH
3544@pytest .mark .parametrize (
3645 ("test_id" , "func" ),
3746 [
@@ -60,14 +69,15 @@ def test_paga_plots(image_comparer, pbmc, test_id, func):
6069 save_and_compare_images (f"paga_{ test_id } " if test_id else "paga" )
6170
6271
72+ @SKIP_IF_OLD_IGRAPH
6373def test_paga_pie (image_comparer , pbmc ) -> None :
6474 save_and_compare_images = partial (image_comparer , ROOT , tol = 30 )
6575
6676 colors = {
67- c : {cm .Set1 (_ ): 0.33 for _ in range (3 )}
77+ c : {cm .Set1 (i ): 0.33 for i in range (3 )}
6878 for c in pbmc .obs ["bulk_labels" ].cat .categories
6979 }
70- colors ["Dendritic" ] = {cm .Set2 (_ ): 0.25 for _ in range (4 )}
80+ colors ["Dendritic" ] = {cm .Set2 (i ): 0.25 for i in range (4 )}
7181
7282 sc .pl .paga (pbmc , color = colors , colorbar = False , show = False )
7383 save_and_compare_images ("paga_pie" )
0 commit comments