From 167aa579e06e60f6df183817900b99b75888ed63 Mon Sep 17 00:00:00 2001 From: Filip Gralinski Date: Fri, 8 Jan 2021 11:10:55 +0100 Subject: [PATCH] fix 2 --- automata/Task200Test.py | 41 +++++++++++++++++++++++++++++ automata/deterministic_automaton.py | 9 ++++--- 2 files changed, 47 insertions(+), 3 deletions(-) create mode 100755 automata/Task200Test.py diff --git a/automata/Task200Test.py b/automata/Task200Test.py new file mode 100755 index 0000000..8f7d6e8 --- /dev/null +++ b/automata/Task200Test.py @@ -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() diff --git a/automata/deterministic_automaton.py b/automata/deterministic_automaton.py index 05efaa2..de3bed3 100644 --- a/automata/deterministic_automaton.py +++ b/automata/deterministic_automaton.py @@ -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