def test_13_kurssin_suorittajat_toimii_1(self): from src.koodi import kurssin_suorittajat from src.koodi import Suoritus koodi = """ s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Ohjelmoinnin jatkokurssi", 3) s4 = Suoritus("Niilo Nörtti", "Tietoliikenteen perusteet", 3) kurssin_suorittajat([s1, s2, s3, s4], "Ohjelmoinnin perusteet") """ try: s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Ohjelmoinnin jatkokurssi", 3) s4 = Suoritus("Niilo Nörtti", "Tietoliikenteen perusteet", 3) vastaus = kurssin_suorittajat([s1, s2, s3, s4], "Ohjelmoinnin perusteet") except: self.fail(f"Varmista, että seuraavan koodin suoritus onnistuu\n{koodi}") exp = ["Olivia Ohjelmoija", "Pekka Python"] output = "" vast = [] for n in vastaus: output += f"{n}\n" vast.append(n) self.assertEquals(vast, exp, f"Kun suoritetaan koodi {koodi}pitäisi palauttaa \n{s(exp)}\nfunktio palautti\n{output}")
def test_08_suoritus_arvosanalla_toimii_1(self): from src.koodi import suoritus_arvosanalla from src.koodi import Suoritus koodi = """ s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Ohjelmoinnin jatkokurssi", 3) suoritus_arvosanalla([s1, s2, s3], 3) """ try: s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Ohjelmoinnin jatkokurssi", 3) vastaus = suoritus_arvosanalla([s1, s2, s3], 3) except: self.fail(f"Varmista, että seuraavan koodin suoritus onnistuu\n{koodi}") exp = [ s1, s3 ] output = "" vast = [] for n in vastaus: output += f"{n}\n" vast.append(n) def nimi(s): return s.kurssi self.assertEquals(sorted(vast, key=nimi), sorted(exp,key=nimi), f"Kun suoritetaan koodi {koodi}pitäisi palauttaa \n{s(exp)}\nfunktio palautti\n{output}")
def test_12_kurssin_suorittajat_tyyppi(self): from src.koodi import kurssin_suorittajat from src.koodi import Suoritus koodi = """ s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Ohjelmoinnin jatkokurssi", 3) s4 = Suoritus("Niilo Nörtti", "Tietoliikenteen perusteet", 3) kurssin_suorittajat([s1, s2, s3, s4], "Ohjelmoinnin perusteet") """ try: s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Ohjelmoinnin jatkokurssi", 3) s4 = Suoritus("Niilo Nörtti", "Tietoliikenteen perusteet", 3) vastaus = kurssin_suorittajat([s1, s2, s3, s4], "Ohjelmoinnin perusteet") except: self.fail(f"Varmista, että seuraavan koodin suoritus onnistuu\n{koodi}") m = filter(None, []) m2 = map(None, []) taip = str(type(vastaus)).replace("<class '","").replace("'>","") self.assertTrue(type(vastaus) == type(m2) or type(vastaus) == type(m) or type(vastaus) == list, f"Funktion suoritus_arvosanalla(kurssit: list, arvosana: int) tulee palauttaa filter tai list, nyt palautettu arvo oli tyypiltään {taip}") for alkio in vastaus: etaip = "str" taip = str(type(alkio)).replace("<class '","").replace("'>","") self.assertTrue(type(alkio) == type(""), f"Kun suoritetaan koodi {koodi}palautettujen alkioiden tulee olla tyypiltään {etaip} nyt niiden tyyppi on {taip}")
def test_03_suorittajien_nimet_toimii_1(self): from src.koodi import suorittajien_nimet from src.koodi import Suoritus koodi = """ s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Ohjelmoinnin jatkokurssi", 2) suorittajien_nimet([s1, s2, s3]) """ try: s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Ohjelmoinnin jatkokurssi", 2) vastaus = suorittajien_nimet([s1, s2, s3]) except: self.fail( f"Varmista, että seuraavan koodin suoritus onnistuu\n{koodi}") exp = [s.opiskelijan_nimi for s in [s1, s2, s3]] output = "" vast = [] for n in vastaus: output += n + "\n" vast.append(n) self.assertEquals( sorted(vast), sorted(exp), f"Kun suoritetaan koodi {koodi}pitäisi palauttaa nimet \n{s(exp)}\nfunktio palautti\n{output}" )
def test_03_kaikkien_opintopisteiden_summa_toimii_1(self): from src.koodi import kaikkien_opintopisteiden_summa from src.koodi import Suoritus koodi = """ s1 = Suoritus("Ohjelmoinnin perusteet", 5, 5) s2 = Suoritus("Ohjelmoinnin jatkokurssi", 4, 5) s3 = Suoritus("Tietorakenteet ja algoritmit", 3, 10) kaikkien_opintopisteiden_summa([s1, s2, s3]) """ try: s1 = Suoritus("Ohjelmoinnin perusteet", 5, 5) s2 = Suoritus("Ohjelmoinnin jatkokurssi", 4, 5) s3 = Suoritus("Tietorakenteet ja algoritmit", 3, 10) vastaus = kaikkien_opintopisteiden_summa([s1, s2, s3]) except: self.fail( f"Varmista, että seuraavan koodin suoritus onnistuu\n{koodi}") exp = 20 self.assertEquals( vastaus, exp, f"Kun suoritetaan koodi {koodi}pitäisi palauttaa\n{exp}\nfunktio palautti\n{vastaus}" )
def test_02_suorittajien_nimet_paluuarvon_tyyppi(self): from src.koodi import suorittajien_nimet from src.koodi import Suoritus koodi = """ s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Ohjelmoinnin jatkokurssi", 2) suorittajien_nimet([s1, s2, s3]) """ try: s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Ohjelmoinnin jatkokurssi", 2) vastaus = suorittajien_nimet([s1, s2, s3]) except: self.fail( f"Varmista, että seuraavan koodin suoritus onnistuu\n{koodi}") m = map(None, []) taip = str(type(vastaus)).replace("<class '", "").replace("'>", "") self.assertTrue( type(vastaus) == type(m) or type(vastaus) == list, f"Funktion suorittajien_nimet(kurssit: list) tulee palauttaa map tai list, nyt palautettu arvo oli tyypiltään {taip}" ) for alkio in vastaus: etaip = str(type("")).replace("<class '", "").replace("'>", "") taip = str(type(alkio)).replace("<class '", "").replace("'>", "") self.assertTrue( type(alkio) == type(""), f"Kun suoritetaan koodi {koodi}palautettujen alkioiden tulee olla tyypiltään {etaip} nyt niiden tyyppi on {taip}" )
def test_02_hkaikkien_opintopisteiden_summa_tyyppi(self): from src.koodi import kaikkien_opintopisteiden_summa from src.koodi import Suoritus koodi = """ s1 = Suoritus("Ohjelmoinnin perusteet", 5, 5) s2 = Suoritus("Ohjelmoinnin jatkokurssi", 4, 5) s3 = Suoritus("Tietorakenteet ja algoritmit", 3, 10) kaikkien_opintopisteiden_summa([s1, s2, s3]) """ try: s1 = Suoritus("Ohjelmoinnin perusteet", 5, 5) s2 = Suoritus("Ohjelmoinnin jatkokurssi", 4, 5) s3 = Suoritus("Tietorakenteet ja algoritmit", 3, 10) vastaus = kaikkien_opintopisteiden_summa([s1, s2, s3]) except: self.fail( f"Varmista, että seuraavan koodin suoritus onnistuu\n{koodi}") taip = str(type(vastaus)).replace("<class '", "").replace("'>", "") self.assertTrue( type(vastaus) == int, f"Funktion kaikkien_opintopisteiden_summa(kurssit: list) tulee palauttaa int, nyt palautettu arvo oli tyypiltään {taip}" )
def test_15_keskiarvo_toimii_2(self): from src.koodi import keskiarvo from src.koodi import Suoritus koodi = """ s1 = Suoritus("Ohjelmoinnin perusteet", 5, 5) s2 = Suoritus("Ohjelmoinnin jatkokurssi", 4, 5) s3 = Suoritus("Tietorakenteet ja algoritmit", 0, 10) keskiarvo([s1, s2, s3]) """ try: s1 = Suoritus("Ohjelmoinnin perusteet", 5, 5) s2 = Suoritus("Ohjelmoinnin jatkokurssi", 4, 5) s3 = Suoritus("Tietorakenteet ja algoritmit", 0, 10) vastaus = keskiarvo([s1, s2, s3]) except: self.fail( f"Varmista, että seuraavan koodin suoritus onnistuu\n{koodi}") exp = 4.5 self.assertEquals( vastaus, exp, f"Kun suoritetaan koodi {koodi}pitäisi palauttaa\n{exp}\nfunktio palautti\n{vastaus}" )
def test_08_kurssien_nimet_toimii_1(self): from src.koodi import kurssien_nimet from src.koodi import Suoritus koodi = """ s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Ohjelmoinnin jatkokurssi", 2) kurssien_nimet([s1, s2, s3]) """ try: s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Ohjelmoinnin jatkokurssi", 2) vastaus = kurssien_nimet([s1, s2, s3]) except: self.fail( f"Varmista, että seuraavan koodin suoritus onnistuu\n{koodi}") m = map(None, []) taip = str(type(vastaus)).replace("<class '", "").replace("'>", "") self.assertTrue( type(vastaus) == type(m) or type(vastaus) == list or type(vastaus) == set, f"Funktion kurssien_nimet(kurssit: list) tulee palauttaa map tai list, nyt palautettu arvo oli tyypiltään {taip}" ) vastaus = list(vastaus) for alkio in vastaus: etaip = str(type("")).replace("<class '", "").replace("'>", "") taip = str(type(alkio)).replace("<class '", "").replace("'>", "") self.assertTrue( type(alkio) == type(""), f"Kun suoritetaan koodi {koodi}palautettujen alkioiden tulee olla tyypiltään {etaip} nyt niiden tyyppi on {taip}" ) exp = sorted(set(s.kurssi for s in [s1, s2, s3])) output = "" vast = [] for n in vastaus: output += n + "\n" vast.append(n) self.assertTrue( sorted(vast) == sorted(exp), f"Kun suoritetaan koodi {koodi}pitäisi palauttaa kurssit \n{s(exp)}\nfunktio palautti\n{output}" )
def test_16_keskiarvo_toimii_2(self): from src.koodi import keskiarvo from src.koodi import Suoritus koodi = """ s1 = Suoritus("Ohjelmoinnin perusteet", 5, 5) s2 = Suoritus("Ohjelmoinnin jatkokurssi", 4, 5) s3 = Suoritus("Tietorakenteet ja algoritmit", 3, 10) s4 = Suoritus("Full stack -websovelluskehitys", 4, 8) s5 = Suoritus("DevOps with Docker", 5, 3) s6 = Suoritus("Toinen kotimainen kieli", 0, 2) keskiarvo([s1, s2, s3, s4, s5, s6]) """ try: s1 = Suoritus("Ohjelmoinnin perusteet", 5, 5) s2 = Suoritus("Ohjelmoinnin jatkokurssi", 4, 5) s3 = Suoritus("Tietorakenteet ja algoritmit", 3, 10) s4 = Suoritus("Full stack -websovelluskehitys", 4, 8) s5 = Suoritus("DevOps with Docker", 5, 3) s6 = Suoritus("Toinen kotimainen kieli", 0, 2) vastaus = keskiarvo([s1, s2, s3, s4, s5, s6]) except: self.fail( f"Varmista, että seuraavan koodin suoritus onnistuu\n{koodi}") exp = 4.2 self.assertEquals( vastaus, exp, f"Kun suoritetaan koodi {koodi}pitäisi palauttaa\n{exp}\nfunktio palautti\n{vastaus}" )
def test_10_kurssien_nimet_toimii_2(self): from src.koodi import kurssien_nimet from src.koodi import Suoritus koodi = """ s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Tietorakenteet", 2) s4 = Suoritus("Heikki Helastinen", "Full stack -websovelluskehitys", 3) s5 = Suoritus("Lady Gaga", "Ohjelmoinnin jatkokurssi", 5) s6 = Suoritus("Eila Karkki", "Tietoliikenne 1", 2) kurssien_nimet([s1, s2, s3, s4, s5, s6]) """ try: s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Tietorakenteet", 2) s4 = Suoritus("Heikki Helastinen", "Full stack -websovelluskehitys", 3) s5 = Suoritus("Lady Gaga", "Ohjelmoinnin jatkokurssi", 5) s6 = Suoritus("Eila Karkki", "Tietoliikenne 1", 2) vastaus = kurssien_nimet([s1, s2, s3, s4, s5, s6]) except: self.fail( f"Varmista, että seuraavan koodin suoritus onnistuu\n{koodi}") exp = sorted(set(s.kurssi for s in [s1, s2, s3, s4, s5, s6])) output = "" vast = [] for n in vastaus: output += n + "\n" vast.append(n) self.assertEquals( sorted(vast), sorted(exp), f"Kun suoritetaan koodi {koodi}pitäisi palauttaa kurssit\n{s(exp)}\nfunktio palautti\n{output}" )
def test_05_hyvaksytyt_toimii_2(self): from src.koodi import hyvaksytyt from src.koodi import Suoritus koodi = """ s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Ohjelmoinnin jatkokurssi", 0) s4 = Suoritus("Heikki Helastinen", "Ohjelmoinnin perusteet", 3) s5 = Suoritus("Lady Gaga", "Ohjelmoinnin perusteet", 0) s6 = Suoritus("Eila Karkki", "Ohjelmoinnin jatkokurssi", 2) hyvaksytyt([s1, s2, s3, s4, s5, s6]) """ try: s1 = Suoritus("Pekka Python", "Ohjelmoinnin perusteet", 3) s2 = Suoritus("Olivia Ohjelmoija", "Ohjelmoinnin perusteet", 5) s3 = Suoritus("Pekka Python", "Ohjelmoinnin jatkokurssi", 0) s4 = Suoritus("Heikki Helastinen", "Ohjelmoinnin perusteet", 3) s5 = Suoritus("Lady Gaga", "Ohjelmoinnin perusteet", 0) s6 = Suoritus("Eila Karkki", "Ohjelmoinnin jatkokurssi", 2) vastaus = hyvaksytyt([s1, s2, s3, s4, s5, s6]) except: self.fail(f"Varmista, että seuraavan koodin suoritus onnistuu\n{koodi}") exp = [s1, s2, s4, s6] output = "" vast = [] for n in vastaus: output += f"{n}\n" vast.append(n) def nimi(s): return s.kurssi self.assertEquals(sorted(vast, key=nimi), sorted(exp,key=nimi), f"Kun suoritetaan koodi {koodi}pitäisi palauttaa \n{s(exp)}\nfunktio palautti\n{output}")