コード例 #1
0
    def test_empty(self):
        remapped, column = sourcemap.normalize_mapping_line([])
        self.assertEqual([], remapped)
        self.assertEqual(0, column)
        remapped, column = sourcemap.normalize_mapping_line([()])
        # that nonsensical empty element should be dropped
        self.assertEqual([], remapped)
        self.assertEqual(0, column)

        # ensure that previous column also returned
        remapped, column = sourcemap.normalize_mapping_line([], 4)
        self.assertEqual([], remapped)
        self.assertEqual(4, column)
コード例 #2
0
 def test_single_elements_only(self):
     remapped, column = sourcemap.normalize_mapping_line([
         (0,),
         (4,),
     ])
     # leading elements are simply not going to be recorded
     self.assertEqual([], remapped)
     self.assertEqual(0, column)
コード例 #3
0
 def test_leading_single_elements(self):
     remapped, column = sourcemap.normalize_mapping_line([
         (0,),
         (4,),
         (4,),
         (0, 0, 0, 0),
     ])
     # they would be merged down to the actual real node, since there
     # was nothing to stop.
     self.assertEqual([(8, 0, 0, 0)], remapped)
     self.assertEqual(0, column)
コード例 #4
0
 def test_unmodified_offsetted(self):
     # simulate the removal of indentation
     remapped, column = sourcemap.normalize_mapping_line([
         (0, 0, 0, 2),
         (7, 0, 0, 7),
         (1, 0, 0, 1),
         (3, 0, 0, 3),
         (1, 0, 0, 1),
         (13, 0, 0, 13),
         (1, 0, 0, 1),
     ])
     self.assertEqual([(0, 0, 0, 2)], remapped)
     self.assertEqual(26, column)
コード例 #5
0
 def test_trailing_single_elements(self):
     remapped, column = sourcemap.normalize_mapping_line([
         (0,),
         (4,),
         (4,),
         (0, 0, 0, 0),
         (4,),
         (4,),
         (4,),
     ])
     # the first trailing node would be kept, remaining are discarded
     self.assertEqual([(8, 0, 0, 0), (4,)], remapped)
     self.assertEqual(0, column)
コード例 #6
0
 def test_unmodified(self):
     # this is a typical canonical example
     # console.log("hello world");
     remapped, column = sourcemap.normalize_mapping_line([
         (0, 0, 0, 0),
         (7, 0, 0, 7),
         (1, 0, 0, 1),
         (3, 0, 0, 3),
         (1, 0, 0, 1),
         (13, 0, 0, 13),
         (1, 0, 0, 1),
     ])
     self.assertEqual([(0, 0, 0, 0)], remapped)
     self.assertEqual(26, column)
コード例 #7
0
 def test_with_previous_source(self):
     remapped, column = sourcemap.normalize_mapping_line([
         (0, 0, 0, 0),
         (1, 0, 0, 7),
         (1, 0, 0, 1),
         (1, 0, 0, 3),
         (1, 0, 0, 1),
         (13, 0, 0, 13),
         (1, 0, 0, 1),
     ], 4)
     self.assertEqual([
         (0, 0, 0, 4),
         (1, 0, 0, 7),
         (2, 0, 0, 4),
     ], remapped)
     self.assertEqual(15, column)
コード例 #8
0
 def test_column_offset(self):
     remapped, column = sourcemap.normalize_mapping_line([
         (0, 0, 0, 0),
         (1, 0, 0, 7),
         (1, 0, 0, 1),
         (1, 0, 0, 3),
         (1, 0, 0, 1),
         (13, 0, 0, 13),
         (1, 0, 0, 1),
     ])
     self.assertEqual([
         (0, 0, 0, 0),
         (1, 0, 0, 7),
         (2, 0, 0, 4),
     ], remapped)
     self.assertEqual(15, column)
コード例 #9
0
 def test_file_changed(self):
     remapped, column = sourcemap.normalize_mapping_line([
         (0, 0, 0, 0),
         (7, 0, 0, 7),
         (1, 0, 0, 1),
         (1, 1, 0, 1),
         (1, 0, 0, 1),
         (1, -1, 0, 1),
         (1, 0, 0, 1),
     ])
     self.assertEqual([
         (0, 0, 0, 0),
         (9, 1, 0, 9),
         (2, -1, 0, 2),
     ], remapped)
     self.assertEqual(1, column)
コード例 #10
0
 def test_negative_offset(self):
     remapped, column = sourcemap.normalize_mapping_line([
         (0, 0, 0, 0),
         (1, 0, 0, 7),
         (1, 0, 0, 1),
         (3, 0, 0, 3),
         (1, 0, 0, 1),
         (13, 0, 0, 13),
         (1, 0, 0, 1),
         (1, 0, 0, -26),
         (1, 0, 0, 7),
         (1, 0, 0, 1),
         (3, 0, 0, 3),
     ])
     self.assertEqual([
         (0, 0, 0, 0),
         (1, 0, 0, 7),
         (20, 0, 0, -7),
         (1, 0, 0, 7),
     ], remapped)
コード例 #11
0
 def test_line_changed(self):
     remapped, column = sourcemap.normalize_mapping_line([
         (0, 0, 0, 0),
         (7, 0, 0, 7),
         (1, 0, 0, 1),
         (0, 0, 1, 0),
         (1, 0, 0, 1),
         (17, 0, 0, 17),
         (1, 0, 0, 1),
         (0, 0, 1, 0),
         (1, 0, 0, 1),
         (3, 0, 0, 3),
         (1, 0, 0, 1),
     ])
     self.assertEqual([
         (0, 0, 0, 0),
         (8, 0, 1, 8),
         (19, 0, 1, 19),
     ], remapped)
     self.assertEqual(5, column)
コード例 #12
0
 def test_five_segment(self):
     remapped, column = sourcemap.normalize_mapping_line([
         (0, 0, 0, 0),
         (7, 0, 0, 7, 0),
         (1, 0, 0, 1),
         (3, 0, 0, 3, 1),
         (1, 0, 0, 1),
         (13, 0, 0, 13),
         (1, 0, 0, 1),
         (3, 0, 0, 3, 1),
     ])
     self.assertEqual([
         (0, 0, 0, 0),
         (7, 0, 0, 7, 0),
         (1, 0, 0, 1),
         (3, 0, 0, 3, 1),
         (1, 0, 0, 1),
         (17, 0, 0, 17, 1),  # this finally got collapsed
     ], remapped)
     self.assertEqual(0, column)
コード例 #13
0
 def test_interspersed_single_elements(self):
     # example how this might look:
     # source
     #     XXXX(YYYZZZ)
     # sink (? marks ignored)
     #     ????????XXXX????(YYYZZZ)??????????
     remapped, column = sourcemap.normalize_mapping_line([
         (4,),
         (4,),
         # symbol runs for 4 characters
         (0, 0, 0, 0),
         (4,),
         # next two symbols run for a total of 8 characters, after
         # another 4 column gap.
         (4, 0, 0, 4),
         (4, 0, 0, 4),
         (4,),
     ])
     self.assertEqual([(8, 0, 0, 0), (4,), (4, 0, 0, 4), (8,)], remapped)
     self.assertEqual(4, column)