\documentclass[11pt]{article}
\usepackage{amsmath}
\usepackage{amsthm}
\usepackage[utf8]{inputenc}
\usepackage[margin=0.75in]{geometry}

\title{CSC110 Fall 2022 Assignment 3: Loops, Mutation, and Applications}
\author{Yehyun Lee}
\date{\today}

\begin{document}
\maketitle

\section*{Part 1: Data Analysis with Toronto Health}

Complete this part in the provided \texttt{a3\_part1.py} file.
Do \textbf{not} include your solutions in this file.

\section*{Part 2: Loops and Mutation Debugging Exercise}

\begin{enumerate}
\item[1.]
test\_star\_wars passed, however, test\_legally\_blonde and test\_transformers failed.

\item[2.]
For both test\_legally\_blonde and test\_transformers, AssertionError occurs because actual[1] and expected\_intensity value is different or not close enough.
We're expected to have actual[1] value same or close to expected\_intensity. So then, why are we not getting the same value or close to expected\_intensity?\\

This is caused by two errors in code.\\

First error(specifically for function test\_legally\_blonde):\\
test\_legally\_blonde failed due to the function called ``clean\_text". This is because text have some capital words! So when it calls ``str.lower(text)" in line 83, we're expecting it to convert text to lowercase, so that we're able to find all WORD\_TO\_INTENSITY(since all WORD\_TO\_INTENSITY is lowercase, we need to convert text to lowercase). However, str.lower(text) gives copy of lowercase text; it does not make variable text to lowercase.
Meaning, we need to assign it to variable text by changing it to: text = str.lower(text). If we make the following change, it will be able to identify all WORD\_TO\_INTENSITY.\\

Second error(specifically for function test\_transformers):\\
test\_transformers failed due to the function called ``count\_keywords".
We're expected to count how many times same keyword occurs and return it.
In function count\_keywords when word first appears, it add 1 to accumulator.
However, when word appears again, there's no code that add additional 1 to accumulator.
(Note how there's if statement for adding 1 to accumulator when word first appears, but does not add 1 when it appears again.)
We can simply fix this by adding else statement and code that add 1 to accumulator.\\

I made changes accordingly. 

\item[3.]
Reason why function test\_star\_wars passed in original error code is simple. It does not have uppercase words nor have same word appear again; they simply appear once only.
Thus, it does not violate two errors that I mentioned above: having uppercase word and repeated keyword. Thus, it passed in original error code.
\end{enumerate}

\section*{Part 3: Chaos, Fractals, Point Sequences}

Complete this part in the provided \texttt{a3\_part3.py} starter file.
Do \textbf{not} include your solutions in this file.

\end{document}
