text: def besedilo(tvit):
      tvit=tvit.split(': ',1)[1]
      return tvit
  
  def zadnji_tvit(tviti):
      slovar={}
      for t in tviti:
          avtor=t.split(': ',1)[0]
          text=t.split(': ',1)[1]
          slovar[avtor]=text
      return slovar
  
  def prvi_tvit(tviti):
      slovar = {}
      for t in tviti:
          avtor = t.split(': ', 1)[0]
          text = t.split(': ', 1)[1]
          if (avtor not in slovar):
              slovar[avtor] = text
      return slovar
  
  def prestej_tvite(tviti):
      slovar={}
      for t in tviti:
          avtor = t.split(': ', 1)[0]
          if(avtor in slovar):
              x=slovar[avtor]+1
              slovar[avtor] = x
          else:
              slovar[avtor]=1
      return slovar
  def se_zacne_z(tvit, c):
      a=[]
      b=[]
      a=tvit.split(' ')
      for twitt in a:
          if(twitt.startswith(c)):
              b.append(izloci_besedo(twitt))
  
      return(b)
  def izloci_besedo(beseda):
      x=0
      y=0
      while (x == 0 & y==0):
          dol = len(beseda)
          if(beseda[0].isalnum() == False):
              beseda=beseda[1:]
              dol = len(beseda)
          else:
              x = 1
          if(beseda[dol-1].isalnum()== False):
              beseda=beseda[:-1]
              dol = len(beseda)
          else:
              y = 1
      return beseda
  def omembe(tviti):
      slovar={}
      seznam=[]
      for t in tviti:
          avtor = t.split(': ', 1)[0]
          seznam=se_zacne_z(t,'@')
          if (avtor in slovar):
              x=slovar[avtor]
              slovar[avtor]=x+seznam
          else:
              slovar[avtor]=seznam
      return slovar
  
  def neomembe(ime, omembe):
      slovar={}
      seznam=[]
      x=slovar = omembe[ime]
      for t in omembe:
          if t not in x:
              if t != ime:
                  seznam.append(t)
      return seznam
  
  import unittest
  
  class TestObvezna(unittest.TestCase):
      maxDiff = 10000
  
      def test_1_besedilo(self):
          self.assertEqual(besedilo("sandra: Spet ta dež. #dougcajt"),
                           "Spet ta dež. #dougcajt")
          self.assertEqual(besedilo("ana: kdo so te: @berta, @cilka, @dani? #krneki"),
                           "kdo so te: @berta, @cilka, @dani? #krneki")
  
      def test_2_zadnji_tvit(self):
          self.assertDictEqual(
              zadnji_tvit([
                  "sandra: Spet ta dež. #dougcajt",
                  "berta: @sandra Delaj domačo za #programiranje1",
                  "sandra: @berta Ne maram #programiranje1 #krneki",
                  "ana: kdo so te: @berta, @cilka, @dani? #krneki",
                  "cilka: jst sm pa #luft",
                  "benjamin: pogrešam ano #zalosten",
                  "cilka: @benjamin @ana #split? po dvopičju, za začetek?"]),
              {"berta": "@sandra Delaj domačo za #programiranje1",
               "sandra": "@berta Ne maram #programiranje1 #krneki",
               "ana": "kdo so te: @berta, @cilka, @dani? #krneki",
               "benjamin": "pogrešam ano #zalosten",
               "cilka": "@benjamin @ana #split? po dvopičju, za začetek?"})
  
          self.assertDictEqual(
              zadnji_tvit([
                  "sandra: Spet ta dež. #dougcajt",
                  "sandra: @sandra Delaj domačo za #programiranje1",
                  "sandra: @berta Ne maram #programiranje1 #krneki",
                  "ana: kdo so te: @berta, @cilka, @dani? #krneki",
                  "sandra: jst sm pa #luft",
                  "benjamin: pogrešam ano #zalosten",
                  "sandra: @benjamin @ana #split? po dvopičju, za začetek?"]),
              {"ana": "kdo so te: @berta, @cilka, @dani? #krneki",
               "benjamin": "pogrešam ano #zalosten",
               "sandra": "@benjamin @ana #split? po dvopičju, za začetek?"})
  
          self.assertDictEqual(
              zadnji_tvit(["ana: kdo so te: @berta, @cilka, @dani? #krneki"]),
              {"ana": "kdo so te: @berta, @cilka, @dani? #krneki"})
  
          self.assertEqual(zadnji_tvit([]), {})
  
  
      def test_3_prvi_tvit(self):
          self.assertDictEqual(
              prvi_tvit([
                  "sandra: Spet ta dež. #dougcajt",
                  "berta: @sandra Delaj domačo za #programiranje1",
                  "sandra: @berta Ne maram #programiranje1 #krneki",
                  "ana: kdo so te: @berta, @cilka, @dani? #krneki",
                  "cilka: jst sm pa #luft",
                  "benjamin: pogrešam ano #zalosten",
                  "cilka: @benjamin @ana #split? po dvopičju, za začetek?"]),
              {"sandra": "Spet ta dež. #dougcajt",
               "berta": "@sandra Delaj domačo za #programiranje1",
               "ana": "kdo so te: @berta, @cilka, @dani? #krneki",
               "cilka": "jst sm pa #luft",
               "benjamin": "pogrešam ano #zalosten"})
  
          self.assertDictEqual(
              prvi_tvit([
                  "sandra: Spet ta dež. #dougcajt",
                  "sandra: @sandra Delaj domačo za #programiranje1",
                  "sandra: @berta Ne maram #programiranje1 #krneki",
                  "ana: kdo so te: @berta, @cilka, @dani? #krneki",
                  "sandra: jst sm pa #luft",
                  "benjamin: pogrešam ano #zalosten",
                  "sandra: @benjamin @ana #split? po dvopičju, za začetek?"]),
              {"sandra": "Spet ta dež. #dougcajt",
               "ana": "kdo so te: @berta, @cilka, @dani? #krneki",
               "benjamin": "pogrešam ano #zalosten"})
  
          self.assertDictEqual(
              prvi_tvit(["ana: kdo so te: @berta, @cilka, @dani? #krneki"]),
              {"ana": "kdo so te: @berta, @cilka, @dani? #krneki"})
  
          self.assertEqual(prvi_tvit([]), {})
  
      def test_4_prestej_tvite(self):
          self.assertDictEqual(
              prestej_tvite([
                  "sandra: Spet ta dež. #dougcajt",
                  "berta: @sandra Delaj domačo za #programiranje1",
                  "sandra: @berta Ne maram #programiranje1 #krneki",
                  "ana: kdo so te: @berta, @cilka, @dani? #krneki",
                  "cilka: jst sm pa #luft",
                  "benjamin: pogrešam ano #zalosten",
                  "cilka: @benjamin @ana #split? po dvopičju, za začetek?"]),
              {"sandra": 2, "berta": 1, "ana": 1, "cilka": 2, "benjamin": 1})
  
          self.assertDictEqual(
              prestej_tvite([
                      "sandra: Spet ta dež. #dougcajt",
                      "sandra: @sandra Delaj domačo za #programiranje1",
                      "sandra: @berta Ne maram #programiranje1 #krneki",
                      "ana: kdo so te: @berta, @cilka, @dani? #krneki",
                      "sandra: jst sm pa #luft",
                      "benjamin: pogrešam ano #zalosten",
                      "sandra: @benjamin @ana #split? po dvopičju, za začetek?"]),
              {"sandra": 5, "ana": 1, "benjamin": 1})
  
          self.assertDictEqual(
              prestej_tvite(["ana: kdo so te: @berta, @cilka, @dani? #krneki"]),
              {"ana": 1})
  
          self.assertEqual(prestej_tvite([]), {})
  
      def test_5_omembe(self):
          self.assertDictEqual(
              omembe(["sandra: Spet ta dež. #dougcajt",
                      "berta: @sandra Delaj domačo za #programiranje1",
                      "sandra: @berta Ne maram #programiranje1 #krneki",
                      "ana: kdo so te: @berta, @cilka, @dani? #krneki",
                      "cilka: jst sm pa #luft",
                      "benjamin: pogrešam ano #zalosten",
                      "sandra: @benjamin @ana #split? po dvopičju, za začetek?"]),
              {"sandra": ["berta", "benjamin", "ana"],
               "benjamin": [],
               "cilka": [],
               "berta": ["sandra"],
               "ana": ["berta", "cilka", "dani"]}
          )
  
      def test_6_neomembe(self):
          omembe = {"sandra": ["berta", "benjamin", "ana"],
                    "benjamin": [],
                    "cilka": [],
                    "berta": ["sandra"],
                    "ana": ["berta", "cilka", "dani", "benjamin", "sandra"]}
  
          self.assertEqual(neomembe("sandra", omembe), ["cilka"])
          self.assertEqual(neomembe("ana", omembe), [])
          self.assertEqual(set(neomembe("benjamin", omembe)), set(omembe) - {"benjamin"})
  
  class TestDodatna(unittest.TestCase):
      def test_1_se_poznata(self):
          omembe = {"sandra": ["berta", "benjamin", "ana"],
                    "benjamin": [],
                    "cilka": [],
                    "berta": ["sandra"],
                    "ana": ["berta", "cilka", "dani"]}
  
          self.assertTrue(se_poznata("ana", "berta", omembe))
          self.assertTrue(se_poznata("berta", "ana", omembe))
          self.assertTrue(se_poznata("sandra", "benjamin", omembe))
          self.assertTrue(se_poznata("benjamin", "sandra", omembe))
  
          self.assertFalse(se_poznata("benjamin", "ana", omembe))
          self.assertFalse(se_poznata("ana", "benjamin", omembe))
  
          self.assertFalse(se_poznata("cilka", "dani", omembe))
          self.assertFalse(se_poznata("pavel", "peter", omembe))
  
      def test_2_hashtagi(self):
          self.assertDictEqual(
              hashtagi(["sandra: Spet ta dež. #dougcajt",
                        "berta: @sandra Delaj domačo za #programiranje1",
                        "sandra: @berta Ne maram #programiranje1 #krneki",
                        "ana: kdo so te @berta, @cilka, @dani? #krneki",
                        "cilka: jst sm pa #luft",
                        "benjamin: pogrešam ano #zalosten",
                        "ema: @benjamin @ana #split? po dvopičju, za začetek?"]),
              {'dougcajt': ['sandra'],
               'krneki': ['ana', 'sandra'],
               'luft': ['cilka'],
               'programiranje1': ['berta', 'sandra'],
               'split': ['ema'],
               'zalosten': ['benjamin']})
  
  
  if __name__ == "__main__":
      unittest.main()
  
  
  