"""Tests for beta estimation.""" import numpy as np import pytest def test_estimate_beta(preprocessed_adata): import scptr scptr.tl.estimate_beta(preprocessed_adata) assert "beta" in preprocessed_adata.var.columns beta = preprocessed_adata.var["beta"].values assert beta.dtype == np.float32 assert len(beta) == preprocessed_adata.n_vars assert np.all(beta >= 0) assert "estimate_beta" in preprocessed_adata.uns["scptr"] def test_estimate_beta_quantile(preprocessed_adata): import scptr scptr.tl.estimate_beta(preprocessed_adata, quantile=0.90) beta_90 = preprocessed_adata.var["beta"].values.copy() scptr.tl.estimate_beta(preprocessed_adata, quantile=0.99) beta_99 = preprocessed_adata.var["beta"].values.copy() # Higher quantile should give higher or equal beta assert np.all(beta_99 >= beta_90 - 1e-6)