# Abgabe - PaginationHelper Aufgabe von Codewars # Link dazu: https://www.codewars.com/kata/54bf1c2cd5b56cc47f0007a1 # Leart Ramushi # TODO: complete this class import math class PaginationHelper: # The constructor takes in an array of items and an integer indicating # how many items fit within a single page def __init__(self, collection, items_per_page): self.collection = collection self.items_per_page = items_per_page # returns the number of items within the entire collection def item_count(self): return len(self.collection) # returns the number of pages def page_count(self): return math.ceil(len(self.collection) / self.items_per_page) # returns the number of items on the given page. page_index is zero based # this method should return -1 for page_index values that are out of range def page_item_count(self, page_index): if page_index < 0 or page_index >= self.page_count(): return -1 if page_index == self.page_count() - 1: rest = len(self.collection) % self.items_per_page if rest == 0: return self.items_per_page else: return rest return self.items_per_page # determines what page an item at the given index is on. Zero based indexes. # this method should return -1 for item_index values that are out of range def page_index(self, item_index): if item_index < 0 or item_index >= len(self.collection): return -1 return item_index // self.items_per_page