def test_storeInputData(self): inputReader = InputReader("InputReaderTest.txt") lines = ['# lijnen die beginnen met # worden genegeerd\n', 'init\n', '# de vervaldatum staat achteraan in ' 'het formaat: jaar maand dag\n', 'shot melk 20 2017 3 1\n', 'shot melk 20 2030 5 1\n', 'shot melk 10 2030 6 10\n', 'shot wit 10 2030 5 1\n', 'shot zwart 5 2030 5 1\n', 'shot bruin 20 2030 5 1\n', 'honing 10 2030 5 1\n', 'marshmallow 10 2030 5 1\n', 'chili 5 2030 5 1\n', 'gebruiker Tom Hofkens [email protected]\n', 'gebruiker John Doe [email protected]\n', 'werknemer Wim Hofkens 5\n', 'werknemer Jane Doe 2\n', '\n', '# start het systeem op\n', 'start\n', '\n', '# bestel op tijdstip 1 een chocolademelk gemaakt van een melkchocolade shot, ' 'chilipeper en een marshmallow\n', '# tijdstip 1 is 1 mei 2018 om 11.30u\n', '1 bestel [email protected] melk melk melk zwart zwart chili zwart chili marshmallow ' 'marshmallow melk 2018 5 1 11 30\n', '\n', '# bestel op tijdstip 2 een chocolademelk gemaakt ' 'van een twee zwarte chocolade shots, chilipeper en een marshmallow\n', '2 bestel [email protected] zwart chili melk melk melk melk melk melk melk melk melk melk melk melk melk' ' zwart marshmallow 2018 5 1 12 00\n', '\n', '# bestel eveneens op tijdstip 2 een chocolademelk gemaakt van een melkchocolade shot en een' ' marshmallow\n', '2 bestel [email protected] melk marshmallow melk 2018 5 1 12 00\n', '\n', '# voeg 4 keer melkchocolade toe aan de stock\n', '3 stock shot melk 4 2018 5 1\n', '\n', '# dit maakt een bestand log4.html\n', '4 pass\n', '5 pass\n', '6 pass\n', '7 log\n'] inputReader.StoreInputData() self.assertEqual(inputReader.getLines(), lines)
def test_inputFileToCommands(self): inputReader = InputReader("InputReaderTest.txt") commands = ['init', 'shot', 'melk', '20', '2017', '3', '1', 'shot', 'melk', '20', '2030', '5', '1', 'shot', 'melk', '10', '2030', '6', '10', 'shot', 'wit', '10', '2030', '5', '1', 'shot', 'zwart', '5', '2030', '5', '1', 'shot', 'bruin', '20', '2030', '5', '1', 'honing', '10', '2030', '5', '1', 'marshmallow', '10', '2030', '5', '1', 'chili', '5', '2030', '5', '1', 'gebruiker', 'Tom', 'Hofkens', '*****@*****.**', 'gebruiker', 'John', 'Doe', '*****@*****.**', 'werknemer', 'Wim', 'Hofkens', '5', 'werknemer', 'Jane', 'Doe', '2', 'start', '1', 'bestel', '*****@*****.**', 'melk', 'melk', 'melk', 'zwart', 'zwart', 'chili', 'zwart', 'chili', 'marshmallow', 'marshmallow', 'melk', '2018', '5', '1', '11', '30', '2', 'bestel', '*****@*****.**', 'zwart', 'chili', 'melk', 'melk', 'melk', 'melk', 'melk', 'melk', 'melk', 'melk', 'melk', 'melk', 'melk', 'melk', 'melk', 'zwart', 'marshmallow', '2018', '5', '1', '12', '00', '2', 'bestel', '*****@*****.**', 'melk', 'marshmallow', 'melk', '2018', '5', '1', '12', '00', '3', 'stock', 'shot', 'melk', '4', '2018', '5', '1', '4', 'pass', '5', 'pass', '6', 'pass', '7', 'log'] inputReader.StoreInputData() inputReader.InputFileToCommands() self.assertEqual(inputReader.getCommands(), commands)
class ADTSimulator: def __init__(self): self.__inputReader = InputReader("adt.txt") self.__inputReader.StoreInputData() self.__inputReader.InputFileToCommands() self.__Wrapper = None def runADTSimulation(self): i = 0 newItem = False searchkey = False while i != len(self.__inputReader.getCommands()): print(self.__inputReader.getCommands()[i]) if self.__inputReader.getCommands()[i] == "type=bst": self.__Wrapper = BSTWrapper() self.__Wrapper.create() newItem = False searchkey = True i += 1 elif self.__inputReader.getCommands()[i] == "type=stack": self.__Wrapper = StackWrapper() self.__Wrapper.create() newItem = True searchkey = False i += 1 elif self.__inputReader.getCommands()[i] == "type=queue": self.__Wrapper = QueueWrapper() self.__Wrapper.create() newItem = True searchkey = False i += 1 elif self.__inputReader.getCommands()[i] == "type=dll": self.__Wrapper = DLCWrapper() self.__Wrapper.create() newItem = False searchkey = True i += 1 elif self.__inputReader.getCommands()[i] == "type=cll": self.__Wrapper = CLCWrapper() self.__Wrapper.create() newItem = False searchkey = True i += 1 elif self.__inputReader.getCommands()[i] == "type=hlin": self.__Wrapper = HLinWrapper() self.__Wrapper.create() newItem = False searchkey = True i += 1 elif self.__inputReader.getCommands()[i] == "type=hquad": self.__Wrapper = HQuadWrapper() self.__Wrapper.create() newItem = False searchkey = True i += 1 elif self.__inputReader.getCommands()[i] == "type=hsep": self.__Wrapper = HSepWrapper() self.__Wrapper.create() newItem = False searchkey = True i += 1 elif self.__inputReader.getCommands()[i] == "type=23": self.__Wrapper = TwoThreeWrapper() self.__Wrapper.create() newItem = False searchkey = True i += 1 elif self.__inputReader.getCommands()[i] == "insert": i += 1 if not newItem: self.__Wrapper.insert( int(self.__inputReader.getCommands()[i]), None) elif not searchkey: self.__Wrapper.insert( None, int(self.__inputReader.getCommands()[i])) i += 1 elif self.__inputReader.getCommands()[i] == "delete": i += 1 if not searchkey: self.__Wrapper.delete(None) else: self.__Wrapper.delete( int(self.__inputReader.getCommands()[i])) i += 1 elif self.__inputReader.getCommands()[i] == "print": self.__Wrapper.print() i += 1 return
class StoreSimulator: def __init__(self): self.__store = Store() self.__logOut = LogOutput() self.__inputReader = InputReader("system.txt") self.__inputReader.StoreInputData() self.__inputReader.InputFileToCommands() def initialise(self): i = 0 while i != len(self.__inputReader.getCommands()): if self.__inputReader.getCommands()[i] == "init": i += 1 self.__store.createStore() continue if self.__inputReader.getCommands()[i] == "start": i += 1 return i if self.__inputReader.getCommands()[i] == "shot": i += 1 shotType = self.__inputReader.getCommands()[i] i += 1 amount = self.__inputReader.getCommands()[i] i += 1 year = self.__inputReader.getCommands()[i] i += 1 month = self.__inputReader.getCommands()[i] i += 1 day = self.__inputReader.getCommands()[i] i += 1 if shotType == "melk": for j in range(0, int(amount)): self.__store.restockMilkChocolateShot( int(year + month + day)) continue elif shotType == "wit": for j in range(0, int(amount)): self.__store.restockWhiteChocolateShot( int(year + month + day)) continue elif shotType == "zwart": for j in range(0, int(amount)): self.__store.restockDarkChocolateShot( int(year + month + day)) continue elif shotType == "bruin": for j in range(0, int(amount)): self.__store.restockBrownChocolateShot( int(year + month + day)) continue return False if self.__inputReader.getCommands()[i] == "honing": i += 1 amount = self.__inputReader.getCommands()[i] i += 1 year = self.__inputReader.getCommands()[i] i += 1 month = self.__inputReader.getCommands()[i] i += 1 day = self.__inputReader.getCommands()[i] i += 1 for j in range(0, int(amount)): self.__store.restockHoney(int(year + month + day)) continue if self.__inputReader.getCommands()[i] == "marshmallow": i += 1 amount = self.__inputReader.getCommands()[i] i += 1 year = self.__inputReader.getCommands()[i] i += 1 month = self.__inputReader.getCommands()[i] i += 1 day = self.__inputReader.getCommands()[i] i += 1 for j in range(0, int(amount)): self.__store.restockMarshmallow(int(year + month + day)) continue if self.__inputReader.getCommands()[i] == "chili": i += 1 amount = self.__inputReader.getCommands()[i] i += 1 year = self.__inputReader.getCommands()[i] i += 1 month = self.__inputReader.getCommands()[i] i += 1 day = self.__inputReader.getCommands()[i] i += 1 for j in range(0, int(amount)): self.__store.restockChilipepper(int(year + month + day)) continue if self.__inputReader.getCommands()[i] == "gebruiker": i += 1 firstName = self.__inputReader.getCommands()[i] i += 1 lastName = self.__inputReader.getCommands()[i] i += 1 email = self.__inputReader.getCommands()[i] i += 1 self.__store.addUser(firstName, lastName, email) continue if self.__inputReader.getCommands()[i] == "werknemer": i += 1 firstName = self.__inputReader.getCommands()[i] i += 1 lastName = self.__inputReader.getCommands()[i] i += 1 workLoad = self.__inputReader.getCommands()[i] i += 1 self.__store.addWorker(firstName, lastName, int(workLoad)) continue return def simulate(self, i): self.__logOut.addRow(self.__store, self.__store.getTime()) while i != len(self.__inputReader.getCommands()): if self.__inputReader.getCommands()[i] == str( self.__store.getTime() + 1): self.__logOut.addRow(self.__store, self.__store.getTime()) self.__store.work() workersCopy = copy.deepcopy(self.__store.getWorkers()) while not workersCopy.isEmpty(): worker = workersCopy.retrieve(None) workersCopy.delete(None) self.__store.tick() i += 1 continue if self.__inputReader.getCommands()[i] == str( self.__store.getTime()): i += 1 continue if self.__inputReader.getCommands()[i] == "bestel": i += 1 email = self.__inputReader.getCommands()[i] i += 1 user = self.__store.getUser(email) user.createOrder(self.__store.getChocolateMilkCount()) while (self.__inputReader.getCommands()[i] == "melk" or self.__inputReader.getCommands()[i] == "wit" or self.__inputReader.getCommands()[i] == "zwart" or self.__inputReader.getCommands()[i] == "bruin" or self.__inputReader.getCommands()[i] == "marshmallow" or self.__inputReader.getCommands()[i] == "chili" or self.__inputReader.getCommands()[i] == "honey"): if self.__inputReader.getCommands()[i] == "melk": user.addMilkChocolateShot() elif self.__inputReader.getCommands()[i] == "wit": user.addWhiteChocolateShot() elif self.__inputReader.getCommands()[i] == "zwart": user.addDarkChocolateShot() elif self.__inputReader.getCommands()[i] == "bruin": user.addBrownChocolateShot() elif self.__inputReader.getCommands()[i] == "marshmallow": user.addMarshmallow() elif self.__inputReader.getCommands()[i] == "chili": user.addChilipepper() elif self.__inputReader.getCommands()[i] == "honey": user.addHoney() i += 1 year = self.__inputReader.getCommands()[i] i += 1 month = self.__inputReader.getCommands()[i] i += 1 day = self.__inputReader.getCommands()[i] i += 1 hour = self.__inputReader.getCommands()[i] i += 1 minute = self.__inputReader.getCommands()[i] i += 1 user.getCurrentOrder().setTimeStamp( int(year + month + day + hour + minute)) if self.__store.addChocolateMilk( user.getChocolateMilk(), user.getCurrentOrder(), int(year + month + day), int(year + month + day + hour + minute)): user.setChocolateMilk(None) user.setCurrentOrder(None) if self.__inputReader.getCommands()[i] == "stock": i += 1 if self.__inputReader.getCommands()[i] == "shot": i += 1 shotType = self.__inputReader.getCommands()[i] i += 1 amount = self.__inputReader.getCommands()[i] i += 1 year = self.__inputReader.getCommands()[i] i += 1 month = self.__inputReader.getCommands()[i] i += 1 day = self.__inputReader.getCommands()[i] i += 1 if shotType == "melk": for j in range(0, int(amount)): self.__store.restockMilkChocolateShot( int(year + month + day)) continue elif shotType == "wit": for j in range(0, int(amount)): self.__store.restockWhiteChocolateShot( int(year + month + day)) continue elif shotType == "zwart": for j in range(0, int(amount)): self.__store.restockDarkChocolateShot( int(year + month + day)) continue elif shotType == "bruin": for j in range(0, int(amount)): self.__store.restockBrownChocolateShot( int(year + month + day)) continue return False if self.__inputReader.getCommands()[i] == "honing": i += 1 amount = self.__inputReader.getCommands()[i] i += 1 year = self.__inputReader.getCommands()[i] i += 1 month = self.__inputReader.getCommands()[i] i += 1 day = self.__inputReader.getCommands()[i] i += 1 for j in range(0, int(amount)): self.__store.restockHoney(int(year + month + day)) continue if self.__inputReader.getCommands()[i] == "marshmallow": i += 1 amount = self.__inputReader.getCommands()[i] i += 1 year = self.__inputReader.getCommands()[i] i += 1 month = self.__inputReader.getCommands()[i] i += 1 day = self.__inputReader.getCommands()[i] i += 1 for j in range(0, int(amount)): self.__store.restockMarshmallow(int(year + month + day)) continue if self.__inputReader.getCommands()[i] == "chili": i += 1 amount = self.__inputReader.getCommands()[i] i += 1 year = self.__inputReader.getCommands()[i] i += 1 month = self.__inputReader.getCommands()[i] i += 1 day = self.__inputReader.getCommands()[i] i += 1 for j in range(0, int(amount)): self.__store.restockChilipepper(int(year + month + day)) continue if self.__inputReader.getCommands()[i] == "log": self.__logOut.addRow(self.__store, self.__store.getTime()) self.__logOut.writeHtml() return if self.__inputReader.getCommands()[i] == "pass": i += 1 continue return