def test_2b_paluuarvon_tyyppi(self):
     try:
         from src.palloilijat import eniten_maaleja, Palloilija
         val = eniten_maaleja([Palloilija("a",2,2,2,2), Palloilija("b",1,1,1,1)])
     except Exception as e:
         self.fail(f"Funktio antoi virheen kun sitä kutsuttiin näin:\n"  + 
         'eniten_maaleja([Palloilija("a",2,2,2,2), Palloilija("b",1,1,1,1)])\n' + 
         f'{e}')
     taip = str(type(val)).replace("<class '","").replace("'>","")
     self.assertTrue(type(val) == str, f"Funktion eniten_maaleja pitäisi palauttaa arvo, jonka tyyppi on str," +  
         f" nyt se palauttaa arvon {val} joka on tyyppiä {taip}\n kun sitä kutsutaan parametrilla\n" +  
         'eniten_maaleja([Palloilija("a",2,2,2,2), Palloilija("b",1,1,1,1)])')
    def test_2d_testaa_arvoilla2(self):
        from src.palloilijat import eniten_maaleja, Palloilija
    
        tdata = [("Pekka",4,1,6,900), ("Armas",6,4,3,885), ("Jarppi",9,9,2,840), ("Kimmo", 3,13,9,1034)]
        test_case = [Palloilija(tc[0],tc[1],tc[2],tc[3],tc[4]) for tc in tdata]
        shuffle(test_case)
        test_case_2 = test_case[:]
        corr = max(tdata, key=lambda t:t[2])[0]
        val = eniten_maaleja(test_case)

        self.assertEqual(val, corr, f'Funktion eniten_maaleja pitäisi palauttaa merkkijono\n{corr}\n' + 
            f'kun sitä kutsutaan parametrilla\n{test_case}\nnyt funktio palauttaa\n' + 
            f'{val}')

        self.assertEqual(test_case, test_case_2, f"Funktio eniten_maaleja ei saa muuttaa alkuperäistä listaa!\n" + 
            f'Lista ennen kutsua oli\n{test_case_2}\nja kutsun jälkeen se on\n{test_case}.')
    def test_4d_testaa_arvoilla2(self):
        from src.palloilijat import vahiten_minuutteja, Palloilija
    
        tdata = [("Pekka",4,12,6,90), ("Armas",6,14,11,88), ("Jarppi",9,19,2,84), ("Kimmo", 3,11,9,134)]
        test_case = [Palloilija(tc[0],tc[1],tc[2],tc[3],tc[4]) for tc in tdata]
        shuffle(test_case)
        test_case_2 = test_case[:]
        corr = min(test_case, key=lambda p:p.minuutit)
        val = vahiten_minuutteja(test_case)

        self.assertEqual(val, corr, f'Funktion vahiten_minuutteja pitäisi palauttaa Pelaaja\n{corr}\n' + 
            f'kun sitä kutsutaan parametrilla\n{test_case}\nnyt funktio palauttaa\n' + 
            f'{val}')

        self.assertEqual(test_case, test_case_2, f"Funktio vahiten_minuutteja ei saa muuttaa alkuperäistä listaa!\n" + 
            f'Lista ennen kutsua oli\n{test_case_2}\nja kutsun jälkeen se on\n{test_case}.')