Add Unit Test Coverage

Aperta
#11 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

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

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

help wanted

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_scale affects terrain variation scale as expected.
  • Verify biome biases influence biome distribution in the expected direction.
  • Verify plains_bias increases 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

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di TiElixir/Pylanet

Tutte le issue di TiElixir/Pylanet

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.