master > master: code py - refactoring

- umbenennungen
- verbesseungen der Darstellungen
- enums zur beseren Steuerung der versch. Modi
- refactoring des Algorithmus
- Verwendung von tabulator
This commit is contained in:
RD
2022-06-09 18:13:42 +02:00
parent 57bc1e68e6
commit 760bff11f2
30 changed files with 715 additions and 463 deletions

View File

@@ -0,0 +1,15 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# IMPORTS
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
from pytest import mark;
from pytest import fixture;
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# FIXTURES
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#

View File

@@ -0,0 +1,63 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# IMPORTS
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
from contextlib import nullcontext as does_not_raise
import pytest;
from pytest import mark;
from unittest import TestCase;
from src.stacks.stack import Stack;
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Fixtures
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
def format_data_for_display(data):
return [ '{given_name} {family_name}: {title}'.format(**row) for row in data ];
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
# Test stack
# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@mark.usefixtures('test')
def test_stack_initialisation(test: TestCase):
stack = Stack();
test.assertEqual(len(stack), 0);
@mark.usefixtures('test')
def test_stack_push(test: TestCase):
stack = Stack();
test.assertEqual(len(stack), 0);
stack.push('hallo');
test.assertEqual(len(stack), 1);
stack.push('welt');
test.assertEqual(len(stack), 2);
stack.push('!');
test.assertEqual(len(stack), 3);
@mark.usefixtures('test')
def test_stack_no_error(test: TestCase):
stack = Stack();
stack.push('hallo');
stack.push('welt');
stack.push('!');
with does_not_raise():
stack.pop();
stack.pop();
stack.pop();
@mark.usefixtures('test')
def test_stack_error_po(test: TestCase):
stack = Stack();
stack.push('hallo');
stack.push('welt');
stack.push('!');
with pytest.raises(Exception):
stack.pop();
stack.pop();
stack.pop();
stack.pop();