Add Unit Test Coverage
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 48/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Tranquilla
- Stack tecnologico
- python
- Ambito
- machine-learning, testing-qa
Direzione di ricerca
Start by locating the planet generation, configuration, biome, noise, and PLY export entry points, then identify the existing test framework and run command. Add deterministic tests using small resolutions for the suggested behaviors, including mesh counts, biome classification, and export headers. Done when the documented single command runs a stable suite covering the core paths.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Add Unit Test Coverage
Summary
Add a proper unit test suite for the planet generator, noise deformation, and export pipeline. The project currently has a lot of core logic that should be covered by repeatable tests so regressions are easier to catch.
Why This Matters
- Planet generation logic is complex and easy to break unintentionally.
- Biome classification, presets, and terrain shaping have a lot of moving parts.
- Tests will make it safer to change visuals, tuning, and output formats.
- A basic test suite will help validate future refactors, including performance work and multithreading.
Suggested Test Areas
1. Configuration and Presets
- Verify each preset loads expected baseline values.
- Verify config overrides are applied correctly.
- Verify invalid values fall back to sane defaults.
2. Sphere Generation
- Verify the mesh generator returns the expected vertex and face counts for a known resolution.
- Verify the sphere is closed correctly at the longitude seam.
- Verify no invalid face indices are produced.
3. Noise Deformation
- Verify
apply_noise(...)is deterministic for the same seed and config. - Verify different seeds produce different output.
- Verify increasing amplitude changes elevation variance.
- Verify
pattern_scaleaffects terrain variation scale as expected. - Verify biome biases influence biome distribution in the expected direction.
- Verify
plains_biasincreases flatter terrain regions.
4. Biome Classification
- Verify high-temperature, high-moisture configs favor rainforest or forest.
- Verify dry configs favor desert or savanna.
- Verify cold configs favor tundra or snow.
- Verify ocean bias shifts classification toward ocean.
- Verify rock bias shifts classification toward rocky/highland biomes.
5. Planet Generation Entry Point
- Verify
generate_planet(...)returns the expected keys: vertices, faces, colors, metadata, stats. - Verify stats counts match the generated geometry.
- Verify a small known resolution produces a valid mesh and non-empty biome stats.
6. Export
- Verify PLY export writes a file.
- Verify the exported file contains the expected header fields.
- Verify vertex and face counts in the output match the generated mesh.
Sample Test Criteria
- Tests must be deterministic and not depend on random global state.
- Tests should use small resolutions so they run quickly.
- Tests should cover both normal cases and edge cases.
- Tests should fail when a regression changes mesh structure, biome assignment, or config handling.
- Tests should not rely on visual inspection.
- Performance-sensitive tests should stay lightweight enough for regular local runs and CI.
Acceptance Criteria
- A test framework is added and documented.
- Core generation paths have meaningful unit coverage.
- Tests run locally with a single command.
- The suite catches obvious regressions in presets, terrain deformation, biome logic, and export output.
- At least a few tests are deterministic and stable enough for CI.
Optional Follow-Up
- Add snapshot-style checks for generated stats.
- Add integration tests for the web API endpoints.
- Add a smoke test that generates and exports a planet from a known config.
- Lingua principale
- Python
- Stelle
- 0
- Fork
- 0
- Merge medio
- 11m
- PR unite (30g)
- 1
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di TiElixir/Pylanet
-
Fix 3D Model Drag ViewApertabug
Difficoltà 3/5 1-2 giorni Idoneità per principianti 55/100
-
Improve texturesApertaenhancement help wanted
Difficoltà 4/5 1-2 giorni Idoneità per principianti 47/100
Tutte le issue di TiElixir/Pylanet
Issue simili
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 80/100
-
area:other help wanted
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
WingedGuardian/GENesis-AGI#4734 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
peach-mitao/peach#693 ·
I maintainer di solito rispondono entro 1 giorno
-
Failed result serialization destroys a previously saved JSON resultForse già presa @chessing234 l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
huggingface/evaluate#867 ·
-
FTP reads inside a transaction use a nonexistent staging pathForse già presa @Harsh23Kashyap l’ha presa oggi. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 62/100
fsspec/filesystem_spec#2463 ·
I maintainer di solito rispondono entro 1 giorno