51 lines
1.7 KiB
Python
51 lines
1.7 KiB
Python
import unittest
|
|
|
|
from docx.shared import Mm
|
|
|
|
from md2gost.layout_tracker import LayoutState, LayoutTracker
|
|
|
|
|
|
class TestLayoutState(unittest.TestCase):
|
|
def setUp(self):
|
|
self._state = LayoutState(Mm(297), Mm(210))
|
|
self._state._current_height += Mm(400)
|
|
|
|
def test_max_height(self):
|
|
self.assertEqual(Mm(297), self._state.max_height)
|
|
|
|
def test_max_width(self):
|
|
self.assertEqual(Mm(210), self._state.max_width)
|
|
|
|
def test_current_page_height(self):
|
|
self.assertEqual(Mm(103), self._state.current_page_height)
|
|
|
|
def test_remaining_page_height(self):
|
|
self.assertEqual(Mm(194), self._state.remaining_page_height)
|
|
|
|
def test_page(self):
|
|
self.assertEqual(2, self._state.page)
|
|
|
|
|
|
class TestLayoutTracker(unittest.TestCase):
|
|
def test_add_height(self):
|
|
layout_tracker = LayoutTracker(Mm(297), Mm(210))
|
|
layout_tracker.add_height(Mm(500))
|
|
self.assertEqual(Mm(203), layout_tracker._state.current_page_height)
|
|
|
|
def test_can_fit_to_page(self):
|
|
layout_tracker = LayoutTracker(Mm(297), Mm(210))
|
|
layout_tracker.add_height(Mm(397))
|
|
|
|
self.assertTrue(layout_tracker.can_fit_to_page(Mm(100)))
|
|
self.assertTrue(layout_tracker.can_fit_to_page(Mm(197)))
|
|
self.assertFalse(layout_tracker.can_fit_to_page(Mm(198)))
|
|
self.assertFalse(layout_tracker.can_fit_to_page(Mm(500)))
|
|
|
|
def test_new_page(self):
|
|
layout_tracker = LayoutTracker(Mm(297), Mm(210))
|
|
layout_tracker.add_height(Mm(497))
|
|
layout_tracker.new_page()
|
|
|
|
self.assertEqual(3, layout_tracker.current_state.page)
|
|
self.assertEqual(0, layout_tracker.current_state.current_page_height)
|