Exemple #1
0
    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)
Exemple #2
0
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
Exemple #3
0
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