aboutsummaryrefslogtreecommitdiffziptar.gz
path: root/tests/test_viewer_export.py
diff options
context:
space:
mode:
authorgodosa <godosa@godosa.eu>2026-10-06 23:52:03 +0200
committergodosa <godosa@godosa.eu>2026-10-06 23:52:03 +0200
commit346b1c5195bffc71ceaa9262453e3c189656400b (patch)
tree01ac0d31e2724cd6abcc689a5a228e2cbea2f6cf /tests/test_viewer_export.py
downloadworldgen-346b1c5195bffc71ceaa9262453e3c189656400b.tar.gz
worldgen-346b1c5195bffc71ceaa9262453e3c189656400b.zip
worldgen: initial public history
Diffstat (limited to 'tests/test_viewer_export.py')
-rw-r--r--tests/test_viewer_export.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/tests/test_viewer_export.py b/tests/test_viewer_export.py
new file mode 100644
index 0000000..b34f2f9
--- /dev/null
+++ b/tests/test_viewer_export.py
@@ -0,0 +1,33 @@
+import json
+import shutil
+import tempfile
+import unittest
+from pathlib import Path
+
+import numpy as np
+from PIL import Image
+
+from mapgen import viewer_export as VE
+
+
+class ViewerExportTest(unittest.TestCase):
+ def test_write_all(self):
+ tmp = Path(tempfile.mkdtemp())
+ try:
+ rgb = np.zeros((20, 40, 3), np.uint8)
+ rgb[:, :20] = (200, 30, 30)
+ VE.write_all(tmp / "viewer", [
+ {"id": "a", "name": "A", "rgb": rgb, "legend": None},
+ {"id": "b", "name": "B", "rgb": rgb,
+ "legend": VE.categorical_legend(["x", "y"], np.array([[255, 0, 0], [0, 0, 255]]))},
+ {"id": "c", "name": "C", "rgb": rgb,
+ "legend": VE.continuous_legend("m", -10.0, 10.0, [[0, 0, 0], [128, 128, 128], [255, 255, 255]])},
+ ])
+ idx = json.loads((tmp / "viewer" / "layers.json").read_text())
+ self.assertEqual([L["id"] for L in idx], ["a", "b", "c"])
+ self.assertEqual(idx[1]["legend"]["items"][1], {"name": "y", "color": "#0000ff"})
+ self.assertEqual(idx[2]["legend"]["stops"], [[-10.0, "#000000"], [0.0, "#808080"], [10.0, "#ffffff"]])
+ im = Image.open(tmp / "viewer" / "a.jpg")
+ self.assertEqual((im.size, im.format), ((40, 20), "JPEG"))
+ finally:
+ shutil.rmtree(tmp)