def test_skip_empty_paths(self):
        """ Tests that empty paths are skipped
        """

        border = Border([[(30, 15), (20, 20), (25, 40)], [], [(90, 30), (30, 90)], []], 10)

        self.assertEqual(border.width(), 90)
        self.assertEqual(border.height(), 95)
        self.assertEqual(border.left(), 10)
        self.assertEqual(border.right(), 100)
        self.assertEqual(border.top(), 100)
        self.assertEqual(border.bottom(), 5)
    def test_skip_initial_path(self):
        """ Tests that an empty paths as the first path is skipped
        """

        border = Border([[], [(30, 15), (20, 20), (25, 40)], [(90, 30), (30, 90)]], 10)

        self.assertEqual(border.width(), 90)
        self.assertEqual(border.height(), 95)
        self.assertEqual(border.left(), 10)
        self.assertEqual(border.right(), 100)
        self.assertEqual(border.top(), 100)
        self.assertEqual(border.bottom(), 5)
    def test_build_border_with_multiple_paths(self): # pylint: disable=invalid-name
        """ Tests that Border instance is correctly build when multiple paths are present
        """

        border = Border([[(30, 15), (20, 20), (25, 40)], [(90, 30), (30, 90)]], 10)

        self.assertEqual(border.width(), 90)
        self.assertEqual(border.height(), 95)
        self.assertEqual(border.left(), 10)
        self.assertEqual(border.right(), 100)
        self.assertEqual(border.top(), 100)
        self.assertEqual(border.bottom(), 5)
    def test_build_border_with_one_path(self):
        """ Tests that Border instance is correctly build when one path is present
        """

        border = Border([[(30, 15), (20, 20), (25, 40)]], 10)

        self.assertEqual(border.width(), 30)
        self.assertEqual(border.height(), 45)
        self.assertEqual(border.left(), 10)
        self.assertEqual(border.right(), 40)
        self.assertEqual(border.top(), 50)
        self.assertEqual(border.bottom(), 5)
    def test_build_border_with_empty_path(self): # pylint: disable=invalid-name
        """ Tests that Border instance is correctly built when no path is present
        """

        border = Border([[]], 10)

        self.assertEqual(border.width(), 0)
        self.assertEqual(border.height(), 0)
        self.assertEqual(border.left(), 0)
        self.assertEqual(border.right(), 0)
        self.assertEqual(border.top(), 0)
        self.assertEqual(border.bottom(), 0)
    def test_build_border_with_one_path_one_point(self): # pylint: disable=invalid-name
        """ Tests that Border instance is correctly built when one path with one point is present
        """

        border = Border([[(10, 20)]], 10)

        self.assertEqual(border.width(), 20)
        self.assertEqual(border.height(), 20)
        self.assertEqual(border.left(), 0)
        self.assertEqual(border.right(), 20)
        self.assertEqual(border.top(), 30)
        self.assertEqual(border.bottom(), 10)
    def test_build_border_with_no_path(self):
        """ Tests that Border instance is correctly built when no path is present
        """

        border = Border([], 10)

        self.assertEqual(border.width(), 0)
        self.assertEqual(border.height(), 0)
        self.assertEqual(border.left(), 0)
        self.assertEqual(border.right(), 0)
        self.assertEqual(border.top(), 0)
        self.assertEqual(border.bottom(), 0)