Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
48 changes: 45 additions & 3 deletions src/se/edu/inclass/Main.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
# Main.py is the entry point of the program
from data.DataManager import DataManager
from task.Deadline import Deadline
from task.Event import Event
from task.Todo import Todo
from task.Task import Task
from typing import List

Expand All @@ -18,7 +20,23 @@ def main():

# Count deadlines using streams
print("\n")
print("Total number of deadlines counted using streams:", count_deadlines_using_stream(tasks_data))
print("Total number of deadlines recorded:", count_deadlines_using_stream(tasks_data))

print("\n")
print("Events in the task list:")
print_events(tasks_data)

# Count events using streams
print("\n")
print("Total number of events counted using streams:", count_events_using_stream(tasks_data))

print("\n")
print("Todos in the task list:")
print_todos(tasks_data)

# Count todos using streams
print("\n")
print("Total number of todos counted using streams:", count_todos_using_stream(tasks_data))

# Filter tasks using streams
filtered_list = filter_task_list_using_streams(tasks_data, "Meeting")
Expand All @@ -31,19 +49,43 @@ def count_deadlines_using_stream(tasks: List[Task]) -> int:
count = sum(1 for task in tasks if isinstance(task, Deadline))
return count

# Counts total events using streams
def count_events_using_stream(tasks: List[Task]) -> int:
count = sum(1 for task in tasks if isinstance(task, Event))
return count

# Counts total todos using streams
def count_todos_using_stream(tasks: List[Task]) -> int:
count = sum(1 for task in tasks if isinstance(task, Todo))
return count

# Prints data using iteration
def print_data(tasks_data: List[Task]):
print(" Printing data using iteration")
print(" Printing data ...")
for task in tasks_data:
print(task)

# Prints deadlines using iteration
def print_deadlines(tasks_data: List[Task]):
print(" Printing deadline using iteration")
print(" Printing data ...")
for task in tasks_data:
if isinstance(task, Deadline):
print(task)

# Prints events using iteration
def print_events(tasks_data: List[Task]):
print(" Printing events using iteration")
for task in tasks_data:
if isinstance(task, Event):
print(task)

# Prints todos using iteration
def print_todos(tasks_data: List[Task]):
print(" Printing todos using iteration")
for task in tasks_data:
if isinstance(task, Todo):
print(task)

# Filters tasks using streams
def filter_task_list_using_streams(tasks: List[Task], filter_string: str) -> List[Task]:
filtered_list = [task for task in tasks if filter_string in task.get_description()]
Expand Down