zjfz-2019/automata/Task214Test.py

45 lines
1.2 KiB
Python
Raw Normal View History

2020-01-24 20:23:00 +01:00
#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
Zadanie 214
Napisz funkcję `hex_automaton()`, która tworzy i zwraca automat
akceptujący napisy reprezentujące liczby szesnastkowo.
Cyfry szesnastkowe mogą być reprezentowane za pomocą małych
bądź wielkich liter, ale konsekwentnie ("a0f9" i "A0F9" ma być akceptowane,
"a0F9" i "A0f9" - nie). Liczba może zawierać zera nieznaczące na początku.
NAME: hex_automaton
PARAMS: -
RETURN: DeterministicAutomaton
POINTS: 8
"""
import unittest
from Task214 import hex_automaton
class Task214Test(unittest.TestCase):
"""Testy do zadania 214"""
def test_simple(self):
"""Prosty test."""
automaton = hex_automaton()
self.assertTrue(automaton.accepts("a0f9"))
self.assertTrue(automaton.accepts("A0F9"))
self.assertTrue(automaton.accepts("0"))
self.assertTrue(automaton.accepts("0B000"))
self.assertTrue(automaton.accepts("DDDD"))
self.assertTrue(automaton.accepts("baca"))
self.assertFalse(automaton.accepts("gg"))
self.assertFalse(automaton.accepts("a0F9"))
self.assertFalse(automaton.accepts("A0f9"))
self.assertFalse(automaton.accepts("Baca"))
if __name__ == '__main__':
unittest.main()