Files
horizon/tests/test_material_rule_library_parity.py
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

25 lines
1.3 KiB
Python

import json
import unittest
from tools import test_material_rule_library_parity as rules
class MaterialRuleLibraryCorpusTests(unittest.TestCase):
def test_bundled_modes_and_codec_mutations(self):
definitions={'minecraft:leaf':'{"type":"block","result_state":"minecraft:stone"}'}
biomes={'minecraft:plains':'unused','minecraft:desert':'unused'}
fixtures=list(rules.corpus(definitions,biomes))
self.assertEqual(fixtures,list(rules.corpus(definitions,biomes)))
self.assertEqual(len(fixtures),12)
self.assertEqual({f['legacy'] for f in fixtures},{False,True})
self.assertTrue(any(f['possible_biomes'] is None for f in fixtures))
self.assertTrue(all(f['real_noise'] for f in fixtures))
self.assertTrue(all(f['library_rules']==['minecraft:leaf'] for f in fixtures))
values=[json.loads(v) for v in fixtures[0]['library_json']]
self.assertIn({'type':'block','result_state':{'id':'minecraft:water','properties':{'level':'+01'}}},values)
self.assertTrue(any(isinstance(v,dict) and v.get('raw_ore_chance')==1.01 for v in values))
ops=fixtures[0]['ops']
self.assertTrue(any(ops[i][0]=='apply' and ops[i+1][0]=='apply' and ops[i][1:]!=ops[i+1][1:] for i in range(len(ops)-1)))
if __name__=='__main__':unittest.main()