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")
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])
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)
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))
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)
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)
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)
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)
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])
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)
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])
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')
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])
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)
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)
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)
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)
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)
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)
def insertUI(self, l): functionsClassModule = functionsClass() el = self.readScores() p = self.readContestant() functionsClassModule.insert(l, el, p)
def avgUI(self, l): functionsClassModule = functionsClass() startAndStop = self.readStartStop() print( functionsClassModule.avarageSume(startAndStop[0], startAndStop[1], l))
def replaceUI(self, l): functionsClassModule = functionsClass() x = self.readProblemNumber() p = self.readContestant() s = self.readSingleScore() functionsClassModule.replace(l, x, p, s)
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)
def minUI(self, l): functionsClassModule = functionsClass() startAndStop = self.readStartStop() print(functionsClassModule.minSume(startAndStop[0], startAndStop[1], l))
def addUI(self, l): functionsClassModule = functionsClass() x = self.readScores() functionsClassModule.add(l, x)
def undoUI(self, l, undo): functionsClassModule = functionsClass() l = functionsClassModule.undoIntoPast(l, undo) return l
def removeUI1(self, l): functionsClassModule = functionsClass() p = self.readContestant() functionsClassModule.remove(l, p)
def removeUI3(self, l): functionsClassModule = functionsClass() x = self.readGivenNumber() functionsClassModule.removeContestants(l, x, '<')
def removeUI2(self, l): functionClassModule = functionsClass() startAndEnd = self.readStartStop() functionClassModule.removeMore(l, startAndEnd[0], startAndEnd[1])