zjfz-2019-s402281/automata/Task215Test.py
2020-01-24 20:23:00 +01:00

49 lines
1.3 KiB
Python
Executable File

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Zadanie 215
Napisz funkcję `four_automaton()`, która
tworzy i zwraca automat, który akceptuje
napisy reprezentujące liczby podzielne przez 4. Automat
nie powinien akceptować napisów zaczynających
nieznaczącymi zerami (np. "044").
NAME: four_automaton
PARAMS: -
RETURN: DeterministicAutomaton
POINTS: 8
"""
import unittest
from Task215 import four_automaton
class Task215Test(unittest.TestCase):
"""Testy do zadania 215"""
def test_simple(self):
"""Prosty test."""
automaton = four_automaton()
self.assertTrue(automaton.accepts("4"))
self.assertTrue(automaton.accepts("0"))
self.assertTrue(automaton.accepts("12"))
self.assertTrue(automaton.accepts("324"))
self.assertTrue(automaton.accepts("1052"))
self.assertTrue(automaton.accepts("444444"))
self.assertFalse(automaton.accepts("012"))
self.assertFalse(automaton.accepts("0000324"))
self.assertFalse(automaton.accepts("5"))
self.assertFalse(automaton.accepts("1"))
self.assertFalse(automaton.accepts("3"))
self.assertFalse(automaton.accepts("34"))
self.assertFalse(automaton.accepts("1057"))
self.assertFalse(automaton.accepts("4454"))
if __name__ == '__main__':
unittest.main()