CS50's Introduction to Artificial Intelligence Test Scripts

Overview

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

  1. Make sure you have Python3 installed in your machine. Anything above Python 3.4+ should work.
  2. Install pytest by running pip install pytest in a terminal. More information about pip here.
  3. 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 of degrees_test.py in the same folder as your degrees.py and other files that came along with the project, like util.py, large/ and small/.

  4. Navigate to the project folder and run pytest or pytest _test.py in a terminal.

    For example, navigate to degrees/ and run pytest or pytest degrees_test.py.

Example

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 the n slowest execution time
  • Install pytest-repeat with pip and then run pytest --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
Owner
Jet Kan
Tutor and Computer Science Undergraduate, National University of Singapore (NUS)
Jet Kan
Unsupervised Representation Learning by Invariance Propagation

Unsupervised Learning by Invariance Propagation This repository is the official implementation of Unsupervised Learning by Invariance Propagation. Pre

FengWang 15 Jul 06, 2022
U-2-Net: U Square Net - Modified for paired image training of style transfer

U2-Net: U Square Net Modified for paired image training of style transfer This is an unofficial repo making use of the code which was made available b

Doron Adler 43 Oct 03, 2022
Fast RFC3339 compliant Python date-time library

udatetime: Fast RFC3339 compliant date-time library Handling date-times is a painful act because of the sheer endless amount of formats used by people

Simon Pirschel 235 Oct 25, 2022
PSPNet in Chainer

PSPNet This is an unofficial implementation of Pyramid Scene Parsing Network (PSPNet) in Chainer. Training Requirement Python 3.4.4+ Chainer 3.0.0b1+

Shunta Saito 76 Dec 12, 2022
Contrastive Learning for Compact Single Image Dehazing, CVPR2021

AECR-Net Contrastive Learning for Compact Single Image Dehazing, CVPR2021. Official Pytorch based implementation. Paper arxiv Pytorch Version TODO: mo

glassy 253 Jan 01, 2023
This repository holds the code for the paper "Deep Conditional Gaussian Mixture Model forConstrained Clustering".

Deep Conditional Gaussian Mixture Model for Constrained Clustering. This repository holds the code for the paper Deep Conditional Gaussian Mixture Mod

17 Oct 30, 2022
Real-time Joint Semantic Reasoning for Autonomous Driving

MultiNet MultiNet is able to jointly perform road segmentation, car detection and street classification. The model achieves real-time speed and state-

Marvin Teichmann 518 Dec 12, 2022
Using PyTorch Perform intent classification using three different models to see which one is better for this task

Using PyTorch Perform intent classification using three different models to see which one is better for this task

Yoel Graumann 1 Feb 14, 2022
A simplified framework and utilities for PyTorch

Here is Poutyne. Poutyne is a simplified framework for PyTorch and handles much of the boilerplating code needed to train neural networks. Use Poutyne

GRAAL/GRAIL 534 Dec 17, 2022
基于tensorflow 2.x的图片识别工具集

Classification.tf2 基于tensorflow 2.x的图片识别工具集 功能 粗粒度场景图片分类 细粒度场景图片分类 其他场景图片分类 模型部署 tensorflow serving本地推理和docker部署 tensorRT onnx ... 数据集 https://hyper.a

Wei Qi 1 Nov 03, 2021
Neural network for recognizing the gender of people in photos

Neural Network For Gender Recognition How to test it? Install requirements.txt file using pip install -r requirements.txt command Run nn.py using pyth

Valery Chapman 1 Sep 18, 2022
Implements Gradient Centralization and allows it to use as a Python package in TensorFlow

Gradient Centralization TensorFlow This Python package implements Gradient Centralization in TensorFlow, a simple and effective optimization technique

Rishit Dagli 101 Nov 01, 2022
NAS Benchmark in "Prioritized Architecture Sampling with Monto-Carlo Tree Search", CVPR2021

NAS-Bench-Macro This repository includes the benchmark and code for NAS-Bench-Macro in paper "Prioritized Architecture Sampling with Monto-Carlo Tree

35 Jan 03, 2023
An end-to-end framework for mixed-integer optimization with data-driven learned constraints.

OptiCL OptiCL is an end-to-end framework for mixed-integer optimization (MIO) with data-driven learned constraints. We address a problem setting in wh

Holly Wiberg 57 Dec 26, 2022
Tensorflow implementation for "Improved Transformer for High-Resolution GANs" (NeurIPS 2021).

HiT-GAN Official TensorFlow Implementation HiT-GAN presents a Transformer-based generator that is trained based on Generative Adversarial Networks (GA

Google Research 78 Oct 31, 2022
PyTorch implementation of Super SloMo by Jiang et al.

Super-SloMo PyTorch implementation of "Super SloMo: High Quality Estimation of Multiple Intermediate Frames for Video Interpolation" by Jiang H., Sun

Avinash Paliwal 2.9k Jan 03, 2023
As a part of the HAKE project, includes the reproduced SOTA models and the corresponding HAKE-enhanced versions (CVPR2020).

HAKE-Action HAKE-Action (TensorFlow) is a project to open the SOTA action understanding studies based on our Human Activity Knowledge Engine. It inclu

Yong-Lu Li 94 Nov 18, 2022
ESP32 python application to read data from a Tilt™ Hydrometer for homebrewing

TitlESP32 ESP32 MicroPython application to read and log data from a Tilt™ Hydrometer. Requirements A board with an ESP32 chip USB cable - USB A / micr

IoBeer 5 Dec 01, 2022
Training neural models with structured signals.

Neural Structured Learning in TensorFlow Neural Structured Learning (NSL) is a new learning paradigm to train neural networks by leveraging structured

955 Jan 02, 2023
Replication of Pix2Seq with Pretrained Model

Pretrained-Pix2Seq We provide the pre-trained model of Pix2Seq. This version contains new data augmentation. The model is trained for 300 epochs and c

peng gao 51 Nov 22, 2022