def __init__(self, ppm):
     self.task_queue = QueueAA()
     self.__pages_per_minute = ppm
     self.__time_remaining = 0
     self.__current_task = None
     self.__waiting_times = []
     self.__job_history = {}
     self.__job_id = 1000
class Printer(object):
    def __init__(self, ppm):
        self.task_queue = QueueAA()
        self.__pages_per_minute = ppm
        self.__time_remaining = 0
        self.__current_task = None
        self.__waiting_times = []
        self.__job_history = {}
        self.__job_id = 1000

    def start_next_task(self):
        self.__current_task = self.task_queue.dequeue()
        if self.__current_task != None:
            #Task is starting
            print("Job #{0}: Starting new print task...".format(self.__job_id))
            self.__job_history[self.__job_id] = self.__current_task.get_pages()
            self.__time_remaining = self.__current_task.get_pages(
            ) * 60 / self.__pages_per_minute
            self.__waiting_times.append(self.__time_remaining)

    def tick(self):
        if self.__current_task != None:
            self.__time_remaining -= 1
            if self.__time_remaining <= 0:
                #Task is done
                print("Job #{0}: Task done. Printed {1} pages".format(
                    self.__job_id, self.__job_history[self.__job_id]))
                self.__job_id += 1

        if self.__time_remaining <= 0:
            self.start_next_task()

    def add_print_task(self, task):
        self.task_queue.enqueue(task)

    def is_busy(self):
        return self.__current_task != None

    def average_waiting_time(self):
        return sum(self.__waiting_times) / len(self.__waiting_times)

    def average_pages(self):
        return sum(self.__job_history.values()) / len(self.__job_history)

    def reset_history(self):
        self.__waiting_times = []

    def reset_printing_queue(self):
        self.task_queue.clear()
class Printer(object):

    def __init__(self, ppm):
        self.task_queue = QueueAA()
        self.__pages_per_minute = ppm
        self.__time_remaining = 0
        self.__current_task = None
        self.__waiting_times = []
        self.__job_history = {}
        self.__job_id = 1000

    def start_next_task(self):
        self.__current_task = self.task_queue.dequeue()
        if self.__current_task != None:
            #Task is starting
            print("Job #{0}: Starting new print task...".format(self.__job_id))
            self.__job_history[self.__job_id] = self.__current_task.get_pages()
            self.__time_remaining = self.__current_task.get_pages() * 60 / self.__pages_per_minute
            self.__waiting_times.append(self.__time_remaining)

    def tick(self):
        if self.__current_task != None:
            self.__time_remaining -= 1
            if self.__time_remaining <= 0:
                #Task is done
                print("Job #{0}: Task done. Printed {1} pages".format(self.__job_id, self.__job_history[self.__job_id]))
                self.__job_id += 1

        if self.__time_remaining <= 0:
            self.start_next_task()

    def add_print_task(self, task):
        self.task_queue.enqueue(task)

    def is_busy(self):
        return self.__current_task != None

    def average_waiting_time(self):
        return sum(self.__waiting_times) / len(self.__waiting_times)

    def average_pages(self):
        return sum(self.__job_history.values()) / len(self.__job_history)

    def reset_history(self):
        self.__waiting_times = []

    def reset_printing_queue(self):
        self.task_queue.clear()
 def __init__(self, ppm):
     self.task_queue = QueueAA()
     self.__pages_per_minute = ppm
     self.__time_remaining = 0
     self.__current_task = None
     self.__waiting_times = []
     self.__job_history = {}
     self.__job_id = 1000
예제 #5
0
    def testALQueueTest(self):
        queue = QueueAA()
        self.assertEqual(queue.size(), 0)
        self.assertTrue(queue.is_empty())
        self.assertEqual(queue.dequeue(), None)

        queue.enqueue("First")
        queue.enqueue(2)
        queue.enqueue("Third")

        self.assertEqual(queue.size(), 3)
        self.assertFalse(queue.is_empty())
        self.assertEqual(queue.dequeue(), "First")
        self.assertEqual(queue.dequeue(), 2)
        self.assertEqual(queue.dequeue(), "Third")
        self.assertEqual(queue.dequeue(), None)

        queue.enqueue("Fourth")
        self.assertEqual(queue.dequeue(), "Fourth")
        queue.enqueue("Uno")
        queue.enqueue("Dos")
        queue.clear()
        self.assertEqual(queue.is_empty(), True)
    def testALQueueTest(self):
        queue = QueueAA()
        self.assertEqual(queue.size(),0)
        self.assertTrue(queue.is_empty())
        self.assertEqual(queue.dequeue(), None)

        queue.enqueue("First")
        queue.enqueue(2)
        queue.enqueue("Third")

        self.assertEqual(queue.size(),3)
        self.assertFalse(queue.is_empty())
        self.assertEqual(queue.dequeue(), "First")
        self.assertEqual(queue.dequeue(), 2)
        self.assertEqual(queue.dequeue(), "Third")
        self.assertEqual(queue.dequeue(), None)

        queue.enqueue("Fourth")
        self.assertEqual(queue.dequeue(), "Fourth")
        queue.enqueue("Uno")
        queue.enqueue("Dos")
        queue.clear()
        self.assertEqual(queue.is_empty(), True)