def test_run_do_not_modify_model_inplace(self): state = Mock() state.is_interruption_requested.return_value = True task = Task(data=self.data, perplexity=30, multiscale=False, exaggeration=1) # Run through all the steps to prepare the t-SNE object task.tsne = prepare_tsne_obj(task.data, task.perplexity, task.multiscale, task.exaggeration) TSNERunner.compute_pca(task, state) TSNERunner.compute_initialization(task, state) TSNERunner.compute_affinities(task, state) # Run the t-SNE iteration once to create the object TSNERunner.compute_tsne(task, state) # Make sure that running t-SNE for another iteration returns a new object tsne_obj_before = task.tsne_embedding state.reset_mock() TSNERunner.compute_tsne(task, state) tsne_obj_after = task.tsne_embedding state.set_partial_result.assert_called_once() self.assertIsNot(tsne_obj_before, tsne_obj_after)
def test_run_do_not_modify_model_inplace(self): state = Mock() state.is_interruption_requested.return_value = True task = Task(data=self.data, perplexity=30, multiscale=False, exaggeration=1) # Run through all the steps to prepare the t-SNE object task.tsne = prepare_tsne_obj( task.data, task.perplexity, task.multiscale, task.exaggeration ) TSNERunner.compute_pca(task, state) TSNERunner.compute_initialization(task, state) TSNERunner.compute_affinities(task, state) # Run the t-SNE iteration once to create the object TSNERunner.compute_tsne(task, state) # Make sure that running t-SNE for another iteration returns a new object tsne_obj_before = task.tsne_embedding state.reset_mock() TSNERunner.compute_tsne(task, state) tsne_obj_after = task.tsne_embedding state.set_partial_result.assert_called_once() self.assertIsNot(tsne_obj_before, tsne_obj_after)