def test_symbol_sentence_init(self): symbol1 = Symbol("I") symbol2 = Symbol(" ") symbol3 = Symbol("l") symbol4 = Symbol("i") symbol5 = Symbol("k") symbol6 = Symbol("e") symbols = [symbol1, symbol2, symbol3, symbol4, symbol5, symbol6] sentence = "I like you" grammar = Grammar() grammar.nonTerminalSymbols = symbols self.cyk_base = CYKBase() self.cyk_base.grammar = grammar self.cyk_base.symbols = symbols self.cyk_base._init_symbol_sequence(sentence) sequence = self.cyk_base.sequence self.assertEqual(symbol1, sequence[0]) self.assertEqual(symbol2, sequence[1]) self.assertEqual(symbol3, sequence[2]) self.assertEqual(symbol4, sequence[3]) self.assertEqual(symbol5, sequence[4]) self.assertEqual(symbol6, sequence[5]) self.assertEqual(symbol2, sequence[6]) self.assertEqual(None, sequence[7]) self.assertEqual(None, sequence[8]) self.assertEqual(None, sequence[9]) pass
def test_get_random_nonterminal_symbol_from(self): grammar = Grammar() symbol_1 = Symbol('a', SymbolType.ST_TERMINAL) symbol_2 = Symbol('b', SymbolType.ST_TERMINAL) grammar.nonTerminalSymbols = [symbol_1, symbol_2] result = RandomUtils.get_random_nonterminal_symbol_from(grammar) self.assertIsNotNone(result) self.assertEqual(2, len(grammar.nonTerminalSymbols)) grammar.nonTerminalSymbols = [] result = RandomUtils.get_random_nonterminal_symbol_from(grammar) self.assertIsNone(result) grammar.nonTerminalSymbols = [symbol_1, symbol_2] random.choice = MagicMock(return_value=symbol_1) result = RandomUtils.get_random_nonterminal_symbol_from(grammar) self.assertEqual(result, symbol_1)