Beispiel #1
0
 def test_insert_almost_end(self):
     runs = runlist.RunList(5, 'a')
     runs.set_run(0, 3, 'b')
     runs.set_run(4, 5, 'c')
     self.check_value(runs, 'bbbac')
     runs.insert(4, 3)
     self.check_value(runs, 'bbbaaaac')
Beispiel #2
0
 def _set_style(self, start, end, attributes):
     for attribute, value in attributes.items():
         try:
             runs = self._style_runs[attribute]
         except KeyError:
             runs = self._style_runs[attribute] = runlist.RunList(0, None)
             runs.insert(0, len(self._text))
         runs.set_run(start, end, value)
Beispiel #3
0
 def _get_lines(self):
     len_text = len(self._document.text)
     glyphs = self._get_glyphs()
     owner_runs = runlist.RunList(len_text, None)
     self._get_owner_runs(owner_runs, glyphs, 0, len_text)
     lines = [
         line for line in self._flow_glyphs(glyphs, owner_runs, 0, len_text)
     ]
     self.content_width = 0
     self._flow_lines(lines, 0, len(lines))
     return lines
Beispiel #4
0
    def test_zero(self):
        runs = runlist.RunList(0, 'x')
        it = iter(runs)

        start, end, s = next(it)
        self.assertTrue(start == 0)
        self.assertTrue(end == 0)
        self.assertTrue(s == 'x')

        self.assertRaises(StopIteration, it.__next__)
        self.check_optimal(runs)
Beispiel #5
0
 def test_insert_beginning_2(self):
     runs = runlist.RunList(5, 'a')
     self.check_value(runs, 'aaaaa')
     runs.insert(0, 1)
     runs.set_run(0, 1, 'b')
     self.check_value(runs, 'baaaaa')
     runs.insert(0, 1)
     runs.set_run(0, 1, 'c')
     self.check_value(runs, 'cbaaaaa')
     runs.insert(0, 1)
     runs.set_run(0, 1, 'c')
     self.check_value(runs, 'ccbaaaaa')
Beispiel #6
0
    def test_initial(self):
        runs = runlist.RunList(10, 'x')
        it = iter(runs)

        start, end, s = next(it)
        self.assertTrue(start == 0)
        self.assertTrue(end == 10)
        self.assertTrue(s == 'x')

        self.assertRaises(StopIteration, it.__next__)

        self.check_value(runs, 'x' * 10)
Beispiel #7
0
 def create_runs1(self):
     runs = runlist.RunList(10, 'a')
     runs.set_run(1, 10, 'b')
     runs.set_run(2, 10, 'c')
     runs.set_run(3, 10, 'd')
     runs.set_run(4, 10, 'e')
     runs.set_run(5, 10, 'f')
     runs.set_run(6, 10, 'g')
     runs.set_run(7, 10, 'h')
     runs.set_run(8, 10, 'i')
     runs.set_run(9, 10, 'j')
     self.check_value(runs, 'abcdefghij')
     return runs
Beispiel #8
0
    def _insert_text(self, start, text, attributes):
        super(FormattedDocument, self)._insert_text(start, text, attributes)

        len_text = len(text)
        for runs in self._style_runs.values():
            runs.insert(start, len_text)

        if attributes is not None:
            for attribute, value in attributes.items():
                try:
                    runs = self._style_runs[attribute]
                except KeyError:
                    runs = self._style_runs[attribute] = runlist.RunList(0, None)
                    runs.insert(0, len(self.text))
                runs.set_run(start, start + len_text, value)
Beispiel #9
0
 def test_set_overlapped(self):
     runs = runlist.RunList(10, 'a')
     runs.set_run(0, 5, 'b')
     self.check_value(runs, 'bbbbbaaaaa')
     runs.set_run(5, 10, 'c')
     self.check_value(runs, 'bbbbbccccc')
     runs.set_run(3, 7, 'd')
     self.check_value(runs, 'bbbddddccc')
     runs.set_run(4, 6, 'e')
     self.check_value(runs, 'bbbdeedccc')
     runs.set_run(5, 9, 'f')
     self.check_value(runs, 'bbbdeffffc')
     runs.set_run(2, 3, 'g')
     self.check_value(runs, 'bbgdeffffc')
     runs.set_run(1, 3, 'h')
     self.check_value(runs, 'bhhdeffffc')
     runs.set_run(1, 9, 'i')
     self.check_value(runs, 'biiiiiiiic')
     runs.set_run(0, 10, 'j')
     self.check_value(runs, 'jjjjjjjjjj')
Beispiel #10
0
 def test_delete_1_all(self):
     runs = runlist.RunList(5, 'a')
     self.check_value(runs, 'aaaaa')
     runs.delete(0, 5)
     self.check_value(runs, '')
     self.check_empty(runs, 'a')
Beispiel #11
0
 def test_set1_all(self):
     runs = runlist.RunList(10, 'a')
     runs.set_run(0, 10, 'b')
     self.check_value(runs, 'bbbbbbbbbb')
Beispiel #12
0
 def test_set1_1(self):
     runs = runlist.RunList(10, 'a')
     runs.set_run(1, 2, 'b')
     self.check_value(runs, 'abaaaaaaaa')
Beispiel #13
0
 def test_set1_start(self):
     runs = runlist.RunList(10, 'a')
     runs.set_run(0, 5, 'b')
     self.check_value(runs, 'bbbbbaaaaa')
Beispiel #14
0
 def test_set1_end(self):
     runs = runlist.RunList(10, 'a')
     runs.set_run(5, 10, 'b')
     self.check_value(runs, 'aaaaabbbbb')
Beispiel #15
0
 def test_insert_empty(self):
     runs = runlist.RunList(0, 'a')
     runs.insert(0, 10)
     self.check_value(runs, 'aaaaaaaaaa')
Beispiel #16
0
 def test_set1(self):
     runs = runlist.RunList(10, 'a')
     runs.set_run(2, 8, 'b')
     self.check_value(runs, 'aabbbbbbaa')
Beispiel #17
0
 def create_runs2(self):
     runs = runlist.RunList(10, 'a')
     runs.set_run(4, 7, 'b')
     runs.set_run(7, 10, 'c')
     self.check_value(runs, 'aaaabbbccc')
     return runs
Beispiel #18
0
 def test_insert_1(self):
     runs = runlist.RunList(5, 'a')
     runs.set_run(1, 4, 'b')
     self.check_value(runs, 'abbba')
     runs.insert(1, 3)
     self.check_value(runs, 'aaaabbba')
Beispiel #19
0
 def test_insert_2(self):
     runs = runlist.RunList(5, 'a')
     runs.set_run(1, 2, 'b')
     self.check_value(runs, 'abaaa')
     runs.insert(2, 3)
     self.check_value(runs, 'abbbbaaa')
Beispiel #20
0
 def test_insert_end(self):
     runs = runlist.RunList(5, 'a')
     runs.set_run(4, 5, 'b')
     self.check_value(runs, 'aaaab')
     runs.insert(5, 3)
     self.check_value(runs, 'aaaabbbb')
Beispiel #21
0
 def test_delete_1_end(self):
     runs = runlist.RunList(5, 'a')
     self.check_value(runs, 'aaaaa')
     runs.delete(2, 5)
     self.check_value(runs, 'aa')
Beispiel #22
0
 def test_delete_1_middle(self):
     runs = runlist.RunList(5, 'a')
     self.check_value(runs, 'aaaaa')
     runs.delete(1, 4)
     self.check_value(runs, 'aa')
Beispiel #23
0
 def test_delete_1_beginning(self):
     runs = runlist.RunList(5, 'a')
     self.check_value(runs, 'aaaaa')
     runs.delete(0, 3)
     self.check_value(runs, 'aa')