Skip to content

Finální verze projektu - #208

Open
A21015 wants to merge 18 commits into
turecekt:masterfrom
A21015:master
Open

Finální verze projektu#208
A21015 wants to merge 18 commits into
turecekt:masterfrom
A21015:master

Conversation

@A21015

@A21015 A21015 commented Jan 29, 2022

Copy link
Copy Markdown

No description provided.

@turecekt turecekt left a comment

Copy link
Copy Markdown
Owner

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 thread projekt_pucek_2021/22/main.py Outdated
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
Copy Markdown
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__"

@turecekt turecekt left a comment

Copy link
Copy Markdown
Owner

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

A21015 commented Jan 31, 2022

Copy link
Copy Markdown
Author

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

Comment thread projekt_pucek_2021/22/main.py Outdated
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
Copy Markdown
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

A21015 commented Feb 1, 2022

Copy link
Copy Markdown
Author

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

@turecekt turecekt left a comment

Copy link
Copy Markdown
Owner

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.

@turecekt turecekt left a comment

Copy link
Copy Markdown
Owner

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.

@turecekt turecekt left a comment

Copy link
Copy Markdown
Owner

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.

Comment thread main.py Outdated
Comment on lines +2 to +4
class Prevod:
def __init__(self):
pass

Copy link
Copy Markdown
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

Comment thread main.py Outdated
pass

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

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Suggested change
@staticmethod

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

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

Copy link
Copy Markdown
Owner

Choose a reason for hiding this comment

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

Suggested change
@staticmethod

Comment thread 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
Copy Markdown
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':

Comment thread 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
Copy Markdown
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é

Comment thread 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
Copy Markdown
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'

Comment thread 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
Copy Markdown
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.

2 participants