def test__transform_to_normal_numpy_1d(self): # Setup gm = GaussianMultivariate() dist_a = Mock() dist_a.cdf.return_value = np.array([0]) dist_b = Mock() dist_b.cdf.return_value = np.array([0.3]) gm.columns = ['a', 'b'] gm.univariates = [dist_a, dist_b] # Run data = np.array([ [3, 5], ]) returned = gm._transform_to_normal(data) # Check # Failures may occurr on different cpytonn implementations # with different float precision values. # If that happens, atol might need to be increased expected = np.array([ [-5.166579, -0.524401], ]) np.testing.assert_allclose(returned, expected, atol=1e-6) assert dist_a.cdf.call_count == 1 expected = np.array([3]) passed = dist_a.cdf.call_args[0][0] np.testing.assert_allclose(expected, passed) assert dist_b.cdf.call_count == 1 expected = np.array([5]) passed = dist_b.cdf.call_args[0][0] np.testing.assert_allclose(expected, passed)
def test__transform_to_normal_dataframe(self): # Setup gm = GaussianMultivariate() dist_a = Mock() dist_a.cdf.return_value = np.array([0, 0.5, 1]) dist_b = Mock() dist_b.cdf.return_value = np.array([0.3, 0.5, 0.7]) gm.distribs = OrderedDict(( ('a', dist_a), ('b', dist_b), )) # Run data = pd.DataFrame({'a': [3, 4, 5], 'b': [5, 6, 7]}) returned = gm._transform_to_normal(data) # Check # Failures may occurr on different cpytonn implementations # with different float precision values. # If that happens, atol might need to be increased expected = np.array([[-5.166579, -0.524401], [0.0, 0.0], [5.166579, 0.524401]]) np.testing.assert_allclose(returned, expected, atol=1e-6) assert dist_a.cdf.call_count == 1 expected = np.array([3, 4, 5]) passed = dist_a.cdf.call_args[0][0] np.testing.assert_allclose(expected, passed) assert dist_b.cdf.call_count == 1 expected = np.array([5, 6, 7]) passed = dist_b.cdf.call_args[0][0] np.testing.assert_allclose(expected, passed)