Ejemplo n.º 1
0
    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}")
Ejemplo n.º 2
0
    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}")
Ejemplo n.º 3
0
    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}")
Ejemplo n.º 4
0
    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}"
        )
Ejemplo n.º 5
0
    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}"
        )
Ejemplo n.º 6
0
    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}"
            )
Ejemplo n.º 7
0
    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}"
        )
Ejemplo n.º 8
0
    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}"
        )
Ejemplo n.º 9
0
    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}"
        )
Ejemplo n.º 10
0
    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}"
        )
Ejemplo n.º 11
0
    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}"
        )
Ejemplo n.º 12
0
    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}")