def METHOD_NAME(self):
    # train model #1
    metric = Metric({"name": "logloss"})
    cat = CatBoostAlgorithm(self.params)
    cat.fit(self.X, self.y)
    y_predicted = cat.predict(self.X)
    loss = metric(self.y, y_predicted)
    # create model #2
    cat2 = CatBoostAlgorithm(self.params)
    # model #2 is initialized in constructor
    self.assertTrue(cat2.model is not None)
    # do a copy and use it for predictions
    cat2 = cat.copy()
    self.assertEqual(type(cat), type(cat2))
    y_predicted = cat2.predict(self.X)
    loss2 = metric(self.y, y_predicted)
    self.assertEqual(loss, loss2)