velxio/test/test_circuit
David Montero Crespo 9cd5061732 refactor: rename wokwi-libs/ → third-party/
The directory grew well beyond Wokwi-only contents: it now hosts
lcgamboa's QEMU fork (qemu-lcgamboa), Espressif's esp32-camera, the
ngspice WASM build, fritzing-parts, picowi, an alternative QEMU
(qemu-esp32), the 100_Days_100_IoT_Projects examples repo, and
Wokwi's own avr8js/rp2040js/wokwi-elements/wokwi-features/wokwi-boards.
"wokwi-libs" was misleading — half the contents have nothing to do
with Wokwi. "third-party/" is the standard convention for vendored
external dependencies.

Mechanical changes:

  Path rename:
    wokwi-libs/ → third-party/
    update-wokwi-libs.bat → update-third-party.bat
    docs/WOKWI_LIBS.md → docs/THIRD_PARTY.md

  Submodule reconfiguration:
    .gitmodules — 4 path= and section names updated
    .git/modules/wokwi-libs/ → .git/modules/third-party/
    each submodule's .git file rewired to ../../.git/modules/third-party/<name>

  Reference updates (~80 files): vite.config.ts aliases, Dockerfile
    COPY paths, GH Actions workflow steps, build_qemu_*.sh, all
    docs/* and test/*/autosearch/* entries that mention the path,
    package-lock.json file: dependencies, .gitignore patterns,
    sitemap.xml + index.html SEO blurbs, scripts/generate-component-*,
    .dockerignore, .idea/vcs.xml. Bulk replaced both `wokwi-libs/`
    (path) and bare `wokwi-libs` (textual mentions in docs/comments).

Verified:
  - npx tsc -b --noEmit produces no new errors related to these paths
  - vite.config.ts aliases now point at ../third-party/avr8js etc.
  - All 4 git submodules (avr8js, rp2040js, wokwi-elements,
    wokwi-features) are linked under third-party/ with their
    worktrees re-populated and config files referencing the new path
  - `grep -r wokwi-libs` returns zero hits outside node_modules,
    .vite, frontend/dist, third-party/ (upstream submodule contents),
    *.pyc caches, and *.dll.pre-camera rollback binaries

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-03 00:58:57 -03:00
..
autosearch refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
fixtures feat: electrical simulation via ngspice-WASM (eecircuit-engine) 2026-04-15 12:11:54 +00:00
plan refactor: rename wokwi-libs/ → third-party/ 2026-05-03 00:58:57 -03:00
src feat: electrical simulation via ngspice-WASM (eecircuit-engine) 2026-04-15 12:11:54 +00:00
test test: update BMP280 chip ID assertions and clarify tagName uniqueness in metadata drift test 2026-04-21 17:31:51 -03:00
README.md feat: electrical simulation via ngspice-WASM (eecircuit-engine) 2026-04-15 12:11:54 +00:00
package-lock.json feat: electrical simulation via ngspice-WASM (eecircuit-engine) 2026-04-15 12:11:54 +00:00
package.json feat: electrical simulation via ngspice-WASM (eecircuit-engine) 2026-04-15 12:11:54 +00:00

README.md

test_circuit — sandbox de emulación de circuitos

Sandbox para validar la emulación de circuitos analógicos + digitales + Arduino en JS puro antes de tocar Velxio.

Estructura

test_circuit/
├── plan/                   # Documentos de planificación (fases 07)
├── src/
│   ├── solver/             # MNA hand-rolled (legacy, baseline)
│   ├── components/         # Modelos JS (legacy, baseline)
│   ├── avr/                # AVRHarness (avr8js estilo Velxio)
│   └── spice/              # SpiceEngine (ngspice-WASM) + AVRSpiceBridge
├── test/                   # Vitest tests
│   ├── passive.test.js               # baseline JS
│   ├── transient_rc.test.js          # baseline JS
│   ├── diodes.test.js                # baseline JS
│   ├── avr_blink.test.js             # avr8js con blink.hex
│   ├── e2e_pot_pwm_led.test.js       # baseline JS + avr8js
│   ├── e2e_thermistor.test.js        # baseline JS + avr8js
│   ├── ngspice_smoke.test.js         # ngspice boot
│   ├── spice_passive.test.js         # ngspice DC
│   ├── spice_transient.test.js       # ngspice .tran
│   ├── spice_ac.test.js              # ngspice .ac Bode
│   ├── spice_active.test.js          # diodo, BJT, MOSFET, op-amp
│   ├── spice_digital.test.js         # lógica behavioral
│   ├── spice_555_astable.test.js     # oscilador relajación
│   └── spice_avr_mixed.test.js       # co-simulación avr8js ↔ ngspice
├── fixtures/               # .hex pre-compilados / ensamblados a mano
├── autosearch/             # Hallazgos, métricas, propuestas
└── package.json

Correr las pruebas

cd test/test_circuit
npm install
npm test

Por fase:

npm run test:phase3   # pasivos
npm run test:phase4   # activos (diodos)
npm run test:avr      # integración avr8js
npm run test:e2e      # end-to-end Arduino + circuito

Alcance

Ver plan/phase_0_scope.md.