Source code for pymcr.tests.test_condition

""" Test data conditioning """
import numpy as np

from numpy.testing import (assert_equal, assert_array_equal,
                           assert_allclose)

from pymcr.condition import (standardize)

[docs]def test_scale(): """ Test data standardization """ A = np.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) A_sub_mean_ax0 = np.array([[-1.5, -1.5, -1.5], [1.5, 1.5, 1.5]]) A_sub_mean_ax1 = np.array([[-1.0, 0.0, 1.0], [-1.0, 0.0, 1.0]]) A_just_std_ax0 = np.array([[0.66666667, 1.33333333, 2.0], [2.66666667, 3.33333333, 4.0]]) A_just_std_ax1 = np.array([[1.22474487, 2.44948974, 3.67423461], [4.89897949, 6.12372436, 7.34846923]]) A_standardized_ax0 = np.array([[-1.0, -1.0, -1.0], [1.0, 1.0, 1.0]]) A_standardized_ax1 = np.array([[-1.22474487, 0.0, 1.22474487], [-1.22474487, 0.0, 1.22474487]]) # MEAN-CENTER, COPY, AXIS=0 out = standardize(A, mean_ctr=True, with_std=False, axis=0, copy=True) assert_allclose(out, A_sub_mean_ax0) # MEAN-CENTER, COPY, AXIS=1 out = standardize(A, mean_ctr=True, with_std=False, axis=1, copy=True) assert_allclose(out, A_sub_mean_ax1) # STD-NORM, COPY, AXIS=0 out = standardize(A, mean_ctr=False, with_std=True, axis=0, copy=True) assert_allclose(out, A_just_std_ax0) # STD-NORM, COPY, AXIS=1 out = standardize(A, mean_ctr=False, with_std=True, axis=1, copy=True) assert_allclose(out, A_just_std_ax1) # FULL STANDARDIZE, COPY, AXIS=0 out = standardize(A, mean_ctr=True, with_std=True, axis=0, copy=True) assert_allclose(out, A_standardized_ax0) # FULL STANDARDIZE, COPY, AXIS=1 out = standardize(A, mean_ctr=True, with_std=True, axis=1, copy=True) assert_allclose(out, A_standardized_ax1) # OVERWRITE VARIANTS # MEAN-CENTER, OVERWRITE, AXIS=0 A = np.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) _ = standardize(A, mean_ctr=True, with_std=False, axis=0, copy=False) assert_allclose(A, A_sub_mean_ax0) # MEAN-CENTER, OVERWRITE, AXIS=1 A = np.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) _ = standardize(A, mean_ctr=True, with_std=False, axis=1, copy=False) assert_allclose(A, A_sub_mean_ax1) # STD-NORM, OVERWRITE, AXIS=0 A = np.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) _ = standardize(A, mean_ctr=False, with_std=True, axis=0, copy=False) assert_allclose(A, A_just_std_ax0) # STD-NORM, OVERWRITE, AXIS=1 A = np.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) _ = standardize(A, mean_ctr=False, with_std=True, axis=1, copy=False) assert_allclose(A, A_just_std_ax1) # FULL STANDARDIZE, OVERWRITE, AXIS=0 A = np.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) _ = standardize(A, mean_ctr=True, with_std=True, axis=0, copy=False) assert_allclose(A, A_standardized_ax0) # FULL STANDARDIZE, OVERWRITE, AXIS=1 A = np.array([[1.0, 2.0, 3.0], [4.0, 5.0, 6.0]]) _ = standardize(A, mean_ctr=True, with_std=True, axis=1, copy=False) assert_allclose(A, A_standardized_ax1)