def METHOD_NAME(self):
    def ecdf(X):
        """Calculated the empirical CDF of a given dataset using the statsmodels function.
        Parameters
        ----------
        X : numpy array of shape (n_samples, n_features)
            The training dataset.
        Returns
        -------
        ecdf(X) : float
            Empirical CDF of X
        """
        ecdf = statsmodels.distributions.ECDF(X)
        return ecdf(X)
    # run a test case that has equal elements per feature column to show also
    # this highly unlikely case works
    mat = np.array([[1, 1, 1], [1, 1, 1], [1, 1, 1], [2, 2, 2]])
    assert_equal(column_ecdf(mat), np.apply_along_axis(ecdf, 0, mat))
    # run the models multiple times for random matrices
    new = []
    old = []
    for _ in range(50):
        # create random matrix for testing
        mat = np.random.rand(1000, 100)
        # execute and measure the time of our own function
        t = time.time()
        result = column_ecdf(mat)
        new.append(time.time() - t)
        # execute the statsmodels function and measure execution time
        t = time.time()
        expected = np.apply_along_axis(ecdf, 0, mat)
        old.append(time.time() - t)
        # check that the results are equal
        assert_equal(result, expected)
    #
    # print(f'Statsmodels ECDF took {sum(old) / len(old) * 1000:0.1f} ms '
    #       f'and own implementation {sum(new) / len(new) * 1000:0.1f} ms per run.')