Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Finální verze projektu #208

Open
wants to merge 18 commits into
base: master
Choose a base branch
from
Open

Finální verze projektu #208

wants to merge 18 commits into from

Conversation

A21015
Copy link

@A21015 A21015 commented Jan 29, 2022

No description provided.

Copy link
Owner

@turecekt turecekt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Doplnit unit testy aby procházel pytest a opravit formátování aby procházel kontrola flake8

Comment on lines 78 to 144
# Deklarace proměnné typu string,
# která následně určuje, jestli se má program ukončit
zadani = " "

# Cyklus, při kterém program běží, dokud není na konci zadáno A pro ukončení
while zadani != 'a':
rimZad = ""
arZad = 0
rim = 0

# Cyklus, při kterém běží input do doby, než uživatel zadá validní hodnotu
while rim < 1 or rim > 3999:
rimZad = input("Zadej římské: ")
x = rimZad.isnumeric()

# Obsahuje-li římské zadání číslo, jedná se o chybu
if x == 1:
print("Nezadal jsi římské číslo.")

# Pokud je vše zadáno správně, program pokračuje dál
else:
if rimZad.islower():
rimZad = rimZad.upper()
rim = Prevod().naar(rimZad)

# Pokud se výsledek nachází v intervalu
# pro platnost, program vypíše výsledek
if 0 < rim < 4000:
print(rimZad + str(" = ") + str(rim))

# Je-li výsledná hodnota mimo interval
# pro platnost, program zahlásí chybu
else:
print("Chybné zadání.")

# Cyklus, který běží po dobu, dokud není správně zadané číslo
while arZad < 1 or arZad > 3999:
arZad = str(input("Zadej arabské: "))
x = arZad.isnumeric()

# Kontrola, jestli bylo správně zadáno číslo v zadání
if x == 1:
arZad = int(arZad)
# Převod proměnné typu string na integer

# Pokud se zadané číslo nenachází v
# platném rozsahu, program zahlásí chybu
if arZad < 1 or arZad > 3999:
print("Chybné zadání.")

# V opačném případě se provede převod
else:
print(str(arZad) + str(" = ") + Prevod().narim(arZad))

# Nebylo-li zadáno číslo, program zahlásí chybu
else:
print("Nezadal jsi číslo.")
arZad = 0
# Zápis hodnoty, aby při špatném zadání neskončil cyklus

# Ukončovací dialog programu
zadani = input("Přejete si ukončit program? (A/N)\n")

# Podmínka pro not-case-sensitive zadání pro ukončení
if zadani.isupper():
zadani = zadani.lower()
# Převod velkého písmena na malé
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Toto dát pod podmínku if __name__ == "__main__"

Copy link
Owner

@turecekt turecekt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

stále nejsou unit testy aby bylo dostatečné pokrytí kódu testy a opravené formátování aby procházela kontrola flake8

@A21015
Copy link
Author

A21015 commented Jan 31, 2022

Dobrý den, nevím co by mohlo být za problém, unit testy mi vždy projdou bez chyby.

Comment on lines 77 to 79
# Testovací příkazy, je možné přehlédnout..
# print(Prevod().narim(3999))
# print(Prevod().naar("MMMCMXCIX"))
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# Testovací příkazy, je možné přehlédnout..
# print(Prevod().narim(3999))
# print(Prevod().naar("MMMCMXCIX"))
def test_prevod():
"""Testovací příkazy."""
assert Prevod().narim(3999) == "MMMCMXCIX"
assert Prevod().naar("MMMCMXCIX") == 3999

@A21015
Copy link
Author

A21015 commented Feb 1, 2022

Jaké jsou přesně kritéria, aby ten pytest prošel? Co všechno to kontroluje?

Copy link
Owner

@turecekt turecekt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Obecně pytest volá všechny funkce s podporovanými keywordy v názvu (např. prefix test_), které najde ve zdrojovém kódu projektu.
Funkce test_prevod pomocí dvou assertů kontrolovalo správnost návratů vámi implementovaných funkcí narim a naar pro vybranou hodnotu vstupního parametru.
Funkci test_prevod vraťte zpátky a povolte si provádění workflow Python checker (python_checker.yml) v actions, zde: https://github.com/A21015/vs_project/actions
Při každém odjetí do repozitáře se následně test automaticky spustí a v actions uvidíte průběh/výsledek.

Copy link
Owner

@turecekt turecekt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ještě prosím přesunout soubor main.py do kořenového adresáře.

Copy link
Owner

@turecekt turecekt left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Zkuste ještě zrušit tu třídu viz navrhované úpravy, stejně není využito OOP, mohlo by se to už vyjít do limitu pokrytí kódu testy 66% viz Checks/Actions. Pokud ne, tak proveďte ještě nějaký refaktoring kódu na zkrácení počtu řádků mimo funkce, které máte již pokryté testy.
Následně pak upravte chyby, které bude následně vracet flake8.

main.py Outdated
Comment on lines 2 to 4
class Prevod:
def __init__(self):
pass
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
class Prevod:
def __init__(self):
pass

main.py Outdated
pass

# Metoda pro převod z arabských čísel na římská
@staticmethod
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
@staticmethod

main.py Outdated
return " " # Vrátí zpět pouze mezeru

# Metoda pro převod z římských čísel na arabské
@staticmethod
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
@staticmethod

main.py Outdated

# Cyklus, při kterém program běží, dokud
# není na konci zadáno A pro ukončení
while zadani != 'a':
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
while zadani != 'a':
while zadani.lower() != 'a':

main.py Outdated
Comment on lines 156 to 160

# Podmínka pro not-case-sensitive zadání pro ukončení
if zadani.isupper():
zadani = zadani.lower()
# Převod velkého písmena na malé
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
# Podmínka pro not-case-sensitive zadání pro ukončení
if zadani.isupper():
zadani = zadani.lower()
# Převod velkého písmena na malé

main.py Outdated
Comment on lines 79 to 82
assert Prevod().narim(3999) == 'MMMCMXCIX'
assert Prevod().narim(3888) == 'MMMDCCCLXXXVIII'
assert Prevod().narim(2421) == 'MMCDXXI'
assert Prevod().narim(15) == 'XV'
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
assert Prevod().narim(3999) == 'MMMCMXCIX'
assert Prevod().narim(3888) == 'MMMDCCCLXXXVIII'
assert Prevod().narim(2421) == 'MMCDXXI'
assert Prevod().narim(15) == 'XV'
assert narim(3999) == 'MMMCMXCIX'
assert narim(3888) == 'MMMDCCCLXXXVIII'
assert narim(2421) == 'MMCDXXI'
assert narim(15) == 'XV'

main.py Outdated
Comment on lines 86 to 89
assert Prevod().naar("MMMCMXCIX") == 3999
assert Prevod().naar("MMMDCCCLXXXVIII") == 3888
assert Prevod().naar("MMCDXXI") == 2421
assert Prevod().naar("XV") == 15
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
assert Prevod().naar("MMMCMXCIX") == 3999
assert Prevod().naar("MMMDCCCLXXXVIII") == 3888
assert Prevod().naar("MMCDXXI") == 2421
assert Prevod().naar("XV") == 15
assert naar("MMMCMXCIX") == 3999
assert naar("MMMDCCCLXXXVIII") == 3888
assert naar("MMCDXXI") == 2421
assert naar("XV") == 15

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants