def test_nested_dict(self): data = { 'a': [123.45678, 987.65432], 'b': { 'c': 918.27364, }, } self.assertEqual(round_values(data, 3), { 'a': [123.457, 987.654], 'b': { 'c': 918.274, }, })
def test_supplementary_rows(self): result = calculate_correspondence(self.data, sup_rows=[0]) self.assertEqual(round_values(result, 5), { 'rows': [ [-0.11294], [-0.03178], [0.03607], ], 'cols': [ [-0.21713], [0.00664], [0.00229], ], 'rows_quality': [0, 1, 1], 'cols_quality': [0, 1, 1], 'explained': [100], 'eigenvalues': [0.00115], })
def test_calculate(self): result = calculate_correspondence(self.data) self.assertEqual(round_values(result, 5), { 'rows': [ [0.27539, 0.00007], [-0.29768, -0.00287], [-0.32938, 0.00309] ], 'cols': [ [0.75216, -0.00189], [-0.18241, -0.0013], [0.03872, 0.00293] ], 'rows_quality': [1, 1, 1], 'cols_quality': [1, 1, 1], 'explained': [99.99519, 0.00481], 'eigenvalues': [0.08618, 0.0], })
def test_additive(self): data = [112, 118, 132, 129, 121, 135, 148, 148, 136, 119] result = calculate_decomposition(data, model=MODEL_ADDITIVE, frequency=2) self.assertEqual( round_values(result, 5), { 'trend': [ 113.23796, 119.27023, 124.51453, 127.54782, 130.97659, 135.84682, 140.63997, 140.27748, 132.71615, 124.02202, ], 'seasonal': [ 0.48792, -0.48792, 0.48792, -0.48792, 0.48792, -0.48792, 0.48792, -0.48792, 0.48792, -0.48792, ], 'resid': [ -1.72587, -0.78231, 6.99755, 1.94009, -10.4645, -0.3589, 6.87211, 8.21044, 2.79593, -4.53411, ], })
def test_multiplicative(self): data = [112, 118, 132, 129, 121, 135, 148, 148, 136, 119] result = calculate_decomposition(data, model=MODEL_MULTIPLICATIVE, frequency=2) self.assertEqual( round_values(result, 5), { 'trend': [ 113.2614, 119.02965, 124.29212, 127.37158, 130.72409, 135.43867, 140.47552, 140.09061, 132.2408, 123.82395, ], 'seasonal': [ 1.0036, 0.99641, 1.0036, 0.99641, 1.0036, 0.99641, 1.0036, 0.99641, 1.0036, 0.99641, ], 'resid': [ 0.98532, 0.99492, 1.05821, 1.01643, 0.92229, 1.00035, 1.04979, 1.06026, 1.02474, 0.9645, ], })
def test_supplementary_cols(self): result = calculate_correspondence(self.data, sup_cols=[0]) self.assertEqual(round_values(result, 5), { 'rows': [ [0.11055], [-0.10065], [-0.10456], ], 'cols': [ [0.60711], [-0.08105], [0.13983], ], 'rows_quality': [1, 1, 1], 'cols_quality': [1, 1, 1], 'explained': [100], 'eigenvalues': [0.01133], } )
def test_value(self): data = 123.45678 self.assertEqual(round_values(data, 3), 123.457)
def test_list(self): data = [123.45678, 987.65432] self.assertEqual(round_values(data, 3), [123.457, 987.654])