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)
def test_run(self): state = Mock() state.is_interruption_requested = Mock(return_value=False) task = TSNERunner.run(Task(data=self.data, perplexity=30), state) self.assertEqual(len(state.set_status.mock_calls), 4) state.set_status.assert_has_calls([ call("Computing PCA..."), call("Preparing initialization..."), call("Finding nearest neighbors..."), call("Running optimization..."), ]) self.assertIsInstance(task.pca_projection, Table) self.assertIsInstance(task.tsne, TSNE) self.assertIsInstance(task.tsne_embedding, TSNEModel)