import unittest import warnings class Test(unittest.TestCase): def setUp(self): self.organigram = { "Ana": {"Berta", "Cilka"}, "Berta": {"Dani", "Ema", "Fanci"}, "Cilka": {"Fanci", "Greta"}, "Dani": {"Helga", "Iva", "Jana"}, "Ema": {"Jana", "Klara"}, "Fanci": {"Helga", "Iva", "Jana", "Klara", "Liza"}, "Greta": {"Liza", "Micka", "Nina", "Olga"}, "Helga": set(), "Iva": set(), "Jana": set(), "Klara": set(), "Liza": set(), "Micka": set(), "Nina": set(), "Olga": {"Poldka"}, "Poldka": set(), } self.vescine = { "Ana": {"marketing", "racunovodstvo", "stopnice"}, "Berta": {"gravel", "pesci", "robniki"}, "Cilka": {"gravel", "avtocesta", "robnik", "rodeo"}, "Dani": {"gravel", "pesci", "bolt", "robniki", "rodeo", "avtocesta"}, "Ema": {"bolt", "robniki"}, "Fanci": {"pesci", "avtocesta"}, "Greta": {"gravel", "avtocesta", "rodeo"}, "Helga": {"gravel", "pesci"}, "Iva": {"bolt", "pesci"}, "Jana": {"gravel", "marketing"}, "Klara": {"gravel", "pesci", "bolt", "robniki", "rodeo"}, "Liza": set(), "Micka" : {"avtocesta"}, "Nina" : {"gravel"}, "Olga" : {"pesci", "robniki"}, "Poldka" : set() } self.dezorganigram = { "Ana": set(), "Berta": {"Ana"}, "Cilka": {"Ana"}, "Dani": {"Berta"}, "Ema": {"Berta"}, "Fanci": {"Berta", "Cilka"}, "Greta": {"Cilka"}, "Helga": {"Dani", "Fanci"}, "Iva": {"Dani", "Fanci"}, "Jana": {"Dani", "Ema", "Fanci"}, "Klara": {"Ema", "Fanci"}, "Liza": {"Fanci", "Greta"}, "Micka": {"Greta"}, "Nina": {"Greta"}, "Olga": {"Greta"}, "Poldka": {"Olga"} } class Test06(Test): def test_1_shizofreniki(self): self.assertEqual({"Fanci", "Helga", "Iva", "Jana", "Klara", "Liza"}, shizofreniki(self.organigram, self.dezorganigram)) def test_2_lojalisti(self): self.assertEqual({"Dani", "Ema"}, lojalisti(self.organigram, self.dezorganigram, "Berta")) self.assertEqual(set(), lojalisti(self.organigram, self.dezorganigram, "Fanci")) self.assertEqual({"Micka", "Nina", "Olga"}, lojalisti(self.organigram, self.dezorganigram, "Greta")) self.assertEqual({"Poldka"}, lojalisti(self.organigram, self.dezorganigram, "Olga")) self.assertEqual(set(), lojalisti(self.organigram, self.dezorganigram, "Micka")) self.assertEqual({"Berta", "Cilka"}, lojalisti(self.organigram, self.dezorganigram, "Ana")) def test_3_multipraktik(self): self.assertEqual("Jana", multipraktik(self.organigram, self.dezorganigram)) def test_4_butli(self): self.assertEqual({"Liza", "Poldka"}, butli(self.organigram, self.dezorganigram, self.vescine)) class Test07(Test): def test_1_dezorganigram(self): self.assertEqual(self.dezorganigram, dict(dezorganigram(self.organigram))) def test_2_kolegi(self): self.assertEqual({"Cilka"}, kolegi(self.organigram, self.dezorganigram, "Berta")) self.assertEqual({"Liza", "Micka", "Olga"}, kolegi(self.organigram, self.dezorganigram, "Nina")) self.assertEqual(set(), kolegi(self.organigram, self.dezorganigram, "Ana")) self.assertEqual(set(), kolegi(self.organigram, self.dezorganigram, "Poldka")) self.assertEqual({"Dani", "Ema", "Greta"}, kolegi(self.organigram, self.dezorganigram, "Fanci")) self.assertEqual({"Fanci"}, kolegi(self.organigram, self.dezorganigram, "Greta")) self.assertEqual({"Helga", "Iva", "Klara", "Liza"}, kolegi(self.organigram, self.dezorganigram, "Jana")) def test_3_sefi(self): self.assertEqual({"Greta"}, sefi(self.organigram, self.dezorganigram)) self.organigram["Greta"].discard("Nina") del self.dezorganigram["Nina"] del self.organigram["Nina"] self.assertEqual({"Greta", "Ana", "Berta"}, sefi(self.organigram, self.dezorganigram)) class Test08(Test): def setUp(self): super().setUp() warnings.simplefilter("ignore", ResourceWarning) with open("organigram1.txt", "w") as f: f.write("""Ana; marketing, racunovodstvo, stopnice; Berta, Cilka Berta; gravel, pesci, robniki; Dani, Ema, Fanci Cilka; avtocesta, gravel, robnik, rodeo; Fanci, Greta Dani; avtocesta, bolt, gravel, pesci, robniki, rodeo; Helga, Iva, Jana Ema; bolt, robniki; Jana, Klara Fanci; avtocesta, pesci; Helga, Iva, Jana, Klara, Liza Greta; avtocesta, gravel, rodeo; Liza, Micka, Nina, Olga Helga; gravel, pesci; Iva; bolt, pesci; Jana; gravel, marketing; Klara; bolt, gravel, pesci, robniki, rodeo; Liza; ; Micka; avtocesta; Nina; gravel; Olga; pesci, robniki; Poldka Poldka; ; """) def test_1_zapisi(self): zapisi(self.organigram, self.vescine, "organigram.txt") txt = open("organigram.txt").read().strip().replace(", ", ",").replace("; ", ";") self.assertEqual(""" Ana;marketing,racunovodstvo,stopnice;Berta,Cilka Berta;gravel,pesci,robniki;Dani,Ema,Fanci Cilka;avtocesta,gravel,robnik,rodeo;Fanci,Greta Dani;avtocesta,bolt,gravel,pesci,robniki,rodeo;Helga,Iva,Jana Ema;bolt,robniki;Jana,Klara Fanci;avtocesta,pesci;Helga,Iva,Jana,Klara,Liza Greta;avtocesta,gravel,rodeo;Liza,Micka,Nina,Olga Helga;gravel,pesci; Iva;bolt,pesci; Jana;gravel,marketing; Klara;bolt,gravel,pesci,robniki,rodeo; Liza;; Micka;avtocesta; Nina;gravel; Olga;pesci,robniki;Poldka Poldka;;""".strip(), txt) def test_2_preberi(self): self.assertEqual((self.organigram, self.vescine), preberi("organigram1.txt")) class Test09(Test): def test_1_samodrzci(self): self.assertEqual({"Ana", "Cilka", "Dani", "Fanci", "Greta", "Olga"}, samodrzci(self.organigram, self.dezorganigram, self.vescine)) def test_2_samouki(self): self.assertEqual({"Ana", "Berta", "Cilka", "Dani", "Ema", "Jana", "Klara", "Olga"}, samouki(self.organigram, self.dezorganigram, self.vescine)) def test_3_ucenjaki(self): self.assertEqual({"Ana", "Dani", "Poldka"}, ucenjaki(self.organigram, self.dezorganigram, self.vescine)) class Test10(Test): def test_1_nivo(self): self.assertEqual(0, nivo(self.organigram, self.dezorganigram, "Ana")) self.assertEqual(1, nivo(self.organigram, self.dezorganigram, "Berta")) self.assertEqual(2, nivo(self.organigram, self.dezorganigram, "Dani")) self.assertEqual(2, nivo(self.organigram, self.dezorganigram, "Fanci")) self.assertEqual(3, nivo(self.organigram, self.dezorganigram, "Helga")) self.assertEqual(3, nivo(self.organigram, self.dezorganigram, "Liza")) self.assertEqual(4, nivo(self.organigram, self.dezorganigram, "Poldka")) def test_2_stevilo_nivojev(self): self.assertEqual(4, stevilo_nivojev(self.organigram, self.dezorganigram)) def test_3_nadrejeni(self): self.assertEqual({"Ana"}, nadrejeni(self.organigram, self.dezorganigram, "Ana")) self.assertEqual({"Ana", "Berta"}, nadrejeni(self.organigram, self.dezorganigram, "Berta")) self.assertEqual({"Ana", "Berta", "Dani"}, nadrejeni(self.organigram, self.dezorganigram, "Dani")) self.assertEqual({"Ana", "Berta", "Cilka", "Fanci"}, nadrejeni(self.organigram, self.dezorganigram, "Fanci")) self.assertEqual({"Ana", "Berta", "Cilka", "Dani", "Fanci", "Helga"}, nadrejeni(self.organigram, self.dezorganigram, "Helga")) self.assertEqual({"Ana", "Berta", "Cilka", "Dani", "Ema", "Fanci", "Jana"}, nadrejeni(self.organigram, self.dezorganigram, "Jana")) self.assertEqual({"Ana", "Berta", "Cilka", "Fanci", "Greta", "Liza"}, nadrejeni(self.organigram, self.dezorganigram, "Liza")) self.assertEqual({"Ana", "Cilka", "Greta", "Olga", "Poldka"}, nadrejeni(self.organigram, self.dezorganigram, "Poldka")) def test_4_nadrejeni_zares(self): self.assertEqual(set(), nadrejeni_zares(self.organigram, self.dezorganigram, "Ana")) self.assertEqual({"Ana"}, nadrejeni_zares(self.organigram, self.dezorganigram, "Berta")) self.assertEqual({"Ana", "Berta"}, nadrejeni_zares(self.organigram, self.dezorganigram, "Dani")) self.assertEqual({"Ana", "Berta", "Cilka"}, nadrejeni_zares(self.organigram, self.dezorganigram, "Fanci")) self.assertEqual({"Ana", "Berta", "Cilka", "Dani", "Fanci"}, nadrejeni_zares(self.organigram, self.dezorganigram, "Helga")) self.assertEqual({"Ana", "Berta", "Cilka", "Dani", "Ema", "Fanci"}, nadrejeni_zares(self.organigram, self.dezorganigram, "Jana")) self.assertEqual({"Ana", "Berta", "Cilka", "Fanci", "Greta"}, nadrejeni_zares(self.organigram, self.dezorganigram, "Liza")) self.assertEqual({"Ana", "Cilka", "Greta", "Olga"}, nadrejeni_zares(self.organigram, self.dezorganigram, "Poldka")) if __name__ == "__main__": unittest.main()