cropping summaries
This commit is contained in:
@@ -37,6 +37,9 @@ class CropMarginsCommandTests(unittest.TestCase):
|
||||
with contextlib.redirect_stdout(io.StringIO()) as log:
|
||||
self.assertEqual(main(["crop-margins", str(self.workspace.root)]), 0)
|
||||
self.assertIn("Page 2/2", log.getvalue())
|
||||
self.assertIn("1/2 pages rognées", log.getvalue())
|
||||
self.assertIn("Rognage moyen des pages modifiées", log.getvalue())
|
||||
self.assertIn("page(s) rognée(s) de plus de 30 %", log.getvalue())
|
||||
with pymupdf.open(self.source) as result:
|
||||
self.assertEqual(len(result), 2)
|
||||
self.assertLess(result[0].rect.height, 150)
|
||||
@@ -50,6 +53,32 @@ class CropMarginsCommandTests(unittest.TestCase):
|
||||
self.assertEqual(backups[0].read_bytes(), self.original)
|
||||
self.assertTrue((backups[0].parent.parent/"report.json").is_file())
|
||||
|
||||
def test_crop_statistics_use_only_modified_pages(self):
|
||||
records = [
|
||||
{
|
||||
"top_removed_mm": 10.0,
|
||||
"bottom_removed_mm": 20.0,
|
||||
"original_cropbox": [0, 0, 200, 300],
|
||||
"rotation": 0,
|
||||
},
|
||||
{
|
||||
"top_removed_mm": 40.0,
|
||||
"bottom_removed_mm": 0.0,
|
||||
"original_cropbox": [0, 0, 200, 300],
|
||||
"rotation": 90,
|
||||
},
|
||||
{
|
||||
"top_removed_mm": 0.0,
|
||||
"bottom_removed_mm": 0.0,
|
||||
"original_cropbox": [0, 0, 200, 300],
|
||||
"rotation": 0,
|
||||
},
|
||||
]
|
||||
count, average, over_thirty = crop_margins.crop_statistics(records)
|
||||
self.assertEqual(count, 2)
|
||||
self.assertAlmostEqual(average, (28.3465 + 56.6929) / 2, places=3)
|
||||
self.assertEqual(over_thirty, 1)
|
||||
|
||||
def test_failure_or_interruption_never_publishes_partial_batch(self):
|
||||
second = self.workspace.copies_dir/"Copie02.pdf"
|
||||
second.write_bytes(self.original)
|
||||
|
||||
Reference in New Issue
Block a user