Esempio n. 1
0
    def test_8a_miinus1(self):
        from src.raha import Raha
        test_cases = [((3,0), (1,0)), ((2,50),(1,50)), ((4,5),(0,50)), ((15,95),(1,55)),
            ((2,0), (1,35)), ((4,30), (2,75)), ((3,95),(3,90)), ((1110,10),(1110,0))]
        for test_case in test_cases:
            tc1,tc2 = test_case
            raha1 = Raha(tc1[0], tc1[1])
            raha2 = Raha(tc2[0], tc2[1])

            e = tc1[0] - tc2[0]
            c = tc1[1] - tc2[1]
            if c < 0:
                c += 100
                e -= 1
            corr = f"{e}.{c:02d} eur"
            val = str(raha1 - raha2)
            stmt = "print(raha1 - raha2)"
            met_name = "__sub__"

            self.assertEqual(val, corr, f'Lausekkeen\n{stmt}\npitäisi tulostaa ' +
                f'{corr}, kun oliot on alustettu seuraavasti:\n'
                f'raha1 = Raha({tc1[0]}, {tc1[1]})\n' + 
                f'raha2 = Raha({tc2[0]}, {tc2[1]})\n' + 
                f'Nyt lauseke tulostaaa {val}.\n' + 
                f'Tarkasta metodi {met_name}')
Esempio n. 2
0
 def test_1_luokka_raha_olemassa(self):
     try:
         from src.raha import Raha
         a = Raha(1,1)
     except Exception as e:
         self.fail(f'Konstruktorikutsu Raha(1,1) antoi virheen \n{e}\n' + 
         'Tarkista, että luokasta voi muodostaa olion.')
Esempio n. 3
0
    def test_9_kapselointi_1(self):
        from src.raha import Raha
        ref = reflect.Reflect()
        r = Raha(1,50)
        ref.set_object(r)

        attr = ref.list_attributes(True)
        for att in attr:
            if not att.startswith("_"):
                self.fail('Luokalla ei pitäisi olla muita kuin kapseloituja ' +
                    f'attribuutteja. Nyt sillä on julkinen' + 
                    f' attribuutti {att}')

        r.eurot = 1000        
        test = "1000.50 eur"
        self.assertTrue(str(r) != test, f'Lausekkeen raha.eurot = 1000 ei ' + 
        f'pitäisi asettaa olion rahat arvoa, koska arvon pitäisi olla kapseloitu!')
Esempio n. 4
0
    def test_4_pienempi_kuin(self):
        from src.raha import Raha
        test_cases = [((1,0), (2,0)), ((2,50),(3,50)), ((4,5),(4,50)), ((15,95),(15,96)),
            ((2,0), (1,0)), ((4,50), (4,5)), ((3,95),(3,95)), ((1110,10),(1110,1))]
        for test_case in test_cases:
            tc1,tc2 = test_case
            raha1 = Raha(tc1[0], tc1[1])
            raha2 = Raha(tc2[0], tc2[1])

            corr = tc1 < tc2
            val = (raha1 < raha2)
            stmt = "raha1 < raha2"
            met_name = "__lt__"

            self.assertEqual(val, corr, f'Lausekkeen\n{stmt}\npitäisi olla ' +
                f'{corr},  kun oliot on alustettu seuraavasti:\n'
                f'raha1 = Raha({tc1[0]}, {tc1[1]})\n' + 
                f'raha2 = Raha({tc2[0]}, {tc2[1]})\n' + 
                f'Nyt lauseke palauttaa {val}.\n' + 
                f'Tarkasta metodi {met_name}')
Esempio n. 5
0
    def test_2_merkkijonoesitys(self):
        from src.raha import Raha
        test_cases = [(1,50), (2,75), (399,99), (4,1), (5,2), (1243,9)]
        for test_case in test_cases:
            raha = Raha(test_case[0], test_case[1])
            val = str(raha)
            corr = f"{test_case[0]}.{test_case[1]:02d} eur"

            self.assertEqual(val, corr, f'Metodin __str__ pitäisi palauttaa ' +
                f'\n{corr}\nkun raha on alustettu näin:\n' +
                f'Raha({test_case[0]}, {test_case[1]})\nNyt metodi palauttaa\n' + 
                f'{val}')
Esempio n. 6
0
    def test_8b_miinus2(self):
        from src.raha import Raha
        test_cases = [((1,0), (2,0)), ((2,50),(3,50)), ((4,5),(4,6)), ((15,95),(15,96)),
            ((2,0), (2,1)), ((1110,10),(1110,11))]
        for test_case in test_cases:
            tc1,tc2 = test_case
            raha1 = Raha(tc1[0], tc1[1])
            raha2 = Raha(tc2[0], tc2[1])

            
            
            stmt = "print(raha1 - raha2)"
            met_name = "__sub__"

            try:
                str(raha1 - raha2)
                self.fail(f'Lausekkeen\n{stmt}\npitäisi antaa poikkeus ' +
                    f'ValueError, kun oliot on alustettu seuraavasti:\n'
                    f'raha1 = Raha({tc1[0]}, {tc1[1]})\n' + 
                    f'raha2 = Raha({tc2[0]}, {tc2[1]})\n' + 
                    f'Tarkasta metodi {met_name}')
            except ValueError:
                pass