Page MenuHomec4science

test_page.py
No OneTemporary

File Metadata

Created
Mon, May 13, 08:46

test_page.py

import unittest
from os import sep, path
from os.path import isdir, dirname, basename
import lxml.etree as ET
import sys
dir_changed = False
if not isdir('datatypes'):
sys.path.append(dirname(sys.path[0]))
dir_changed = True
from datatypes.page import Page
from datatypes.word import Word
from datatypes.lineNumber import LineNumber
class TestPage(unittest.TestCase):
def setUp(self):
DATADIR = dirname(__file__) + sep + 'test_data'
if not isdir(DATADIR):
DATADIR = dirname(dirname(__file__)) + sep + 'test_data'
self.test_file = DATADIR + sep + 'test.xml'
self.test_svg_file = DATADIR + sep + 'test421.svg'
def test_Page(self):
page = Page(xml_source_file=self.test_file, svg_file=self.test_svg_file)
self.assertEqual(page.title, 'Mp XIV 1')
self.assertEqual(page.number, '421')
self.assertEqual(len(page.sonderzeichen_list), 2)
self.assertEqual('st21' in page.sonderzeichen_list, True)
self.assertEqual('st23' in page.sonderzeichen_list, True)
self.assertEqual(page.style_dict['st0']['fill'], '#F8F9F8')
self.assertEqual(page.width, 493.23)
def test_get_biggest_fontSize4styles(self):
page = Page(xml_source_file=self.test_file)
style_set = { 'st12', 'st2', 'st14', 'st13' }
self.assertEqual(page.get_biggest_fontSize4styles(style_set=style_set), 10)
def test_get_words(self):
page = Page(xml_source_file=self.test_file)
words = page.words
self.assertEqual(len(words), 438)
self.assertEqual(words[0].text, '$')
self.assertEqual(words[437].text, 'mußte!')
def test_init_words(self):
page = Page(xml_source_file=self.test_file)
words = page.words
""" word insertions are not tested for the moment!!
self.assertEqual(words[31].is_before_inserted_words, True)
self.assertEqual(words[31].word_insertion_mark.id, 0)
self.assertEqual(words[20].is_head_of_inserted_words, True)
self.assertEqual(words[25].is_tail_of_inserted_words, True)
for i in range(20, 25):
self.assertEqual(words[i].word_insertion_mark is not None, True)
"""
def test_init_line_numbers(self):
page = Page(xml_source_file=self.test_file)
line_numbers = [ LineNumber(id=2, top=20, bottom=40), LineNumber(id=4, top=50, bottom=60), LineNumber(id=6, top=70, bottom=90) ]
page.init_line_numbers(line_numbers, 122.345)
self.assertEqual(len(page.line_numbers), 7)
self.assertEqual(page.line_numbers[0].id, 1)
self.assertEqual(page.line_numbers[6].id, 7)
self.assertEqual(page.line_numbers[6].top, 91)
self.assertEqual(page.line_numbers[6].bottom, 122.345)
self.assertEqual(page.get_line_number(122), 7)
self.assertEqual(page.get_line_number(92), 7)
self.assertEqual(page.get_line_number(22), 2)
def test_get_line_number(self):
page = Page(xml_source_file=self.test_file)
self.assertEqual(page.get_line_number( (page.words[0].transkription_positions[0].bottom+page.words[0].transkription_positions[0].top)/2), 1)
self.assertEqual(page.get_line_number( (page.words[27].transkription_positions[0].bottom+page.words[27].transkription_positions[0].top)/2), 2)
self.assertEqual(page.get_line_number( (page.words[105].transkription_positions[0].bottom+page.words[105].transkription_positions[0].top)/2), 7)
def test_get_word_insertion(self):
page = Page(self.test_file)
insertions = page.word_insertion_marks
self.assertEqual(len(insertions), 8)
#for insertion in insertions:
# self.assertEqual(insertion.inserted_words[0].is_head_of_inserted_words, True)
def test_get_semanticAndDataDictionaries(self):
page = Page(xml_source_file=self.test_file)
#print(page.get_data_dictionary())
#self.assertEqual(page.get_data_dictionary()['body'].get('svg_image').get('file_name'), page.svg_file)
if __name__ == "__main__":
unittest.main()

Event Timeline