08_zmagozmagovalci

This commit is contained in:
Gašper Dobrovoljc 2023-12-15 08:42:59 +01:00
parent 0400df0ede
commit 02cae0ff85
No known key found for this signature in database
GPG Key ID: 0E7E037018CFA5A5
7 changed files with 94 additions and 2 deletions

View File

@ -0,0 +1,3 @@
<component name="ProjectDictionaryState">
<dictionary name="gapi" />
</component>

View File

@ -2,7 +2,7 @@
<module type="PYTHON_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$" />
<orderEntry type="inheritedJdk" />
<orderEntry type="jdk" jdkName="Python 3.11 (domace_naloge)" jdkType="Python SDK" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View File

@ -1,5 +1,6 @@
<component name="InspectionProjectProfileManager">
<settings>
<option name="PROJECT_PROFILE" value="Default" />
<option name="USE_PROJECT_PROFILE" value="false" />
<version value="1.0" />
</settings>

View File

@ -1,6 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.12" project-jdk-type="Python SDK" />
<component name="Black">
<option name="sdkName" value="Python 3.11 (domace_naloge)" />
</component>
<component name="ProjectRootManager" version="2" project-jdk-name="Python 3.11 (domace_naloge)" project-jdk-type="Python SDK" />
<component name="PyPackaging">
<option name="earlyReleasesAsUpgrades" value="true" />
</component>

View File

View File

@ -0,0 +1,16 @@
def hitrejsi(kolesar1, kolesar2, razmerja):
if dokazov(kolesar1, kolesar2, razmerja):
return kolesar1
elif dokazov(kolesar2, kolesar1, razmerja):
return kolesar2
return None
def dokazov(kolesar1, kolesar2, razmerja):
dokazi = 0
for kolesar in razmerja[kolesar1]:
if kolesar == kolesar2:
dokazi += 1
else:
dokazi += dokazov(kolesar, kolesar2, razmerja)
return dokazi

View File

@ -0,0 +1,69 @@
from .naloga import *
from itertools import pairwise
import unittest
razmerja = {'Ana': {'Vera', 'Cilka'},
'Berta': {'Greta', 'Klara', 'Iva', 'Cilka'},
'Cilka': {'Olga'},
'Črtomira': set(),
'Dani': {'Liza', 'Ana', 'Fanči', 'Cilka', 'Micka', 'Greta'},
'Ema': set(),
'Fanči': {'Liza', 'Poldka', 'Cilka'},
'Greta': set(),
'Helga': set(),
'Iva': {'Ema', 'Helga'},
'Jana': {'Liza', 'Dani', 'Berta', 'Micka', 'Tina', 'Greta'},
'Klara': {'Helga', 'Nina'},
'Liza': {'Vera', 'Olga', 'Rezka'},
'Micka': {'Liza', 'Saša', 'Urša'},
'Nina': {'Olga', 'Poldka'},
'Olga': {'Poldka'},
'Poldka': set(),
'Rezka': {'Saša'},
'Saša': set(),
'Špela': {'Žana'},
'Tina': set(),
'Urša': {'Vera'},
'Vera': set(),
'Zoja': {'Žana', 'Tina'},
'Žana': set()}
razmerja2 = {x: {y} for x, y in pairwise(sorted(razmerja))}
razmerja2.update({"Žana": set(), "Trelawney": set()})
class Test(unittest.TestCase):
def test_01_obvezna(self):
self.assertEqual("Jana", hitrejsi("Jana", "Berta", razmerja))
self.assertEqual("Jana", hitrejsi("Berta", "Jana", razmerja))
self.assertEqual("Berta", hitrejsi("Berta", "Poldka", razmerja))
self.assertEqual("Berta", hitrejsi("Poldka", "Berta", razmerja))
self.assertEqual("Berta", hitrejsi("Poldka", "Berta", razmerja))
self.assertIsNone(hitrejsi("Saša", "Berta", razmerja))
self.assertIsNone(hitrejsi("Berta", "Saša", razmerja))
self.assertIsNone(hitrejsi("Špela", "Tina", razmerja))
self.assertIsNone(hitrejsi("Jana", "Črtomira", razmerja))
self.assertIsNone(hitrejsi("Črtomira", "Jana", razmerja))
self.assertEqual("Ana", hitrejsi("Ana", "Žana", razmerja2))
self.assertEqual("Ana", hitrejsi("Žana", "Ana", razmerja2))
self.assertIsNone(hitrejsi("Ana", "Trelawney", razmerja2))
self.assertIsNone(hitrejsi("Ana", "Trelawney", razmerja2))
def test_02_dokazov(self):
self.assertEqual(1, dokazov("Jana", "Berta", razmerja))
self.assertEqual(0, dokazov("Berta", "Jana", razmerja))
self.assertEqual(4, dokazov("Jana", "Cilka", razmerja))
self.assertEqual(1, dokazov("Jana", "Nina", razmerja))
self.assertEqual(5, dokazov("Jana", "Liza", razmerja))
self.assertEqual(10, dokazov("Jana", "Olga", razmerja))
self.assertEqual(12, dokazov("Jana", "Poldka", razmerja))
self.assertEqual(1, dokazov("Špela", "Žana", razmerja))
self.assertEqual(1, dokazov("Ana", "Žana", razmerja2))
self.assertEqual(0, dokazov("Žana", "Ana", razmerja2))
if __name__ == "__main__":
unittest.main()