0
This repository has been archived on 2025-04-25. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
Minecraft-Overviewer/test/test_regionTrimmer.py
2019-03-30 11:46:37 +00:00

59 lines
2.1 KiB
Python

import unittest
from pathlib import Path
from tempfile import TemporaryDirectory
import networkx
import contrib.regionTrimmer as region_trimmer
class TestRegionTrimmer(unittest.TestCase):
def test_get_nodes(self):
coords = [(0, 0), (0, -1), (-1, 0), (-1, -1)]
with TemporaryDirectory() as tmpdirname:
region_file = Path(tmpdirname)
for x, z in coords:
region_fname = "r.{x}.{z}.mca".format(x=x, z=z)
(region_file / region_fname).touch()
nodes = region_trimmer.get_nodes(region_file)
self.assertListEqual(sorted(nodes), sorted(coords))
def test_get_nodes_returns_empty_list_when_no_region_files(self):
with TemporaryDirectory() as tmpdirname:
region_file = Path(tmpdirname)
(region_file / "not_region_file.txt").touch()
nodes = region_trimmer.get_nodes(region_file)
self.assertListEqual(nodes, [])
def test_get_region_file_from_node(self):
node = (0, 0)
regionset_path = Path('/path/to/regions')
self.assertEqual(region_trimmer.get_region_file_from_node(
regionset_path, node), Path('/path/to/regions/r.0.0.mca'))
def test_get_graph_bounds(self):
""" Should return (max_x, min_x, max_z, min_z) of all nodes
"""
graph = networkx.Graph()
graph.add_nodes_from([(0, 0), (0, -1), (-1, 0), (-1, -1)])
self.assertEqual(region_trimmer.get_graph_bounds(graph), (0, -1, 0, -1))
def test_get_graph_center_by_bounds(self):
self.assertEqual(region_trimmer.get_graph_center_by_bounds((0, -1, 0, -1)), (-1, -1))
def test_generate_edges(self):
graph = networkx.Graph()
graph.add_nodes_from([(0, 0), (0, -1), (-1, 0), (-1, -1)])
graph = region_trimmer.generate_edges(graph)
expected = [((-1, 0), (-1, -1)),
((0, -1), (-1, -1)),
((0, 0), (-1, -1)),
((0, 0), (-1, 0)),
((0, 0), (0, -1))]
self.assertListEqual(sorted(list(graph.edges)), expected)