typosaurus 472a59e122 feat(tanya): Audit tests/ for skipped, disabled, or weakened tests
Outcome: done
Changed: none
Verified by: PYTHONPATH=src python3 -m unittest discover -s tests -q -> "Ran 226 tests in 0.634s OK", EXIT_CODE=0
Findings: Criterion 1 PASS - grep for unittest.skip|skipIf|skipUnless|SkipTest|expectedFailure|pytest.mark.skip|pytest.skip|xfail|@skip|@disabled|pytestmark across tests/ returned 0 hits; case-insensitive skipif|skipunless|onlyif|not implemented also 0; runtime report shows no skipped/expected-failure suffix
Findings: Criterion 2 PASS - grep '^\s*(pass|\.\.\.)\s*$' returned 0 hits; AST scan of all 226 test_* functions found none with only-pass body and every one contains >=1 assertion (bare assert or self.assert*/fail* call)
Findings: Criterion 3 PASS - all 25 broad 'skip' grep hits individually inspected and are duplicates_skipped/cache counters or test names, not directives: tests/test_research_engine.py:132-136, tests/test_research_dedup.py:105-233, tests/test_research_scheduling.py:226-496, tests/test_research_client.py:426,434; bare 'return' at tests/test_research_scheduling.py:149,175,289 are worker loop-exit control flow (assertions at 157-162,183-186,298-300); tests/test_research_pipeline.py:333 tests exception handling with assertions at 344-351
Findings: Criterion 4 PASS - evidence recorded as file:line references above and stored in tree finding
Findings: Supplemental sweep for __test__|no cover|pragma|.skip(|mark. returned 0 hits; suite has grown to 226 tests (previous run 219) with no skipped/expected failures reported
Open

Typosaurus-Run: 4e2afb673c7f4578a12276d9181b982d
Typosaurus-Node: 46ed07b2395240b297e0fedbe3b672cd
Typosaurus-Agent: @tanya
Refs: #31
2026-08-08 02:54:49 +00:00

retoor retoor@molodetz.nl

typosaurus-sandbox

Sandbox for Typosaurus end-to-end verification.

A FastAPI application serving arithmetic operations over HTTP with JSON request/response bodies.

Configuration

The application uses a single .env.json file at the project root as its central point of truth for configuration. Defaults are plug-and-play and require no setup:

{
    "host": "127.0.0.1",
    "port": 8000
}

When no .env.json is present, the application starts with these defaults. To customise, create .env.json in the project root and populate only the keys that differ.

Usage

Start the server

python -m typosaurus_sandbox

The server listens on http://127.0.0.1:8000 by default.

Health check

GET /health

Response:

{"status": "ok"}

API endpoints

All calculator endpoints accept POST requests with a JSON body and return a JSON response.

POST /api/v1/calculator/add

Add two integers.

Request:

{"left": 3, "right": 5}

Response:

{"result": 8}

POST /api/v1/calculator/subtract

Subtract the right integer from the left.

Request:

{"left": 10, "right": 3}

Response:

{"result": 7}

POST /api/v1/calculator/clamp

Clamp a value between a low and high bound.

Request:

{"value": 15, "low": 0, "high": 10}

Response:

{"result": 10}

Boundaries are inclusive. A low > high combination produces a 422 validation response.

POST /api/v1/calculator/clamp-to-byte

Clamp an integer to the byte range [0, 255].

Request:

{"value": 300}

Response:

{"result": 255}

POST /api/v1/calculator/average

Compute the arithmetic mean of a list of values.

Request:

{"values": [1, 2, 3, 4, 5]}

Response:

{"result": 3.0}

An empty list produces a 422 validation response.

POST /api/v1/calculator/median

Compute the median of a list of values. Values are sorted internally; an even-length list returns the average of the two middle values as a float.

Request:

{"values": [1, 3, 5]}

Response:

{"result": 3.0}

Request (even length):

{"values": [1, 2, 3, 4]}

Response:

{"result": 2.5}

An empty list produces a 422 validation response.

POST /api/v1/calculator/variance

Compute the population variance of a list of values.

Request:

{"values": [1, 2, 3, 4, 5]}

Response:

{"result": 2.0}

An empty list produces a 422 validation response.

POST /api/v1/calculator/percentage

Compute what percentage value is of total.

Request:

{"value": 50, "total": 100}

Response:

{"result": 50.0}

A zero total produces a 422 validation response.

Verification

make verify

Runs compile-all checks against all source and test files, then executes the full test suite. Zero warnings are tolerated.

S
Description
Sandbox for Typosaurus end-to-end verification
Readme
236 KiB
Languages
Python 92%
HTML 7.3%
Makefile 0.7%