Proof

What we measured, not what we hoped

Every number on this page was produced by one script. A build step reads the script's results file and writes the numbers in. If the script did not produce a number, it is not here, and if a check failed, its number cannot appear.

The latest run

35 of 35 published suite tests passed on 1 October 2026. One long clock test is held back (see below).

Each test holds many checks; the main gate alone holds 375. The test engine we checked is one file with the fingerprint 6a74c1420c266ac8. A different file would have a different fingerprint.

Run it again. The script lives in our own repository, runs with a single command, and took about 35 minutes for the whole suite on a busy machine. We can run it again whenever we like. Nobody outside our team has run it yet, so for you today that means: ask, and we will run it and show you the file it writes.

The checks look at our standalone practice engine. The demo on this site is a separate, smaller imitation and is not what they run. They do not check the rest of the platform, and they do not check this website.

The main gate

4 groups of checks run together as one gate. Every group must pass, and a missing group is a failure, not a skip (test G1.06).

375checks in the whole gate, all passing
36on page structure, markup and keyboard rules
304run in a real browser: every question shows, takes an answer, is graded and is exported
27that the file carries no download code
8on the mode where a server holds the answers

The tests here are G1.01 to G1.06.

Every screen, every question

A browser opened the engine and visited each screen it can show, in test mode and in review mode.

260screen states visited
0script errors on any screen
0console messages of any kind
0requests to anywhere outside the file
0exam or product brand words in 260 scanned screen states
55questions walked in order; 0 out of place

A watcher that sees nothing could simply be broken. So before the walk, the script plants a deliberate error in a copy of the engine and checks that the watcher catches it: 1 script error and 2 console messages were caught. The tests are G2.01 to G2.04.

The answer key

A practice test is only as good as its key. These checks were written without reusing the build's own compile code.

  • The answers inside the built file match a second copy worked out from scratch on 54 of 54 questions (G1.21).
  • Questions with several blanks follow the per-column rule: 13 blanks on 5 questions were checked (G1.22).
  • Answers that are numbers are stored as numbers, and different ways of writing the same number agree (G1.23).
  • An archived earlier key differs from the corrected key on 12 of 54 questions, which is where its own notes say it was corrected (G1.24).

Be careful what this proves. It shows the file uses the key we hold. It does not show the key is right.

Behaviours, one test each

Each row is a test that drives the engine with real mouse and keyboard events and passed.

  • Click a chosen answer again and it clears. G3.B01
  • A pick-several question lets you pick one too many and does not stop you. G3.B02
  • The review list says Incomplete, Answered, Incomplete or Not Answered at each count. G3.B03
  • A question with blanks goes from Not Answered to Incomplete to Answered and back. G3.B04
  • Next on a blank question moves on with no pop-up. G3.B05
  • The end-of-section screen looks the same whether you answered or not. G3.B06
  • No warning at the low-time mark, and a hard stop at zero with a single Continue. G3.B07
  • Leaving a section early asks first, and Return keeps your place and answer. G3.B08
  • The Tab key goes to Hide Time, then the answers, and skips the toolbar. G3.B09
  • Space and Enter each pick an answer exactly once. G3.B10
  • Arrow keys move the focus and never pick an answer. G3.B11
  • The calculator's transfer button overwrites the box, caps the digits and refuses an error. G3.B12
  • There is no timed rest break between sections. G3.B13

The exported results text (the engine shows it in a copy panel) is plain text with 56 rows including the header, and 0 bare line breaks (G3.C01). Another check compares the engine with 161 stored screen snapshots across 21 groups of assertions, and passes (G1.10).

We also tested the tests. We planted 24 deliberate defects: 22 were caught by behaviour, 1 only by reading the code, and 1 was missed. We said in advance which kinds could slip through.

Case study: the frozen clock

A timer that stops when you click quickly is worse than no timer.

In an early version, every click on a toolbar button restarted the section clock's one-second timer. Click faster than once a second and the clock never got to tick. A student with unlimited time could simply keep clicking. We found it in an audit, rated it severe, and replaced it with one steady ticker that charges real elapsed time.

We did not want to ask you to trust that story. So the script puts the old design back into a copy of the engine and runs the same test: 29.54 seconds of clicking, a click just under once a second, charged 0 seconds. That is the defect, reproduced (G3.T03). Run again, the exact figure can shift by a tick, but it stays close to nothing.

On the real engine the same test charges 29 seconds for 29.54 seconds of clicking (G3.T02).

What we do not prove

  • No check has read the source page images. Every question, choice and key entry is a transcription, and a build that passes everything can still be consistently wrong. No named person has sat each test against the source pages yet.
  • The answer keys of the mock tests were inferred, not taken from an official source, and the suite does not check them.
  • We publish no figure for how far the section clock can drift over a whole section. The long test that measures it gave different results on two quiet re-runs, once over its own limit, so we are looking into the engine first and will not quote a number until that is settled. The frozen-clock case above is a separate, proven fix.
  • The engine does not record time or visits for each question in its export. We make no claim that it does.
  • The engine is built for a wide desktop screen. We have not tested it on a phone.
  • These checks cover the flagship test and the engine. They say nothing about separate workspaces, data export, payments or the mobile app.

Fidelity notebook

Small things we noticed in the official practice software, and whether we copied them. These are our own observations, written down during an audit. The tests check our copy, never the official software itself, and where a test covers an entry its name is shown.

Click a chosen answer again and it un-picks

In the official practice software, clicking a selected answer clears it. We copied that, and the question goes back to Not Answered in the review list. Test G3.B01.

An extra pick is allowed, but it does not count as done

On a question that asks for a set number of picks, the real exam lets you tick one too many and does not stop you. It just marks the question Incomplete until the count is right. Tests G3.B02 and G3.B03.

Next on a blank question just moves on

There is no "you left this empty" pop-up in the official practice software. We checked that no box, overlay or message appears when you press Next on a blank question. Test G3.B05.

The end-of-section screen looks the same whether you answered or not

It shows no count of what you skipped. We compared the screen after answering 12 questions with the screen after answering 0, and it was identical. Test G3.B06.

No low-time warning, and a hard stop at zero

The clock passes the low-time mark with nothing changing on the screen. At zero you see Time Expired and a single Continue button. Test G3.B07.

Leaving a section early needs its own "are you sure"

Pressing Exit Section does not end it right away. You can go back to the same question and your answer is still there, and only the confirm step moves you on. Test G3.B08.

The help screen does not stop the clock

You can read the help tabs, but the section clock keeps running. Our comparison notes list no other practice product that does this. We saw this in an earlier audit by hand; it is not yet one of the re-runnable tests.

No rest break between sections

There is no break timer at any of the 4 section changes. You click through, and the clock stays still on the directions screens. Test G3.B13.

Arrow keys move the focus but never pick an answer

Space and Enter pick an answer. The arrows only move around, so your answer cannot change by accident. Tests G3.B10 and G3.B11.

The calculator's transfer button replaces your typed answer

It overwrites the number box and keeps the trailing decimal point, and it is switched off on a question with answer choices. Our comparison notes list no other practice product that does this. Test G3.B12.

Where our demo differs on purpose: the toolbar works with a keyboard

The real software keeps the toolbar buttons out of the Tab key's path, so a keyboard-only student can answer but not move on. Our demo puts them back in reach so anyone can use it. This is a choice, not a miss, and the engine tests above check the real behaviour, not the demo's.