def test_serialization_unfitted_model(self): # Setup instance = VineCopula('regular') # Run result = VineCopula.from_dict(instance.to_dict()) # Check assert result.to_dict() == instance.to_dict()
def test_serialization_unfitted_model(self): """An unfitted vine can be serialized and deserialized and kept unchanged.""" # Setup instance = VineCopula('regular') # Run result = VineCopula.from_dict(instance.to_dict()) # Check assert result.to_dict() == instance.to_dict()
def test_serialization_fit_model(self): """A fitted vine can be serialized and deserialized and kept unchanged.""" # Setup instance = VineCopula('regular') X = pd.DataFrame(data=[[1, 0, 0], [0, 1, 0], [0, 0, 1]]) instance.fit(X) # Run result = VineCopula.from_dict(instance.to_dict()) # Check compare_nested_dicts(result.to_dict(), instance.to_dict())
def test_serialization_fit_model(self): # Setup instance = VineCopula('regular') X = pd.DataFrame(data=[ [1, 0, 0], [0, 1, 0], [0, 0, 1] ]) instance.fit(X) # Run result = VineCopula.from_dict(instance.to_dict()) # Check compare_nested_dicts(result.to_dict(), instance.to_dict())
def test_from_dict(self): """from_dict creates a new instance from its parameters.""" # Setup vine_dict = { 'type': 'copulas.multivariate.vine.VineCopula', 'vine_type': 'regular', 'fitted': True, 'n_sample': 100, 'n_var': 10, 'depth': 3, 'truncated': 3, 'trees': [{ 'type': 'copulas.multivariate.tree.RegularTree', 'tree_type': 'regular', 'fitted': False }], 'tau_mat': [[0, 1], [1, 0]], 'u_matrix': [[0, 1], [1, 0]], 'unis': [{ 'type': 'copulas.univariate.gaussian_kde.GaussianKDE', 'fitted': False, 'constant_value': None }] } # Run instance = VineCopula.from_dict(vine_dict) # Check assert instance.vine_type == 'regular' assert instance.n_sample == 100 assert instance.n_var == 10 assert instance.depth == 3 assert instance.truncated == 3 assert len(instance.trees) == 1 assert instance.trees[0].to_dict() == Tree('regular').to_dict() assert (instance.tau_mat == np.array([[0, 1], [1, 0]])).all() assert (instance.u_matrix == np.array([[0, 1], [1, 0]])).all()