示例#1
0
 def run(self):
     l = []
     undo = []
     functionClassModule = functionsClass()
     functionClassModule.exampleImplement(l)
     cmdsList = {
         "1": self.addUI,
         "2": self.insertUI,
         "3": self.removeUI,
         '4': self.replaceUI,
         '5': self.listUI,
         '6': self.avgUI,
         '7': self.minUI,
         '8': self.topUI
     }
     while True:
         self.printOptions()
         cmd = self.readCmd()
         if cmd == '0':
             return
         if cmd in cmdsList or cmd == '9':
             if cmd == '9':
                 l = self.undoUI(l, undo)
             else:
                 try:
                     import copy
                     aux = copy.deepcopy(l)
                     cmdsList[cmd](l)
                     if cmd != "5" and cmd != "6" and cmd != "7" and cmd != '8':
                         functionsClassModule = functionsClass()
                         functionsClassModule.saveTheFunction(aux, undo)
                 except ValueError as ex:
                     print(ex)
         else:
             print("invalid command")
示例#2
0
 def printSortedList(self, l):
     from src.functions import functionsClass
     functionsClass = functionsClass()
     order = functionsClass.sortTheList(l)
     for i in range(len(l)):
         print('Contestant ', order[i], ' : ', l[order[i]][0], ' ',
               l[order[i]][1], ' ', l[order[i]][2])
示例#3
0
 def insertUI(self, l, params):
     functionsClassModule = functionsClass()
     if len(params) != 5:
         raise ValueError(
             'Your syntax should be something like that insert 1 2 3 at 0 , you didnt write like so'
         )
     x = [int(params[0]), int(params[1]), int(params[2])]
     p = int(params[4])
     functionsClassModule.insert(l, x, p)
示例#4
0
 def minSumeUI(self, l, params):
     functionsClassModule = functionsClass()
     if len(params) != 3:
         raise ValueError(
             "Your syntax should be something like this : avg 1 to 5, you didnt write like so"
         )
     start = int(params[0])
     stop = int(params[2])
     print(functionsClassModule.minSume(start, stop, l))
示例#5
0
 def replaceUI(self, l, params):
     functionsClassModule = functionsClass()
     if len(params) != 4:
         raise ValueError(
             'Your syntax should be something like this : replace 4 P2 with 5, you didnt write like so'
         )
     p = int(params[0])
     s = int(params[3])
     x = int(params[1][1])
     functionsClassModule.replace(l, x, p, s)
示例#6
0
 def testSpecificListOp(self):
     from src.functions import functionsClass
     functionsClass = functionsClass()
     try:
         assert (functionsClass.createTheSpecificList(
             [[1, 1, 1], [2, 2, 2], [3, 3, 3], [4, 4, 4], [5, 5, 5]], 30,
             '<') == [[1, 1, 1], [2, 2, 2], [3, 3, 3]])
         assert (False)
     except AssertionError:
         assert (True)
示例#7
0
 def testReplaceOp(self):
     from src.functions import functionsClass
     functionsClass = functionsClass()
     try:
         assert (functionsClass.replace([[1, 1, 1], [2, 2, 2], [3, 3, 3]],
                                        4, 0, 9) == [[1, 1, 9], [2, 2, 2],
                                                     [3, 3, 3]])
         assert (False)
     except ValueError:
         assert (True)
示例#8
0
 def testRemoveOp(self):
     from src.functions import functionsClass
     functionsClass = functionsClass()
     assert (functionsClass.remove([[1, 2, 3], [4, 5, 6], [7, 8, 9]],
                                   2) == [[1, 2, 3], [4, 5, 6], [0, 0, 0]])
     try:
         functionsClass.remove([[1, 2, 3], [3, 4, 5]], 7)
         assert (False)  #asa sa facem la examen
     except ValueError:
         assert (True)
示例#9
0
 def printTopContestants(self, l, x):
     from src.functions import functionsClass
     functionsClass = functionsClass()
     if x < 0 or x >= len(l):
         raise ValueError("Your numbers isnt between the list bounderies")
     toPrint = functionsClass.topContestants(l, x)
     for i in range(len(toPrint)):
         print(i, '. Contestant ', toPrint[i][0], ' : ', toPrint[i][1], ' ',
               toPrint[i][2], ' ', toPrint[i][3], ' with avarage of ',
               toPrint[i][4])
示例#10
0
 def testAddOp(self):
     from src.functions import functionsClass
     functionsClass = functionsClass()
     try:
         assert (functionsClass.add([], [1, 2, 3]) == [[1, 2, 3]])
         assert (functionsClass.add([[1, 2]], [9, 10, 11]) == [[1, 2],
                                                               [9, 10, 11]])
         assert (False)
     except ValueError:
         assert (True)
示例#11
0
 def printSpecificList(self, l, x, sign):
     from src.functions import functionsClass
     functionsClass = functionsClass()
     toPrint = functionsClass.createTheSpecificList(l, x, sign)
     if toPrint == "There are no such contestants":
         print("There are no such contestants")
     else:
         for x in range(len(toPrint)):
             print('Contestant ', x, ' : ', toPrint[x][0], ' ',
                   toPrint[x][1], ' ', toPrint[x][2])
示例#12
0
 def run(self):
     l = []
     undo = []
     functionClassModule = functionsClass()
     functionClassModule.exampleImplement(l)
     cmdsList = {
         "add": self.addUI,
         "remove": self.removeUI,
         "list": self.listUI,
         "insert": self.insertUI,
         "replace": self.replaceUI,
         "avg": self.avarageSumeUI,
         "min": self.minSumeUI,
         "top": self.topContestantsUI,
         "undo": "nothing"
     }
     while True:
         #print(l,'\n',undo)
         cmd = self.readCmd()
         try:
             if cmd[0] == 'exit':
                 return
             if cmd[0] in cmdsList:
                 if cmd[0] == "undo":
                     l = self.undoUI(l, undo)
                 else:
                     try:
                         import copy
                         aux = copy.deepcopy(l)
                         cmdsList[cmd[0]](l, cmd[1:])
                         if cmd[0] != "list" and cmd[0] != "avg" and cmd[
                                 0] != "min" and cmd[0] != 'top':
                             functionsClassModule = functionsClass()
                             functionsClassModule.saveTheFunction(aux, undo)
                     except ValueError as ex:
                         print(ex)
             else:
                 print("invalid command")
         except IndexError:
             pass
         except:
             print('An unhandled exception has occured')
示例#13
0
 def printTopProblemsContestants(self, l, x, p):
     from src.functions import functionsClass
     functionsClass = functionsClass()
     if x < 0 or x >= len(l):
         raise ValueError("Your number isnt between the list bounderies")
     if p < 0 or p > 3:
         raise ValueError("The problem doesnt exist")
     toPrint = functionsClass.topProblemContestants(l, x, p)
     for i in range(len(toPrint)):
         print(i, ". Contestant ", toPrint[i][0], " with the grade ",
               toPrint[i][1])
示例#14
0
 def removeUI(self, l, params):
     functionsClassModule = functionsClass()
     if len(params) != 1:
         if len(params) == 2:
             x = int(params[1])
             functionsClassModule.removeContestants(l, x, params[0])
         else:
             functionsClassModule.removeMore(l, int(params[0]),
                                             int(params[2]))
     else:
         p = int(params[0])
         functionsClassModule.remove(l, p)
示例#15
0
 def testTopProblemContestantsOp(self):
     from src.functions import functionsClass
     functionsClass = functionsClass()
     assert (functionsClass.topProblemContestants(
         [[2, 2, 2], [3, 3, 3], [4, 4, 4], [1, 1, 1], [5, 5, 5]], 3,
         2) == [[4, 5], [2, 4], [1, 3]])
     try:
         assert (functionsClass.topProblemContestants(
             [[2, 2, 2], [3, 3, 3], [4, 4, 4], [1, 1, 1], [5, 5, 5]], 3,
             2) == [[4, 5], [2, 4], [1, 2]])
         assert (False)
     except AssertionError:
         assert (True)
示例#16
0
 def testMinSumeOp(self):
     from src.functions import functionsClass
     functionsClass = functionsClass()
     assert (functionsClass.minSume(
         1, 3,
         [[1, 1, 1], [2, 2, 2], [3, 3, 3], [4, 4, 4], [5, 5, 5]]) == 3.0)
     try:
         assert (functionsClass.minSume(0, 4,
                                        [[1, 1, 1], [2, 2, 2], [3, 3, 3],
                                         [4, 4, 4], [5, 5, 5]]) == 2.5)
         assert (False)
     except AssertionError:
         assert (True)
示例#17
0
    def testRemoveContestantsOp(self):
        from src.functions import functionsClass
        functionsClass = functionsClass()
        assert (functionsClass.removeContestantsList(
            [[1, 1, 1], [2, 2, 2], [3, 3, 3], [4, 4, 4], [5, 5, 5]], 30,
            '<') == [0, 1])

        try:
            assert (functionsClass.removeContestantsList(
                [[1, 1, 1], [2, 2, 2], [3, 3, 3], [4, 4, 4], [5, 5, 5]], 30,
                '<') == [0, 1, 2])
            assert (False)
        except AssertionError:
            assert (True)
示例#18
0
 def testSortedListOp(self):
     from src.functions import functionsClass
     functionsClass = functionsClass()
     assert (functionsClass.sortTheList([[3, 3, 3], [2, 2, 2], [4, 4, 4],
                                         [1, 1, 1],
                                         [5, 5, 5]]) == (3, 1, 0, 2, 4))
     try:
         assert (functionsClass.sortTheList([[3, 3, 3], [2, 2,
                                                         2], [4, 4, 4],
                                             [1, 1, 1],
                                             [5, 5, 5]]) == (3, 1, 0, 4, 2))
         assert (False)
     except AssertionError:
         assert (True)
示例#19
0
 def testInsertOp(self):
     from src.functions import functionsClass
     functionsClass = functionsClass()
     assert (functionsClass.insert([[1, 1, 1], [2, 2, 2], [3, 3, 3]],
                                   [5, 5, 5], 2) == [[1, 1, 1], [2, 2, 2],
                                                     [5, 5, 5]])
     try:
         assert (functionsClass.insert([[1, 1, 1], [2, 2, 2], [3, 3, 3]],
                                       [5, 5, 11], 2) == [[1, 1, 1],
                                                          [2, 2, 2],
                                                          [5, 5, 5]])
         assert (False)
     except ValueError:
         assert (True)
示例#20
0
 def insertUI(self, l):
     functionsClassModule = functionsClass()
     el = self.readScores()
     p = self.readContestant()
     functionsClassModule.insert(l, el, p)
示例#21
0
 def avgUI(self, l):
     functionsClassModule = functionsClass()
     startAndStop = self.readStartStop()
     print(
         functionsClassModule.avarageSume(startAndStop[0], startAndStop[1],
                                          l))
示例#22
0
 def replaceUI(self, l):
     functionsClassModule = functionsClass()
     x = self.readProblemNumber()
     p = self.readContestant()
     s = self.readSingleScore()
     functionsClassModule.replace(l, x, p, s)
示例#23
0
 def addUI(self, l, params):
     functionsClassModule = functionsClass()
     if len(params) != 3:
         raise ValueError('Please type 3 scores for each person')
     x = [int(params[0]), int(params[1]), int(params[2])]
     functionsClassModule.add(l, x)
示例#24
0
 def minUI(self, l):
     functionsClassModule = functionsClass()
     startAndStop = self.readStartStop()
     print(functionsClassModule.minSume(startAndStop[0], startAndStop[1],
                                        l))
示例#25
0
 def addUI(self, l):
     functionsClassModule = functionsClass()
     x = self.readScores()
     functionsClassModule.add(l, x)
示例#26
0
 def undoUI(self, l, undo):
     functionsClassModule = functionsClass()
     l = functionsClassModule.undoIntoPast(l, undo)
     return l
示例#27
0
 def removeUI1(self, l):
     functionsClassModule = functionsClass()
     p = self.readContestant()
     functionsClassModule.remove(l, p)
示例#28
0
 def removeUI3(self, l):
     functionsClassModule = functionsClass()
     x = self.readGivenNumber()
     functionsClassModule.removeContestants(l, x, '<')
示例#29
0
 def removeUI2(self, l):
     functionClassModule = functionsClass()
     startAndEnd = self.readStartStop()
     functionClassModule.removeMore(l, startAndEnd[0], startAndEnd[1])