CS50's Introduction to Artificial Intelligence Test Scripts
๐คทโโ๏ธ
What's this?
๐คทโโ๏ธ
This repository contains Python scripts to automate tests for most of the CS50โs Introduction to Artificial Intelligence with Python projects.
It does not contain any project solution/spoiler, as per the course's Academic Honesty policy.
โ
Disclaimer
This is a student-initiated project. Passing these test cases does not guarantee that you will receive a full grade from the official CS50 AI's teaching team.
๐
Table of Contents
| Lecture | Concept | Project | Test Script | Description |
|---|---|---|---|---|
| Search | Breadth First Search | Degrees | degrees_test.py | Run test cases given by problem description and this discussion |
| Search | Minimax | Tic-Tac-Toe | tictactoe_test.py | Let your AI play against itself for 10 rounds |
| Knowledge | Model Checking | Knights | puzzle_test.py | Check the correctness of the 4 puzzle results |
| Knowledge | Knowledge Engineering | Minesweeper | minesweeper_test.py | Check if your AI has โ90% win rate over 1000 simulations |
| Uncertainty | Bayesian Networks | Heredity | heredity_test.py | Run test cases given by problem description and this discussion |
| Uncertainty | Markov Models | PageRank | pagerank_test.py | Compare the output of the 2 implemented functions |
| Optimization | Constraint Satisfaction | Crossword | generate_test.py | Generate crosswords using all 9 different structure + words combination and a special test case from this discussion |
| Learning | Nearest-Neighbor Classification | Shopping | shopping_test.py | Check the information is parsed correctly and result is within a reasonable range |
| Learning | Reinforcement Learning | Nim | nim_test.py | Check if the AI which moves second has a 100% win rate |
๐ ๏ธ
How to Run Tests
Guide
- Make sure you have Python3 installed in your machine. Anything above
Python 3.4+should work. - Install
pytestby runningpip install pytestin a terminal. More information aboutpiphere. - Make a copy of the test file and paste it in the same folder as the project that you want to test.
For example, if you want to test your code for
degrees.py, make a copy ofdegrees_test.pyin the same folder as yourdegrees.pyand other files that came along with the project, likeutil.py,large/andsmall/. - Navigate to the project folder and run
pytestorpytestin a terminal._test.py For example, navigate to
degrees/and runpytestorpytest degrees_test.py.
Example
๐ฉ
Useful pytest Flags
- Run
pytest -sto show print statements in the console - Run
pytest -vvfor verbose mode - Combine both flags
pytest -s -vvfor extra verbose mode - Run
pytest --durations=nto see thenslowest execution time - Install
pytest-repeatwithpipand then runpytest --count nto repeat the test for n times
๐ป
My Setup
Each test should take less than 30 seconds, depending on Python's I/O and your code efficiency.
- Windows 10 Home Build 19042
- Intel(R) Core(TM) i7-7700HQ CPU @ 2.80GHz
- Python 3.9.5 64-bit
- Visual Studio Code w/Pylance (latest release)
๐
Acknowledgement
Special thanks to these fellow CS50AI classmates who contributed some of the test cases on the Ed discussion site!
- Ken Walker
- Naveena A S
- Ricardo L
