forked from filipg/pjfz-2020
fix 2
This commit is contained in:
parent
dc687cb1a4
commit
167aa579e0
41
automata/Task200Test.py
Executable file
41
automata/Task200Test.py
Executable file
@ -0,0 +1,41 @@
|
||||
#!/usr/bin/python3
|
||||
# -*- coding: utf-8 -*-
|
||||
|
||||
"""
|
||||
Zadanie 200
|
||||
|
||||
Napisz funkcję `abc_automaton()`, która
|
||||
tworzy i zwraca automat, który akceptuje
|
||||
napisy zaczynające się od a, kończące się na c i zawierające w środku
|
||||
dowolną liczbę znaków b
|
||||
|
||||
NAME: abc_automaton
|
||||
PARAMS: -
|
||||
RETURN: DeterministicAutomaton
|
||||
POINTS: 1
|
||||
"""
|
||||
|
||||
import unittest
|
||||
from Task200 import abc_automaton
|
||||
|
||||
class Task200Test(unittest.TestCase):
|
||||
"""Testy do zadania 200"""
|
||||
|
||||
def test_simple(self):
|
||||
"""Prosty test."""
|
||||
|
||||
automaton = abc_automaton()
|
||||
|
||||
self.assertTrue(automaton.accepts("ac"))
|
||||
self.assertTrue(automaton.accepts("abc"))
|
||||
self.assertTrue(automaton.accepts("abbbbbbbbbbc"))
|
||||
|
||||
self.assertFalse(automaton.accepts("a"))
|
||||
self.assertFalse(automaton.accepts("c"))
|
||||
self.assertFalse(automaton.accepts("bbbc"))
|
||||
self.assertFalse(automaton.accepts("abcabc"))
|
||||
self.assertFalse(automaton.accepts(""))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
@ -105,6 +105,8 @@ class DeterministicAutomaton:
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
|
||||
# budowanie automatu
|
||||
AUTOMATON = DeterministicAutomaton()
|
||||
|
||||
INITIAL_STATE = AUTOMATON.add_state()
|
||||
@ -114,6 +116,7 @@ if __name__ == '__main__':
|
||||
AUTOMATON.mark_as_initial(INITIAL_STATE)
|
||||
AUTOMATON.mark_as_final(FINAL_STATE)
|
||||
|
||||
print AUTOMATON.accepts("x") # wypisze True
|
||||
print AUTOMATON.accepts("") # wypisze False
|
||||
print AUTOMATON.accepts("ab") # wypisze False
|
||||
# uruchamianie automatu
|
||||
print(AUTOMATON.accepts("x")) # wypisze True
|
||||
print(AUTOMATON.accepts("")) # wypisze False
|
||||
print(AUTOMATON.accepts("ab")) # wypisze False
|
||||
|
Loading…
Reference in New Issue
Block a user