def test_pca__raise_on_incompatible_chunking(sample_dataset): ds = sample_dataset.assign(call_alternate_allele_count=lambda ds: ds[ "call_alternate_allele_count"].chunk((2, 2))) with pytest.raises( ValueError, match= "PCA can only be performed on arrays chunked in 2 dimensions if algorithm='randomized'", ): pca.pca_est(ds, n_components=2, algorithm="tsqr")
def test_pca__raise_on_invalid_algorithm(sample_dataset): with pytest.raises( ValueError, match=r"`algorithm` must be one of \['tsqr', 'randomized'\]" ): pca.pca_est(sample_dataset, n_components=2, algorithm="unknown") # type: ignore[arg-type]
def test_pca__raise_on_invalid_scaler(sample_dataset): with pytest.raises(ValueError, match="Only 'patterson' scaler currently supported"): pca.pca_est(sample_dataset, n_components=2, scaler="unknown")
def test_pca__raise_on_no_ploidy(sample_dataset): with pytest.raises(ValueError, match="`ploidy` must be specified explicitly"): pca.pca_est(sample_dataset.drop_dims("ploidy"), n_components=2, ploidy=None)