Josif_tepe

Untitled

Aug 14th, 2025
139
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 7.17 KB | None | 0 0
  1.  
  2.  
  3. import numpy as np
  4. import unittest
  5.  
  6.  
  7.  
  8. naslovi = np.genfromtxt("chapters.txt", dtype=str, delimiter='\n')
  9.  
  10. data = np.genfromtxt("mentions.txt", delimiter=',', dtype=str)
  11. poglavja = data[:, 0].astype(int) - 1
  12. osebe = data[:, 1]
  13. omembe = data[:, 2].astype(float)
  14.  
  15. def naj_oseba():
  16.     return osebe[np.argmax(omembe)]
  17.  
  18. def naj_dogajanje():
  19.     return naslovi[poglavja[np.argmax(omembe)]], osebe[np.argmax(omembe)]
  20.  
  21. def prva_omemba(licnost):
  22.     #return naslovi[poglavja[np.where(licnost == osebe)[0][0]]]
  23.     return naslovi[np.min(poglavja[licnost == osebe])]
  24.  
  25. def koliko_poglavij(licnost):
  26.     return len(np.unique(poglavja[licnost == osebe]))
  27.  
  28. def v_poglavjih_st(licnost):
  29.     return np.unique(poglavja[licnost == osebe])
  30.  
  31. def v_poglavjih(licnost):
  32.     return naslovi[np.unique(poglavja[licnost == osebe])]
  33.  
  34. def vseh_omemb(licnost):
  35.     return np.sum(omembe[licnost == osebe])
  36.     #return omembe[licnost == osebe].sum()
  37.  
  38. class Test0(unittest.TestCase):
  39.     def test(self):
  40.         np.testing.assert_equal(
  41.             ['The Other Minister', "Spinner's End", "Will and Won't",
  42.              'Horace Slughorn'],
  43.             naslovi[:4]
  44.         )
  45.         np.testing.assert_equal(
  46.             ['The Lightning-Struck Tower', 'Flight of the Prince',
  47.              'The Phoenix Lament', 'The White Tomb'],
  48.             naslovi[-4:]
  49.         )
  50.         np.testing.assert_equal(
  51.             [0, 1, 2, 3, 3, 4, 5, 5, 6, 6, 6, 7, 7, 8, 8, 9, 10,
  52.              10, 10, 11, 11, 12, 13, 13, 13, 14, 14, 15, 15, 16, 16, 16, 17, 17,
  53.              18, 18, 19, 19, 20, 20, 21, 22, 23, 23, 23, 24, 25, 26, 27, 28, 28,
  54.              28, 29, 29, 29],
  55.             poglavja[::17]
  56.         )
  57.         np.testing.assert_equal(
  58.             ['Burke', 'Harry', 'Sirius', 'Dumbledore', 'Bones', 'Scrimgeour',
  59.              'Voldemort', 'First', 'Kingsley', 'Vance', 'Fudge', 'Lestrange',
  60.              'Lucius', 'Harry', 'Dumbledore', 'Narcissa', 'Sirius', 'Snape',
  61.              'Voldemort', 'Draco', 'Quirrell', 'Karkaroff', 'Greyback',
  62.              'Potter', 'Vance', 'Avery', 'Yaxley', 'Black', 'Lestrange',
  63.              'Harry'],
  64.             osebe[:30]
  65.         )
  66.         np.testing.assert_equal(
  67.             [3, 1, 10, 4, 4, 16, 1, 1, 3, 3, 72, 36, 8, 3, 20, 46, 1,
  68.              76, 51, 14, 1, 1, 1, 3, 1, 1, 1, 1, 6, 66],
  69.             omembe[:30])
  70.         np.testing.assert_equal(
  71.             [2, 1, 5, 1, 1, 1, 1, 1, 11, 5, 7, 4, 1, 2, 1, 4, 1,
  72.              4, 2, 2, 1, 15, 28, 2, 1, 2, 1, 1, 1, 1],
  73.             omembe[-30:]
  74.         )
  75.  
  76.  
  77.  
  78. class Test1(unittest.TestCase):
  79.     def test_1_naj_oseba(self):
  80.         self.assertEqual("Harry", naj_oseba())
  81.  
  82.     def test_2_naj_dogajanje(self):
  83.         self.assertEqual(("The Cave", "Harry"), naj_dogajanje())
  84.  
  85.     def test_3_prva_omemba(self):
  86.         self.assertEqual("The Other Minister", prva_omemba("Harry"))
  87.         self.assertEqual("The Other Minister", prva_omemba("Sirius"))
  88.         self.assertEqual("Spinner's End", prva_omemba("Draco"))
  89.         self.assertEqual("Will and Won't", prva_omemba("Rosmerta"))
  90.         self.assertEqual("Horace Slughorn", prva_omemba("Umbridge"))
  91.         self.assertEqual("An Excess of Phlegm", prva_omemba("Ginny"))
  92.         self.assertEqual("Snape Victorious", prva_omemba("Filch"))
  93.  
  94.     def test_4_koliko_poglavij(self):
  95.         self.assertEqual(30, koliko_poglavij("Harry"))
  96.         self.assertEqual(16, koliko_poglavij("Sirius"))
  97.         self.assertEqual(17, koliko_poglavij("Draco"))
  98.         self.assertEqual(6, koliko_poglavij("Rosmerta"))
  99.         self.assertEqual(6, koliko_poglavij("Umbridge"))
  100.         self.assertEqual(22, koliko_poglavij("Ginny"))
  101.  
  102.     def test_5_v_poglavjih_st(self):
  103.         np.testing.assert_equal(
  104.             [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29],
  105.             v_poglavjih_st("Harry"))
  106.         np.testing.assert_equal(
  107.             [0,  1,  2,  3,  4,  5,  7, 11, 12, 15, 20, 22, 23, 24, 28, 29],
  108.             v_poglavjih_st("Sirius"))
  109.         np.testing.assert_equal(
  110.             [1,  5,  6,  7, 11, 12, 13, 14, 15, 18, 19, 20, 21, 23, 24, 26, 27],
  111.             v_poglavjih_st("Draco"))
  112.         np.testing.assert_equal(
  113.             [ 2, 11, 20, 24, 26, 28],
  114.             v_poglavjih_st("Rosmerta"))
  115.         np.testing.assert_equal(
  116.             [ 3,  4,  6, 15, 16, 29],
  117.             v_poglavjih_st("Umbridge"))
  118.         np.testing.assert_equal(
  119.             [ 4,  5,  6,  7,  8, 10, 11, 13, 14, 15, 16, 17, 18, 19, 21, 23, 24, 25, 26, 27, 28, 29],
  120.             v_poglavjih_st("Ginny"))
  121.  
  122.     def test_6_v_poglavjih(self):
  123.         np.testing.assert_equal(
  124.             ["Will and Won't", 'Silver and Opals', 'The Unknowable Room',
  125.              'The Seer Overheard', 'The Lightning-Struck Tower',
  126.              'The Phoenix Lament'],
  127.             v_poglavjih("Rosmerta"))
  128.  
  129.         np.testing.assert_equal(
  130.             ['Horace Slughorn', 'An Excess of Phlegm', 'The Slug Club',
  131.              'A Very Frosty Christmas', 'A Sluggish Memory', 'The White Tomb'],
  132.             v_poglavjih("Umbridge"))
  133.  
  134.     def test_7_vseh_omemb(self):
  135.         self.assertEqual(2789, vseh_omemb("Harry"))
  136.         self.assertEqual(72, vseh_omemb("Sirius"))
  137.         self.assertEqual(72, vseh_omemb("Draco"))
  138.         self.assertEqual(21, vseh_omemb("Rosmerta"))
  139.         self.assertEqual(13, vseh_omemb("Umbridge"))
  140.         self.assertEqual(233, vseh_omemb("Ginny"))
  141. #
  142. #
  143. # class Test2(unittest.TestCase):
  144. #     def test_1_maska_poglavij(self):
  145. #         np.testing.assert_equal(
  146. #             [False, False, True, False, False, False, False, False, False,
  147. #              False, False, True, False, False, False, False, False, False,
  148. #              False, False, True, False, False, False, True, False, True,
  149. #              False, True, False],
  150. #             maska_poglavij("Rosmerta")
  151. #         )
  152. #         np.testing.assert_equal(
  153. #             [True, False, True, True, False, False, False, False, False,
  154. #              False, False, False, False, False, True, True, True, False,
  155. #              False, False, False, False, False, False, False, False, False,
  156. #              False, False, True],
  157. #             maska_poglavij("Fudge")
  158. #         )
  159. #         np.testing.assert_equal(
  160. #             [False, False, False, False, False, False, True, False, True,
  161. #              False, True, True, False, False, True, False, False, True,
  162. #              False, False, True, False, False, True, False, False, False,
  163. #              False, False, True],
  164. #             maska_poglavij("Crabbe")
  165. #         )
  166. #
  167. #     def test_2_podobnost(self):
  168. #         self.assertAlmostEqual(0.8666666666666667, podobnost("Harry", "Ron"))
  169. #         self.assertAlmostEqual(0.9615384615384616, podobnost("Hermione", "Ron"))
  170. #         self.assertAlmostEqual(0.8888888888888888, podobnost("Crabbe", "Goyle"))
  171. #         self.assertAlmostEqual(0.34615384615384615, podobnost("Crabbe", "Ron"))
  172. #         self.assertAlmostEqual(0.08333333333333333, podobnost("Rosmerta", "Fudge"))
  173. #         self.assertAlmostEqual(0, podobnost("Rosmerta", "Umbridge"))
  174. #         self.assertAlmostEqual(0.11764705882352941, podobnost("Filch", "Fudge"))
  175. #
  176.  
  177. if __name__ == "__main__":
  178.      unittest.main()
  179.    
Advertisement
Add Comment
Please, Sign In to add comment