Josif_tepe

Untitled

Aug 13th, 2025
384
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 8.62 KB | None | 0 0
  1.  
  2.  
  3.  
  4. def indeks_drzave(drzave, drzava):
  5.     return np.where(drzave == drzava)[0][0]
  6.  
  7.  
  8. import unittest
  9. import numpy as np
  10.  
  11. def srecne_drzave(tezina, vrednost, drzavi, mera):
  12.     pari = vrednost / tezina
  13.     niza = pari < mera
  14.     return drzavi[niza]
  15.  
  16.  
  17. def vec_kot(tezina, drzavi, drzava):
  18.     idx = indeks_drzave(drzavi, drzava)
  19.     tezina_na_drzava = tezina[idx]
  20.  
  21.     return np.sum(tezina > tezina_na_drzava)
  22.  
  23.  
  24. class Test(unittest.TestCase):
  25.     teze = np.array([
  26.         1068570000, 9342850, 612897, 18700200, 49379400, 56, 370860, 43500500, 10144900, 13835200, 43631, 560529, 744,
  27.         17534600, 244311, 1532300, 196011000, 11942800, 14537700, 126296000, 1109590000, 19241800, 351094000, 78485700,
  28.         200695000, 38, 36990300, 1043, 44463300, 2254140, 8458220, 4928940, 34353400, 665230000, 921, 4361420000,
  29.         6713560,
  30.         2801620, 25146700, 1383, 232316000, 16513200, 15257100, 87426100, 1262980, 984042, 3696, 5001, 2276820, 1834080,
  31.         3674190, 1389550, 18517700, 1405, 70, 214838000, 243406, 3811980, 209393, 663050000, 184010000, 37136, 2776060,
  32.         1023000000, 96376, 42021600, 73296100, 10801, 652604000, 11648, 175679000, 56456100, 3244410, 432232, 28058500,
  33.         5749150, 496208000, 189785000, 661390000, 306924000, 3990210, 2201580, 252888000, 721, 14383800, 24717400, 80,
  34.         1035, 77105800, 5007, 20, 6560710, 15098200, 1260, 1308900000, 4985, 16187800, 81313800, 207859000, 12153300,
  35.         27587000, 10744700, 620922, 120931000, 4078, 98410700, 40, 511178, 79888700, 10536100, 337907000, 623329, 54,
  36.         21303300, 2243, 6242780, 53954900, 39347600, 58980300, 954379, 45073400, 221254000, 11955600, 8986530, 201142,
  37.         152588000, 67857700, 2779200, 39630100, 4220, 72308600, 91093500, 505, 423, 682, 111907000, 8342420, 55854900,
  38.         1000, 7133440, 192466, 623, 41875700, 20, 564718000, 7, 49, 36951000, 97095, 67025]
  39.     )
  40.     vrednosti = np.array([
  41.         704414240.0, 5198640.0, 157250.0, 5112190.0, 36917880.0, 630.0, 8000.0, 15652370.0, 5257200.0, 9220620.0,
  42.         92800.0,
  43.         448430.0, 4370.0, 12969130.0, 49730.0, 382490.0, 132893720.0, 11756100.0, 4162040.0, 128338700.0, 850738690.0,
  44.         19999940.0, 114364670.0, 82133940.0, 95349460.0, 290.0, 8672850.0, 1770.0, 34411500.0, 235290.0, 11840420.0,
  45.         8420020.0, 30988300.0, 246818670.0, 6020.0, 2121188560.0, 1053330.0, 89600.0, 2210900.0, 1390.0, 89375730.0,
  46.         8342040.000000001, 14250450.0, 86454840.0, 1010400.0, 5040470.0, 2960.0, 34260.0, 1324970.0, 1448430.0,
  47.         1362790.0,
  48.         769760.0, 1500810.0, 310.0, 290.0, 154979800.0, 319310.0, 212700.0, 317670.0, 497390830.0, 180013280.0, 17550.0,
  49.         1794780.0, 762868730.0, 42760.0, 32244710.0, 34409890.0, 8550.0, 704455360.0, 52000.0, 47054850.0, 70982550.0,
  50.         306660.0, 75920.0, 12041100.0, 5823920.0, 354618660.0, 131940180.0, 392402000.0, 176103690.0,
  51.         4178640.0000000005,
  52.         331280.0, 202587630.0, 3080.0, 11359250.0, 910640.0, 190.0, 830.0, 67082000.0, 21350.0, 340.0, 3809010.0,
  53.         14232640.0, 1920.0, 946332640.0, 24940.0, 11224320.0, 61946980.0, 105558710.0, 339780.0, 16204030.0, 5069310.0,
  54.         55400.0, 100032790.0, 3260.0, 47176630.0, 120.0, 163550.0, 101210240.0, 5584560.0, 210354680.0, 405000.0, 10.0,
  55.         3255560.0, 4140.0, 7085300.0, 36155240.0, 17821430.0, 54699790.0, 744540.0, 24541610.0, 186693450.0, 1974190.0,
  56.         5114640.0, 158850.0, 102653740.0, 47623360.0, 1565850.0, 25061160.0, 3550.0, 57945390.0, 57052640.0, 400.0,
  57.         470.0,
  58.         12040.0, 16552220.000000002, 367340.0, 4715430.0, 160.0, 7980060.0, 803750.0, 1060.0, 30607910.0, 20.0,
  59.         427873090.0, 130.0, 240.0, 22456700.0, 111600.0, 32400.0]
  60.     )
  61.     drzave = np.array([
  62.         'Russian Federation', 'Botswana', 'Paraguay', 'Tunisia', 'Croatia', 'Cook Islands', 'Benin', 'Uruguay',
  63.         'Egypt, Arab Rep.', 'Bahrain', 'Greenland', 'Vietnam', 'French Polynesia', 'Albania', 'Lebanon', 'Malaysia',
  64.         'Czech Republic', 'Estonia', 'Trinidad and Tobago', 'Austria', 'Japan', 'Azerbaijan', 'Argentina', 'Norway',
  65.         'Turkey', 'Vanuatu', 'South Africa', 'Malawi', 'Belarus', 'Mauritania', 'Armenia', 'Luxembourg', 'Lithuania',
  66.         'China', 'New Caledonia', 'United States', 'Nigeria', 'Burkina Faso', 'Colombia', 'Fiji',
  67.         'Syrian Arab Republic',
  68.         'Senegal', 'Georgia', 'Denmark', 'Bermuda', 'Bahamas, The', 'Dominican Republic', 'Venezuela', 'Macao',
  69.         'Brunei',
  70.         'Barbados', 'Maldives', 'Mali', 'Pakistan', "Cote d'Ivoire", 'Ukraine', 'Andorra', 'Niger', 'Mexico', 'Italy',
  71.         'Sweden', 'St. Kitts and Nevis', 'Aruba', 'United Kingdom', 'Kenya', 'Bulgaria', 'Hong Kong, China', 'Panama',
  72.         'Belgium', 'Israel', 'Chile', 'Finland', 'Rwanda', 'Bhutan', 'Morocco', 'Iceland', 'Canada', 'Spain',
  73.         'Iran, Islamic Rep.', 'Saudi Arabia', 'Namibia', 'Guatemala', 'Poland', 'Ethiopia(excludes Eritrea)',
  74.         'Occ.Pal.Terr', 'Costa Rica', 'Comoros', 'Lao PDR', 'Hungary', 'Ghana', 'Gambia, The', 'Montenegro', 'Latvia',
  75.         'Bangladesh', 'Germany', 'Brazil', 'North Macedonia', 'New Zealand', 'Algeria', 'Nepal', 'Qatar', 'Oman',
  76.         'Uganda', 'Greece', 'Mozambique', 'Libya', 'Guyana', 'Zimbabwe', 'Switzerland', 'Moldova', 'Korea, Rep.',
  77.         'Antigua and Barbuda', 'Bolivia', 'Afghanistan', 'Gabon', 'Malta', 'Slovenia', 'Singapore', 'Slovak Republic',
  78.         'Lesotho', 'Kazakhstan', 'Netherlands', 'Thailand', 'Kyrgyz Republic', 'Zambia', 'Portugal', 'Romania',
  79.         'Indonesia', 'Jordan', 'Angola', 'Ireland', 'Kuwait', 'Micronesia, Fed. Sts.', 'St. Lucia', 'Seychelles',
  80.         'El Salvador', 'Nicaragua', 'Honduras', 'Burundi', 'Cyprus', 'Australia', 'Cape Verde',
  81.         'Serbia, FR(Serbia/Montenegro)', 'Palau', 'France', 'Other Asia, nes', 'Tonga', 'Bosnia and Herzegovina',
  82.         'Grenada', 'Sri Lanka']
  83.     )
  84.  
  85.     def test_01_srecne_drzave(self):
  86.         srecne = srecne_drzave(self.teze, self.vrednosti, self.drzave, 0.6)
  87.         self.assertIsInstance(srecne, np.ndarray, "Funkcija mora vrniti numpy array")
  88.         np.testing.assert_equal(
  89.             np.array(['Botswana', 'Paraguay', 'Tunisia', 'Benin', 'Uruguay', 'Egypt, Arab Rep.', 'Lebanon', 'Malaysia',
  90.                       'Trinidad and Tobago', 'Argentina', 'Turkey', 'South Africa', 'Mauritania', 'China',
  91.                       'United States', 'Nigeria', 'Burkina Faso', 'Colombia', 'Syrian Arab Republic', 'Senegal',
  92.                       'Macao', 'Barbados', 'Maldives', 'Mali', 'Pakistan', 'Niger', 'St. Kitts and Nevis', 'Kenya',
  93.                       'Hong Kong, China', 'Chile', 'Rwanda', 'Bhutan', 'Morocco', 'Iran, Islamic Rep.', 'Saudi Arabia',
  94.                       'Guatemala', 'Costa Rica', 'Montenegro', 'Algeria', 'Nepal', 'Qatar', 'Oman', 'Uganda', 'Libya',
  95.                       'Zimbabwe', 'Moldova', 'Bolivia', 'Afghanistan', 'Singapore', 'Kazakhstan', 'Thailand',
  96.                       'Kyrgyz Republic', 'Indonesia', 'El Salvador', 'Nicaragua', 'Honduras', 'Burundi', 'Sri Lanka'
  97.                       ]),
  98.             srecne)
  99.  
  100.         np.testing.assert_equal(
  101.             np.array([
  102.                 'Paraguay', 'Tunisia', 'Benin', 'Uruguay', 'Lebanon', 'Malaysia', 'Trinidad and Tobago', 'Argentina',
  103.                 'Turkey', 'South Africa', 'Mauritania', 'China', 'United States', 'Nigeria', 'Burkina Faso', 'Colombia',
  104.                 'Syrian Arab Republic', 'Barbados', 'Mali', 'Pakistan', 'Niger', 'St. Kitts and Nevis', 'Kenya',
  105.                 'Hong Kong, China', 'Chile', 'Rwanda', 'Bhutan', 'Morocco', 'Guatemala', 'Costa Rica', 'Nepal', 'Oman',
  106.                 'Uganda', 'Libya', 'Zimbabwe', 'Bolivia', 'Afghanistan', 'Singapore', 'Thailand', 'El Salvador',
  107.                 'Nicaragua', 'Honduras', 'Burundi', 'Sri Lanka'
  108.             ]),
  109.             srecne_drzave(self.teze, self.vrednosti, self.drzave, 0.5))
  110.  
  111.         np.testing.assert_equal(
  112.             np.array(['Benin', 'Burkina Faso', 'Colombia', 'Mali', 'Niger', 'Rwanda', 'Costa Rica', 'Nepal', 'Uganda',
  113.                       'Nicaragua', 'Honduras'
  114.                       ]),
  115.             srecne_drzave(self.teze, self.vrednosti, self.drzave, 0.1))
  116.  
  117.     def test_02_vec_kot(self):
  118.         self.assertEqual(2, vec_kot(np.array([2, 1, 3]), np.array(["a", "b", "c"]), "b"))
  119.         self.assertEqual(1, vec_kot(np.array([2, 1, 3]), np.array(["a", "b", "c"]), "a"))
  120.         self.assertEqual(0, vec_kot(np.array([2, 1, 3]), np.array(["a", "b", "c"]), "c"))
  121.  
  122.         self.assertEqual(41, vec_kot(self.teze, self.drzave, "Slovenia"))
  123.         self.assertEqual(0, vec_kot(self.teze, self.drzave, "United States"))
  124.         self.assertEqual(5, vec_kot(self.teze, self.drzave, "China"))
  125.  
  126.  
  127. if __name__ == "__main__":
  128.     unittest.main()
  129.  
Advertisement
Add Comment
Please, Sign In to add comment