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
def test_inputReader(self): inputReader = InputReader("InputReaderTest.txt") self.assertIsNone(inputReader.getFile()) self.assertIsNone(inputReader.getLines()) self.assertIsNone(inputReader.getCommands()) self.assertEqual(inputReader.getFileName(), "InputReaderTest.txt")