---
# System prepended metadata

title: Untitled

---

Grade Report: 121/135 （Grader: Yanzhi Xin)

Task 1.1 Recursive Sum 35/35
- Comprehensive Test Cases  10/10
- Functionality  15/15
- Student’s Test Cases  3/3
- Coding Style 2/2
- TFD Questions 5/5 

Task 1.2 Find Max 32/35
- Comprehensive Test Cases  9/10
Pytest output: 
![image](https://user-images.githubusercontent.com/26518238/94373875-2e449e80-00bd-11eb-80b3-4881cb456fad.png)
You can't call .pop() on empty lists. 
- Functionality  14/15
   - When the input is an empty list, you should throw an error or return None.
- Student’s Test Cases  3/3
- Coding Style 1/2
   - It's an integer array (refer to problem description and hw1 handout) so the return type should be integer instead of float.
- TFD Questions 5/5 

Task 1.3 Is Palindrome 34/35
- Comprehensive Test Cases  10/10
- Functionality  15/15
- Student’s Test Cases  2/3
![image](https://user-images.githubusercontent.com/26518238/94374009-115c9b00-00be-11eb-9e78-ea607ab20311.png)
"ooooooopo" is not palindrome. (This is probably a typo)
Hint: You can run Pytest to make sure your own test passes before you submit with "pytest *.py" or "python3 -m pytest *.py".
- Coding Style 1/2
- TFD Questions 5/5 

Task 1.4 Find Root 20/30
- Comprehensive Test Cases  5/10
   - Test failed for linear, quadratic, exponential, sine functions with tol = 1e-10. Some tests passed when tolerance is relatively large (like 0.001). (Refer to TA solution for comprehensive test cases)
   - Find_root function times out when tolerance < 0.001 (while loop takes too long to converge because your solution keeps searching in ranges that don't have any roots because your recursion statement is before return statement)
- Explaining Issues 5/10
   - Condition in the while loop in the original code should be f(L) * f(x) < 0, > 0, == 0
- Student’s Test Cases 3/3
- Coding Style 2/2
- TFD Questions 5/5

