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__':
|
if __name__ == '__main__':
|
||||||
|
|
||||||
|
# budowanie automatu
|
||||||
AUTOMATON = DeterministicAutomaton()
|
AUTOMATON = DeterministicAutomaton()
|
||||||
|
|
||||||
INITIAL_STATE = AUTOMATON.add_state()
|
INITIAL_STATE = AUTOMATON.add_state()
|
||||||
@ -114,6 +116,7 @@ if __name__ == '__main__':
|
|||||||
AUTOMATON.mark_as_initial(INITIAL_STATE)
|
AUTOMATON.mark_as_initial(INITIAL_STATE)
|
||||||
AUTOMATON.mark_as_final(FINAL_STATE)
|
AUTOMATON.mark_as_final(FINAL_STATE)
|
||||||
|
|
||||||
print AUTOMATON.accepts("x") # wypisze True
|
# uruchamianie automatu
|
||||||
print AUTOMATON.accepts("") # wypisze False
|
print(AUTOMATON.accepts("x")) # wypisze True
|
||||||
print AUTOMATON.accepts("ab") # wypisze False
|
print(AUTOMATON.accepts("")) # wypisze False
|
||||||
|
print(AUTOMATON.accepts("ab")) # wypisze False
|
||||||
|
Loading…
Reference in New Issue
Block a user