49 lines
1.3 KiB
Python
Executable File
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()
|