feat: initialize sunrise with 100-player shared rooms
This commit is contained in:
@@ -0,0 +1,43 @@
|
||||
import importlib.util
|
||||
import sys
|
||||
import unittest
|
||||
from pathlib import Path
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[1]
|
||||
sys.path.insert(0, str(ROOT / '.tools/terrain'))
|
||||
spec = importlib.util.spec_from_file_location('building_data', ROOT / 'scripts/prepare-vworld-buildings.py')
|
||||
module = importlib.util.module_from_spec(spec)
|
||||
spec.loader.exec_module(module)
|
||||
|
||||
|
||||
def feature(identity, x=126.99, properties=None):
|
||||
return {'type': 'Feature', 'id': identity, 'properties': properties or {}, 'geometry': {
|
||||
'type': 'Polygon', 'coordinates': [[[x, 37.43], [x+.0001, 37.43],
|
||||
[x+.0001, 37.4301], [x, 37.4301], [x, 37.43]]]}}
|
||||
|
||||
|
||||
class VWorldBuildingsTest(unittest.TestCase):
|
||||
def test_selection_uses_only_official_features_and_prefers_measured_height(self):
|
||||
empty = feature('vworld/a', properties={'source:geometry': 'VWorld'})
|
||||
measured = feature('vworld/b', properties={'height': '12', 'source:geometry': 'VWorld'})
|
||||
separate = feature('vworld/c', 126.992, properties={'source:geometry': 'VWorld'})
|
||||
separate['geometry']['coordinates'].append([[126.99202,37.43002], [126.99202,37.43004],
|
||||
[126.99204,37.43004], [126.99204,37.43002], [126.99202,37.43002]])
|
||||
result, report = module.select_buildings([empty, measured, separate])
|
||||
self.assertEqual([f['id'] for f in result], ['vworld/b', 'vworld/c'])
|
||||
self.assertEqual(result[0]['properties']['height'], '12')
|
||||
self.assertEqual(len(result[1]['geometry']['coordinates']), 2)
|
||||
self.assertEqual(report['officialOverlapsSkipped'], ['vworld/a'])
|
||||
self.assertTrue(all(f['properties']['source:geometry'] == 'VWorld' for f in result))
|
||||
|
||||
def test_official_zero_and_overflow_are_missing_and_multipart_is_preserved(self):
|
||||
raw = feature('archive:1', properties={'A1':'123', 'A16':'0', 'A26':'*********', 'A9':'공동주택'})
|
||||
raw['geometry'] = {'type':'MultiPolygon', 'coordinates':[raw['geometry']['coordinates'], feature('other',126.992)['geometry']['coordinates']]}
|
||||
result = module.official_features([raw])
|
||||
self.assertEqual(len(result), 2)
|
||||
self.assertNotEqual(result[0]['id'], result[1]['id'])
|
||||
self.assertTrue(all('height' not in f['properties'] and 'building:levels' not in f['properties'] for f in result))
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
unittest.main()
|
||||
Reference in New Issue
Block a user