name: tests-synthetic-fixtures
description: Use this to create deterministic test images/signals with known subpixel ground truth (edges, stripes, circles). Helps lock correctness before optimizing.
Synthetic fixtures (deterministic)
Principles
Deterministic by default (no RNG), or seeded RNG only.
Tests should check:
geometry error (px)
stability under small noise/blur
edge cases (odd sizes, borders, ROI truncation)
Useful fixtures
Half-plane step edge with known line equation (slanted edge):
I(p)=A if dot(n, p) < t else B
Optional blur along n (binomial/gaussian-ish) to make it realistic
Stripe (laser) as difference of two steps (bright-on-dark):
known left/right subpixel positions → known center + width
Circle / ring boundary (later):
implicit distance function d = sqrt((x-cx)^2+(y-cy)^2)-r
intensity from sign(d) and controlled blur
Expected-value checks
Keep early tests loose (~0.1–0.2 px).
Add tighter tests later (aim 0.05 px) on higher-fidelity fixtures.
Regression strategy
When a bug appears, capture it as a small synthetic fixture.
Converted and distributed by TomeVault — claim your Tome and manage your conversions.
1---2name: vitalyvorobyev-ringgrid-tests-synthetic-fixtures3description: ---4---5---67name: tests-synthetic-fixtures8description: Use this to create deterministic test images/signals with known subpixel ground truth (edges, stripes, circles). Helps lock correctness before optimizing.9-----------------------------------------------------------------------------------------------------------------------------------------------------------------------1011# Synthetic fixtures (deterministic)1213## Principles1415* Deterministic by default (no RNG), or seeded RNG only.16* Tests should check:1718 * geometry error (px)19 * stability under small noise/blur20 * edge cases (odd sizes, borders, ROI truncation)2122## Useful fixtures2324* **Half-plane step edge** with known line equation (slanted edge):2526 * `I(p)=A` if dot(n, p) < t else `B`27 * Optional blur along `n` (binomial/gaussian-ish) to make it realistic28* **Stripe (laser)** as difference of two steps (bright-on-dark):2930 * known left/right subpixel positions → known center + width31* **Circle / ring boundary** (later):3233 * implicit distance function `d = sqrt((x-cx)^2+(y-cy)^2)-r`34 * intensity from sign(d) and controlled blur3536## Expected-value checks3738* Keep early tests loose (~0.1–0.2 px).39* Add tighter tests later (aim 0.05 px) on higher-fidelity fixtures.4041## Regression strategy4243* When a bug appears, capture it as a small synthetic fixture.4445---46> Converted and distributed by [TomeVault](https://tomevault.io/claim/vitalyvorobyev) — claim your Tome and manage your conversions.47<!-- tomevault:4.0:skill_md:2026-04-16 -->
Run npx skillmds@latest add tomevault-io/vitalyvorobyev-ringgrid-tests-synthetic-fixtures in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
--- It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. Independent scanners report: SkillSpector: PASS, Skill Scanner: PASS. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
tomevault-io (@tomevault-io) published this skill. Their other Agent Skills are listed on their SkillMD profile.