Ejemplo n.º 1
0
    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
Ejemplo n.º 2
0
    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)