Example #1
0
    def testPlainTableRenderingVerticalNoSegmentation(self):
        collation = Collation()
        collation.add_plain_witness("A",
                                    "This very quick very quick brown wombat")
        collation.add_plain_witness("B", "That very quick brown koala")
        collation.add_plain_witness("C", "That very quick brown kangaroo")
        expected_output = """\
+--------+-------+----------+
|   A    |   B   |    C     |
+--------+-------+----------+
|  This  |  That |   That   |
+--------+-------+----------+
|  very  |   -   |    -     |
+--------+-------+----------+
| quick  |   -   |    -     |
+--------+-------+----------+
|  very  |  very |   very   |
+--------+-------+----------+
| quick  | quick |  quick   |
+--------+-------+----------+
| brown  | brown |  brown   |
+--------+-------+----------+
| wombat | koala | kangaroo |
+--------+-------+----------+"""
        plain_text_output = str(
            collate(collation, layout="vertical", segmentation=None))
        self.assertEqual(expected_output, plain_text_output)
 def testJSONAlignmentTableRendering(self):
     collation = Collation()
     collation.add_plain_witness("A",
                                 "This very quick very quick brown wombat")
     collation.add_plain_witness("B", "That very quick brown koala")
     collation.add_plain_witness("C", "That very quick brown kangaroo")
     expected_output = '{"table": [[["This very quick"], ["very quick brown"], ["wombat"]], [["That"], ["very quick brown"], ["koala"]], [["That"], ["very quick brown"], ["kangaroo"]]], "witnesses": ["A", "B", "C"]}'
     json = collate(collation, output="json")
     self.assertEquals(expected_output, json)
    def testPlainTableRendering(self):
        collation = Collation()
        collation.add_plain_witness("A",
                                    "This very quick very quick brown wombat")
        collation.add_plain_witness("B", "That very quick brown koala")
        collation.add_plain_witness("C", "That very quick brown kangaroo")
        expected_output = """+---+-----------------+------------------+----------+
| A | This very quick | very quick brown | wombat   |
| B | That            | very quick brown | koala    |
| C | That            | very quick brown | kangaroo |
+---+-----------------+------------------+----------+"""
        plain_text_output = str(collate(collation))
        self.assertEquals(expected_output, plain_text_output)
Example #4
0
    def testPlainTableRenderingNoParallelSegmentation(self):
        collation = Collation()
        collation.add_plain_witness("A",
                                    "This very quick very quick brown wombat")
        collation.add_plain_witness("B", "That very quick brown koala")
        collation.add_plain_witness("C", "That very quick brown kangaroo")
        expected_output = """\
+---+------+------+-------+------+-------+-------+----------+
| A | This | very | quick | very | quick | brown | wombat   |
| B | That | -    | -     | very | quick | brown | koala    |
| C | That | -    | -     | very | quick | brown | kangaroo |
+---+------+------+-------+------+-------+-------+----------+"""
        plain_text_output = str(collate(collation, segmentation=False))
        self.assertEqual(expected_output, plain_text_output)
Example #5
0
 def testColumnStatusInAlignmentTable(self):
     collation = Collation()
     collation.add_plain_witness("A",
                                 "The quick brown fox jumps over the dog.")
     collation.add_plain_witness("B",
                                 "The brown fox jumps over the lazy dog.")
     alignment_table = collate(collation)
     status_array = []
     for column in alignment_table.columns:
         status_array.append(column.variant)
     self.assertEqual([False, True, False, True, False], status_array)
     collation.add_plain_witness(
         "C", "The brown fox walks around the lazy dog.")
     collate(collation)
     alignment_table = collate(collation)
     status_array = []
     for column in alignment_table.columns:
         status_array.append(column.variant)
     self.assertEqual([False, True, False, True, False, True, False],
                      status_array)
Example #6
0
 def testJSONAlignmentTableRendering(self):
     collation = Collation()
     collation.add_plain_witness("A",
                                 "This very quick very quick brown wombat")
     collation.add_plain_witness("B", "That very quick brown koala")
     collation.add_plain_witness("C", "That very quick brown kangaroo")
     expected_output = {
         "table": [[[{
             "n": "This",
             "_sigil": "A",
             "t": "This ",
             "_token_array_position": 0
         }, {
             "n": "very",
             "_sigil": "A",
             "t": "very ",
             "_token_array_position": 1
         }, {
             "n": "quick",
             "_sigil": "A",
             "t": "quick ",
             "_token_array_position": 2
         }],
                    [{
                        "n": "very",
                        "_sigil": "A",
                        "t": "very ",
                        "_token_array_position": 3
                    }, {
                        "n": "quick",
                        "_sigil": "A",
                        "t": "quick ",
                        "_token_array_position": 4
                    }, {
                        "n": "brown",
                        "_sigil": "A",
                        "t": "brown ",
                        "_token_array_position": 5
                    }],
                    [{
                        "n": "wombat",
                        "_sigil": "A",
                        "t": "wombat",
                        "_token_array_position": 6
                    }]],
                   [[{
                       "n": "That",
                       "_sigil": "B",
                       "t": "That ",
                       "_token_array_position": 8
                   }],
                    [{
                        "n": "very",
                        "_sigil": "B",
                        "t": "very ",
                        "_token_array_position": 9
                    }, {
                        "n": "quick",
                        "_sigil": "B",
                        "t": "quick ",
                        "_token_array_position": 10
                    }, {
                        "n": "brown",
                        "_sigil": "B",
                        "t": "brown ",
                        "_token_array_position": 11
                    }],
                    [{
                        "n": "koala",
                        "_sigil": "B",
                        "t": "koala",
                        "_token_array_position": 12
                    }]],
                   [[{
                       "n": "That",
                       "_sigil": "C",
                       "t": "That ",
                       "_token_array_position": 14
                   }],
                    [{
                        "n": "very",
                        "_sigil": "C",
                        "t": "very ",
                        "_token_array_position": 15
                    }, {
                        "n": "quick",
                        "_sigil": "C",
                        "t": "quick ",
                        "_token_array_position": 16
                    }, {
                        "n": "brown",
                        "_sigil": "C",
                        "t": "brown ",
                        "_token_array_position": 17
                    }],
                    [{
                        "n": "kangaroo",
                        "_sigil": "C",
                        "t": "kangaroo",
                        "_token_array_position": 18
                    }]]],
         "witnesses": ["A", "B", "C"]
     }
     json_out = collate(collation, output="json")
     print(json_out)
     self.assertEqual(expected_output, json.loads(json_out))
Example #7
0
 def testJSONAlignmentTableRenderingNoSegmentation(self):
     collation = Collation()
     collation.add_plain_witness("A",
                                 "This very quick very quick brown wombat")
     collation.add_plain_witness("B", "That very quick brown koala")
     collation.add_plain_witness("C", "That very quick brown kangaroo")
     expected_output = {
         "table": [[[{
             "_sigil": "A",
             "_token_array_position": 0,
             "n": "This",
             "t": "This "
         }],
                    [{
                        "_sigil": "A",
                        "_token_array_position": 1,
                        "n": "very",
                        "t": "very "
                    }],
                    [{
                        "_sigil": "A",
                        "_token_array_position": 2,
                        "n": "quick",
                        "t": "quick "
                    }],
                    [{
                        "_sigil": "A",
                        "_token_array_position": 3,
                        "n": "very",
                        "t": "very "
                    }],
                    [{
                        "_sigil": "A",
                        "_token_array_position": 4,
                        "n": "quick",
                        "t": "quick "
                    }],
                    [{
                        "_sigil": "A",
                        "_token_array_position": 5,
                        "n": "brown",
                        "t": "brown "
                    }],
                    [{
                        "_sigil": "A",
                        "_token_array_position": 6,
                        "n": "wombat",
                        "t": "wombat"
                    }]],
                   [[{
                       "_sigil": "B",
                       "_token_array_position": 8,
                       "n": "That",
                       "t": "That "
                   }], None, None,
                    [{
                        "_sigil": "B",
                        "_token_array_position": 9,
                        "n": "very",
                        "t": "very "
                    }],
                    [{
                        "_sigil": "B",
                        "_token_array_position": 10,
                        "n": "quick",
                        "t": "quick "
                    }],
                    [{
                        "_sigil": "B",
                        "_token_array_position": 11,
                        "n": "brown",
                        "t": "brown "
                    }],
                    [{
                        "_sigil": "B",
                        "_token_array_position": 12,
                        "n": "koala",
                        "t": "koala"
                    }]],
                   [[{
                       "_sigil": "C",
                       "_token_array_position": 14,
                       "n": "That",
                       "t": "That "
                   }], None, None,
                    [{
                        "_sigil": "C",
                        "_token_array_position": 15,
                        "n": "very",
                        "t": "very "
                    }],
                    [{
                        "_sigil": "C",
                        "_token_array_position": 16,
                        "n": "quick",
                        "t": "quick "
                    }],
                    [{
                        "_sigil": "C",
                        "_token_array_position": 17,
                        "n": "brown",
                        "t": "brown "
                    }],
                    [{
                        "_sigil": "C",
                        "_token_array_position": 18,
                        "n": "kangaroo",
                        "t": "kangaroo"
                    }]]],
         "witnesses": ["A", "B", "C"]
     }
     json_out = collate(collation, output="json", segmentation=False)
     self.assertEqual(expected_output, json.loads(json_out))
Example #8
0
 def testJSONAlignmentTableRendering(self):
     collation = Collation()
     collation.add_plain_witness("A",
                                 "This very quick very quick brown wombat")
     collation.add_plain_witness("B", "That very quick brown koala")
     collation.add_plain_witness("C", "That very quick brown kangaroo")
     expected_output = {
         "table": [[[{
             "n": "This",
             "t": "This "
         }, {
             "n": "very",
             "t": "very "
         }, {
             "n": "quick",
             "t": "quick "
         }],
                    [{
                        "n": "very",
                        "t": "very "
                    }, {
                        "n": "quick",
                        "t": "quick "
                    }, {
                        "n": "brown",
                        "t": "brown "
                    }], [{
                        "n": "wombat",
                        "t": "wombat"
                    }]],
                   [[{
                       "n": "That",
                       "t": "That "
                   }],
                    [{
                        "n": "very",
                        "t": "very "
                    }, {
                        "n": "quick",
                        "t": "quick "
                    }, {
                        "n": "brown",
                        "t": "brown "
                    }], [{
                        "n": "koala",
                        "t": "koala"
                    }]],
                   [[{
                       "n": "That",
                       "t": "That "
                   }],
                    [{
                        "n": "very",
                        "t": "very "
                    }, {
                        "n": "quick",
                        "t": "quick "
                    }, {
                        "n": "brown",
                        "t": "brown "
                    }], [{
                        "n": "kangaroo",
                        "t": "kangaroo"
                    }]]],
         "witnesses": ["A", "B", "C"]
     }
     json_out = collate(collation, output="json")
     self.assertEquals(expected_output, json.loads(json_out))