def _test_null_distribution_basic(self, test: str, lazy: bool, quick_scale: bool=False, n_cells: int=3000, n_genes: int=200, n_groups: int=3):
    '\n        Test if de.wald() generates a uniform p-value distribution\n        if it is given data simulated based on the null model. Returns the p-value\n        of the two-side Kolmgorov-Smirnov test for equality of the observed \n        p-value distriubution and a uniform distribution.\n\n        :param n_cells: Number of cells to simulate (number of observations per test).\n        :param n_genes: Number of genes to simulate (number of tests).\n        '
    (sim, sample_description) = self._prepate_data(n_cells=n_cells, n_genes=n_genes, n_groups=n_groups)
    test = de.test.pairwise(data=sim.input_data, sample_description=sample_description, grouping='condition', test=test, lazy=lazy, quick_scale=quick_scale, noise_model=self.noise_model)
    _ = test.summary()
    if lazy:
        pval_h0 = stats.kstest(test.pval_pairs(groups0=0, groups1=1).flatten(), 'uniform').pvalue
    else:
        pval_h0 = stats.kstest(test.pval[0, 1, :].flatten(), 'uniform').pvalue
    logging.getLogger('diffxpy').info(('KS-test pvalue for null model match of wald(): %f' % pval_h0))
    assert (pval_h0 > 0.05), ('KS-Test failed: pval_h0=%f is <= 0.05!' % np.round(pval_h0, 5))
    return True
Test if de.wald() generates a uniform p-value distribution
if it is given data simulated based on the null model. Returns the p-value
of the two-side Kolmgorov-Smirnov test for equality of the observed 
p-value distriubution and a uniform distribution.

:param n_cells: Number of cells to simulate (number of observations per test).
:param n_genes: Number of genes to simulate (number of tests).
def _test_null_distribution_basic(self, test: str, lazy: bool, quick_scale: bool=False, n_cells: int=3000, n_genes: int=200, n_groups: int=3):
    '\n        Test if de.wald() generates a uniform p-value distribution\n        if it is given data simulated based on the null model. Returns the p-value\n        of the two-side Kolmgorov-Smirnov test for equality of the observed \n        p-value distriubution and a uniform distribution.\n\n        :param n_cells: Number of cells to simulate (number of observations per test).\n        :param n_genes: Number of genes to simulate (number of tests).\n        '
    (sim, sample_description) = self._prepate_data(n_cells=n_cells, n_genes=n_genes, n_groups=n_groups)
    test = de.test.pairwise(data=sim.input_data, sample_description=sample_description, grouping='condition', test=test, lazy=lazy, quick_scale=quick_scale, noise_model=self.noise_model)
    _ = test.summary()
    if lazy:
        pval_h0 = stats.kstest(test.pval_pairs(groups0=0, groups1=1).flatten(), 'uniform').pvalue
    else:
        pval_h0 = stats.kstest(test.pval[0, 1, :].flatten(), 'uniform').pvalue
    logging.getLogger('diffxpy').info(('KS-test pvalue for null model match of wald(): %f' % pval_h0))
    assert (pval_h0 > 0.05), ('KS-Test failed: pval_h0=%f is <= 0.05!' % np.round(pval_h0, 5))
    return True