public void TestCut_Special4()
        {
            var polyS = new List<VertexBase>
                            {
                               new Vertex(4, 8),
                               new Vertex(9, 9),
                               new Vertex(10, 3),
                               new Vertex(5, 2),
                               new Vertex(4, 8)
                            };

            var polyC = new List<VertexBase>
                            {
                               new Vertex(4, 8),
                               new Vertex(7, 4),
                               new Vertex(1, 1),
                               new Vertex(4, 8)
                            };

            // 多边形同向情况
            var result = Cut(polyS, polyC);
            Assert.True(result.Count == 1
                        && result[0].Count == 4 + 1);

            // 多边形不同向
            polyS.Reverse();
            result = Cut(polyS, polyC);
            Assert.True(result.Count == 1
                        && result[0].Count == 4 + 1);
        }
        public void TestCut_Commom()
        {
            var polyS = new List<VertexBase>
                            {
                                new Vertex(2, 12),
                                new Vertex(10, 1),
                                new Vertex(12, 5),
                                new Vertex(13, 0),
                                new Vertex(6, -2),
                                new Vertex(2, 12)
                            };

            var polyC = new List<VertexBase>
                            {
                                new Vertex(4, 8),
                                new Vertex(12, 9),
                                new Vertex(14, 1),
                                new Vertex(2, 3),
                                new Vertex(4, 8)
                            };

            // 多边形同向情况
            var result = Cut(polyS, polyC);
            Assert.True(result.Count == 2
                        && result[0].Count == 5 + 1
                        && result[1].Count == 3 + 1);

            // 多边形不同向
            polyS.Reverse();
            result = Cut(polyS, polyC);
            Assert.True(result.Count == 2
                        && result[0].Count == 5 + 1
                        && result[1].Count == 3 + 1);
        }