mirror of
https://github.com/evennia/evennia.git
synced 2026-03-16 21:06:30 +01:00
Correct unit tests for grid generator
This commit is contained in:
parent
642f17be68
commit
66ed25b885
2 changed files with 6 additions and 14 deletions
|
|
@ -264,8 +264,6 @@ class TestFormatGrid(TestCase):
|
|||
"""Grid with small variations"""
|
||||
elements = self._generate_elements(3, 1, 30)
|
||||
rows = utils.format_grid(elements, width=78)
|
||||
for row in rows:
|
||||
print(f"'{row}'", len(row))
|
||||
self.assertEqual(len(rows), 3)
|
||||
self.assertTrue(all(len(row) == 78 for row in rows))
|
||||
|
||||
|
|
@ -273,8 +271,6 @@ class TestFormatGrid(TestCase):
|
|||
"""Grid with big variations"""
|
||||
elements = self._generate_elements(3, 15, 30)
|
||||
rows = utils.format_grid(elements, width=82, sep=" ")
|
||||
for row in rows:
|
||||
print(f"'{row}'", len(row))
|
||||
self.assertEqual(len(rows), 8)
|
||||
self.assertTrue(all(len(row) == 82 for row in rows))
|
||||
|
||||
|
|
@ -282,8 +278,6 @@ class TestFormatGrid(TestCase):
|
|||
"""Grid with very long strings"""
|
||||
elements = self._generate_elements(70, 20, 30)
|
||||
rows = utils.format_grid(elements, width=78)
|
||||
for row in rows:
|
||||
print(f"'{row}'", len(row))
|
||||
self.assertEqual(len(rows), 30)
|
||||
self.assertTrue(all(len(row) == 78 for row in rows))
|
||||
|
||||
|
|
@ -293,19 +287,15 @@ class TestFormatGrid(TestCase):
|
|||
"copy", "cpattr", "desc", "destroy", "dig",
|
||||
"examine", "find", "force", "lock")
|
||||
rows = utils.format_grid(elements, width=78)
|
||||
for row in rows:
|
||||
print(f"'{row}'", len(row))
|
||||
self.assertEqual(len(rows), 2)
|
||||
for element in elements:
|
||||
self.assertTrue(element in rows, f"element {element} is missing.")
|
||||
self.assertTrue(element in "\n".join(rows), f"element {element} is missing.")
|
||||
|
||||
def test_breakline(self):
|
||||
"""Grid with line-long elements in middle"""
|
||||
elements = self._generate_elements(6, 4, 30)
|
||||
elements[10] = elements[20] = "-" * 78
|
||||
rows = utils.format_grid(elements, width=78)
|
||||
for row in rows:
|
||||
print(f"'{row}'", len(row))
|
||||
self.assertEqual(len(rows), 8)
|
||||
for element in elements:
|
||||
self.assertTrue(element in rows, f"element {element} is missing.")
|
||||
self.assertTrue(element in "\n".join(rows), f"element {element} is missing.")
|
||||
|
|
|
|||
|
|
@ -1744,6 +1744,8 @@ def format_grid(elements, width=78, sep=" ", verbatim_elements=None):
|
|||
elements = [elements[ie] + sep for ie in range(nelements - 1)] + [elements[-1]]
|
||||
wls = [len(elem) for elem in elements]
|
||||
wls_percentile = [wl for iw, wl in enumerate(wls) if iw not in verbatim_elements]
|
||||
# from pudb import debugger
|
||||
# debugger.Debugger().set_trace()
|
||||
|
||||
# get the nth percentile as a good representation of average width
|
||||
averlen = int(percentile(sorted(wls_percentile), 0.9)) + 2 # include extra space
|
||||
|
|
@ -1752,10 +1754,10 @@ def format_grid(elements, width=78, sep=" ", verbatim_elements=None):
|
|||
if aver_per_row == 1:
|
||||
# one line per row, output directly since this is trivial
|
||||
# we use rstrip here to remove extra spaces added by sep
|
||||
return "\n".join(
|
||||
return [
|
||||
crop(element.rstrip(), width) + " " * max(0, width - len(element.rstrip()))
|
||||
for iel, element in enumerate(elements)
|
||||
)
|
||||
]
|
||||
|
||||
indices = [averlen * ind for ind in range(aver_per_row - 1)]
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue