Files
horizon-airdef/tests/test_terrain_parity.py
T
Ludovic Marie cb19660fbe Build Horizon Rust parity foundations and differential validation
Add version-bound core, world data, geometry, generation and feature implementations with native client/server comparison tools and scoped evidence reports. Apply Horizon project branding.

Workspace tests, Clippy and 147 Python tests passed. Full 51-family survival and expanded provider comparisons are still running; complete gameplay parity and a playable Rust client remain unfinished. Private game artifacts and the isolated simple-block placement work are excluded.
2026-10-06 11:24:51 +02:00

38 lines
2.0 KiB
Python

import json
import unittest
from tools import test_terrain_parity as terrain
class TerrainCorpusTests(unittest.TestCase):
def inputs(self):
names=["air","void_air","cave_air","stone","water","lava","oak_leaves","glass","oak_slab"]
facts={"states":[["minecraft:"+name,name.endswith("air"),name in ["water","lava","oak_slab"]] for name in names],
"defaults":{"minecraft:"+name:i for i,name in enumerate(names)}}
setting={"noise":{"min_y":-64,"height":384},"default_block":"minecraft:stone","default_fluid":"minecraft:water","sea_level":63,"noise_router":{},"aquifers":{"barrier":0}}
return facts,{"settings":{"minecraft:overworld":json.dumps(setting)}}
def test_corpus_retains_presets_seed_modes_and_repeat_fills(self):
facts,bundle=self.inputs();fixtures=list(terrain.corpus(facts,bundle))
self.assertEqual(fixtures,list(terrain.corpus(facts,bundle)))
self.assertEqual(len(fixtures),66)
self.assertEqual({f["legacy"] for f in fixtures[:6]},{True,False})
self.assertEqual({f["seed"] for f in fixtures[:6]},{0,-1,0x123456789abcdef})
self.assertTrue(all(f["initial"] for f in fixtures))
self.assertTrue(any(f["repeats"]==2 for f in fixtures[:6]))
self.assertTrue(any(f["aquifers"] is None for f in fixtures))
self.assertTrue(any(f["aquifers"] is not None for f in fixtures))
def test_partial_fills_and_input_writes_stay_inside_chunk(self):
facts,bundle=self.inputs();fixtures=list(terrain.corpus(facts,bundle))
self.assertTrue(any(f["min"]<f["noise_min"] for f in fixtures))
for f in fixtures:
self.assertLessEqual(f["min"],f["noise_min"])
self.assertLessEqual(f["noise_min"]+f["noise_height"],f["min"]+f["height"])
for x,y,z,state in f["initial"]:
self.assertTrue(0<=x<16 and 0<=z<16)
self.assertTrue(f["min"]<=y<f["min"]+f["height"])
self.assertTrue(0<=state<len(facts["states"]))
if __name__=="__main__":unittest.main()