# Regression Tests for Calculator Customized for Quantum Computation Equations

## Table of Contents

Introduction

Gates

Dirac Notation

perm

qcc

### Introduction

Here I only test the functions I added on top of math.js, because I'm assuming math.js is ok.
I use the assert function, which acts just like eq when things are equal, but
throws an error when they aren't, so it's easy to catch a failure.

Besides acting as regression tests, they're also examples of how to use the functions.

### Gates

The goal is for the descriptions here to be more easily visually verifiable
than in the javascript code.

Some of these are a function of one to three angles (because no symbolic
evaluation available.) I generate random angles to verify.
If you want to try different angles, you can click on the visible equations
to get the buttons, then click on Re-evaluate to get new random values.

### Dirac Notation

First we test \(\left| \Psi \right\rangle\).

Then we verify the others. They're defined like this,
as functions of ket, in the code,
but at least this is more visually verifiable.

### perm

Define three unique states and use them to test if they're routed by perm as expected for all the permutations of three qubits.

### qcc

First let's make sure qcc puts the internal gates in the right place.

Then how about if there is a 2-qubit internal gate involved.

And now test to see if control gates are working under a few conditions.

Or we can build some controlled gates.