Source code for scalr.data.preprocess.test_standard_scale

'''This is a test file for standard-scaler normalization.'''

from sklearn import preprocessing

from scalr.data.preprocess import standard_scale
from scalr.utils import generate_dummy_anndata


[docs] def test_fit(): '''This function tests fit() function of sample-norm normalization. fit() function is enough for testing, as we can compare mean and std with sklean standard-scaler object params. ''' # Creating an annadata object. adata = generate_dummy_anndata(n_samples=100, n_features=25) # Standard scaler required parameters. with_mean = False with_std = True # scalr standard-scale normalization. scalr_std_scaler = standard_scale.StandardScaler(with_mean=with_mean, with_std=with_std) # Required parameter - sample_chunksize to process data in chunks. sample_chunksize = 4 scalr_std_scaler.fit(adata, sample_chunksize=sample_chunksize) # sklearn normalization sklearn_std_scaler = preprocessing.StandardScaler(with_mean=with_mean, with_std=with_std) sklearn_std_scaler.fit(adata.X) # asserts to check the calculated mean and standard deviation, the error should be less than 1e-15. assert sum( abs(scalr_std_scaler.train_mean - sklearn_std_scaler.mean_).flatten() < 1e-15 ) == adata.shape[1], "Train data mean is not correctly calculated..." assert sum( abs(scalr_std_scaler.train_std - sklearn_std_scaler.scale_).flatten() < 1e-15) == adata.shape[ 1], "Train data standard deviation is not correctly calculated..."