def test_before_commit(self): state = State(self.state_value, self.p) token = Token(45.3, []) state.pass_token(token) self.assertEqual(Token(state.infinite_score, []), state.token)
class TokenDeepCopyTests(TokenBaseTests): def setUp(self): super().setUp() self.history_copy = list(self.history) self.words_copy = list(self.words) self.token = Token(self.score, self.history_copy, self.words_copy ) def modify_token_content(self, token): token.history.append(40) token.words.append(3) def did_not_changed(self): self.assertEqual(self.history, self.history_copy) self.assertEqual(self.words, self.words_copy) def test_update_score_create_deep_copy(self): token = self.token.update_score(10) self.modify_token_content(token) self.did_not_changed() def test_update_history_create_deep_copy(self): token = self.token.update_history(10) self.modify_token_content(token) self.did_not_changed() def test_update_words_create_deep_copy(self): token = self.token.update_words(10) self.modify_token_content(token) self.did_not_changed()
def test_commit_without_passing_token(self): state = State(self.state_value, self.p) token = Token(45.3, [30]) state.pass_token(token) state.commit() state.commit() self.assertEqual(Token(state.infinite_score, []), state.token)
def test_pass_token_with_transit_cost(self): state = State(self.state_value, self.p) local_cost = state.local_cost() token = Token(45.3, [state]) state.pass_token(token, transit_cost=10) state.pass_token(Token(20.3, []), transit_cost=2) state.commit() self.assertEqual(Token(20.3 + local_cost + 2, [self.state_value]), state.token)
def test_token_after_passing_token_and_commit(self): state = State(self.state_value, self.p) local_cost = state.local_cost() token = Token(45.3, [state]) state.pass_token(token) state.pass_token(Token(20.3, [])) state.commit() self.assertEqual(Token(20.3 + local_cost, [self.state_value]), state.token)
def test_pass_token_after_commit(self): state = State(self.state_value, self.p) token = Token(45.3, [state]) state.pass_token(token) state.commit() cost = state.local_cost() state.pass_token(Token(80.3, [])) state.pass_token(Token(50.3, [])) state.pass_token(Token(90.3, [])) state.commit() self.assertEqual(Token(50.3 + cost, [self.state_value]), state.token)
def test_pass_token_retains_words(self): state = State(self.state_value, self.p) words = [5, 10] token = Token(25, [], words) state.pass_token(token) state.commit() self.assertEqual(words, state.token.words)
def test_pass_token(self): expected_score = self.transition.full_cost() self.state.initialize_token() self.transition.pass_token() self.state.commit() self.assertEqual(Token(expected_score, [self.state.state]), self.state.token)
def test_pass_token(self): graph = Graph(self.states) score = 30 expected_score = score + graph.local_cost() expected_history = [20, 30, self.state1] graph.pass_token(Token(score, expected_history[:-1])) graph.commit() first_state = self.states[0] self.assertEqual(expected_score, first_state.token.score) self.assertEqual(expected_history, first_state.token.history)
def test_one_state_model(self): states = [self.states[0]] graph = Graph(states) graph.add_transition( Transition.free(self.states[0], self.states[0]) ) graph.evolve() graph.commit() t1_prob = self.p1[0] t2_prob = self.p1[1] self.assertEqual(Token(- np.log(t1_prob), [self.state1]), graph.optimal_path()) graph.evolve() graph.commit() expected = Token(- np.log(t1_prob) - np.log(t2_prob), [self.state1, self.state1]) self.assertEqual(expected, graph.optimal_path())
def test_multiple_states_model(self): graph_id = 7 graph = Graph(self.states, graph_id=graph_id) graph.add_transition( Transition.free(self.states[0], self.states[1]) ) graph.add_transition( Transition.free(self.states[1], self.states[1]) ) graph.evolve() graph.commit() self.assertEqual(Token(- np.log(self.p1[0]), [self.state1], [graph_id]), graph.optimal_path()) graph.evolve() graph.commit() expected = Token(- np.log(self.p1[0]) - np.log(self.p2[1]), [self.state1, self.state2], [graph_id]) self.assertEqual(expected, graph.optimal_path())
def test_token_on_nested_graph(self): g1 = Graph([self.states[0]]) g2 = Graph([self.states[1]]) g3_state = State(34, [0.2]) g3 = Graph([g3_state]) top_level = Graph([g1, g2, g3]) token = Token(3, [23]) expected_score = 3 + g3.local_cost() g3_state.pass_token(token) g3_state.commit() self.assertEqual(expected_score, top_level.token.score)
def test_inequality(self): self.assertNotEqual(Token(self.score, self.history, self.words), Token(self.score, self.history, [3])) self.assertNotEqual(Token(self.score, self.history, self.words), Token(self.score, [96], self.words)) self.assertNotEqual(Token(self.score, self.history, self.words), Token(self.score + 5, self.history, self.words))
def test_update_score(self): token = Token(self.score, self.history) res = token.update_score(5) self.assertEqual(Token(self.score + 5, self.history), res) self.assertEqual(Token(self.score, self.history), token)
def test_update_words(self): token = Token(self.score, self.history, self.words) res = token.update_words(42) self.assertEqual(Token(self.score, self.history, self.words + [42]), res)
def test_updated_returns_correct_token(self): token = Token(self.score, self.history) res = token.updated(5, 80) expected = Token(30, self.history + [80]) self.assertEqual(expected, res)
def test_equality(self): a = Token(self.score, self.history, self.words) b = Token(self.score, self.history, self.words) self.assertEqual(a, b) self.assertEqual(a, a)
def test_initial_token(self): state = State(self.state_value, self.p) self.assertEqual(Token(state.infinite_score, []), state.token)
def test_token_after_calling_initialization_method(self): state = State(self.state_value, self.p) state.initialize_token() self.assertEqual(Token(0, []), state.token)
def test_token(self): graph = Graph(self.states) self.states[1].pass_token(Token(34, [20, 30])) self.states[1].commit() self.assertEqual(self.states[1].token, graph.token)
def setUp(self): super().setUp() self.history_copy = list(self.history) self.words_copy = list(self.words) self.token = Token(self.score, self.history_copy, self.words_copy )
def test_passing_token_to_graph_adds_word_id_to_history(self): graph = Graph(self.states, graph_id=7) token = Token(25, [3], words=[3]) graph.pass_token(token) graph.commit() self.assertEqual([3, 7], self.states[0].token.words)