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
pytest
by runningpip install pytest
in a terminal. More information aboutpip
here. - 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.py
in the same folder as yourdegrees.py
and other files that came along with the project, likeutil.py
,large/
andsmall/
. - Navigate to the project folder and run
pytest
orpytest
in a terminal._test.py For example, navigate to
degrees/
and runpytest
orpytest degrees_test.py
.
Example
🚩
Useful pytest Flags
- Run
pytest -s
to show print statements in the console - Run
pytest -vv
for verbose mode - Combine both flags
pytest -s -vv
for extra verbose mode - Run
pytest --durations=n
to see then
slowest execution time - Install
pytest-repeat
withpip
and then runpytest --count n
to 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