TDM 30100: Project 6 — 2022
Motivation: Code, especially newly written code, is refactored, updated, and improved frequently. It is for these reasons that testing code is imperative. Testing code is a good way to ensure that code is working as intended. When a change is made to code, you can run a suite a tests, and feel confident (or at least more confident) that the changes you made are not introducing new bugs. While methods of programming like TDD (test-driven development) are popular in some circles, and unpopular in others, what is agreed upon is that writing good tests is a useful skill and a good habit to have.
Context: This is the first of a series of two projects that explore writing unit tests, and doc tests. In The Data Mine, we will focus on using pytest
, doc tests, and mypy
, while writing code to manipulate and work with data.
Scope: Python, testing, pytest, mypy, doc tests
Questions
We will dig in a little deeper in the next project, however, this project is designed to give you a little bit of a rest before October break. |
We’ve provided you with two files for this project:
-
/anvil/projects/tdm/etc/project06.py
-
/anvil/projects/tdm/etc/test_project06.py
Start by copying these files to your own working directory.
%%bash
rm -rf $HOME/project06 || true
mkdir $HOME/project06
cp /anvil/projects/tdm/etc/project06.py $HOME/project06
cp /anvil/projects/tdm/etc/test_project06.py $HOME/project06
The first file, project06.py
is a module with a bunch of functions. The second file, test_project06.py
is the set of tests for the project06.py
module. You can run the tests as follows.
%%bash
cd $HOME/project06
python3 -m pytest
The goal of this project is to fix all of the code in project06.py
so that all of the unit tests pass. Do not modify the tests in test_project06.py
, only modify the code in project06.py
.
-
Fix
find_longest_timegap
. -
Fix
space_in_dir
. -
Fix
event_plotter
. -
Fix
player_info
.
-
Your modified
project06.py
file. -
Your
.ipynb
notebook file with abash
cell showing 100 percent of your tests passing. -
Your
.ipynb
notebook file with a markdown cell for each question, and an explanation of what was wrong, and how you fixed it.
Please make sure to double check that your submission is complete, and contains all of your code and output before submitting. If you are on a spotty internet connection, it is recommended to download your submission after submitting it to make sure what you think you submitted, was what you actually submitted. In addition, please review our submission guidelines before submitting your project. |