示例#1
0
        public void StructureEquals()
        {
            var division = SubdivisionFromLines.CreateTriforce(false);

            division.Validate();

            // check overall structural equality
            var clone = (Subdivision)division.Clone();

            clone.Validate();
            Assert.IsTrue(division.StructureEquals(clone));

            // check individual edges
            Assert.AreEqual(division.Edges.Count, clone.Edges.Count);
            for (int i = 0; i < division.Edges.Count; i++)
            {
                var edge      = division.Edges.GetByIndex(i);
                var cloneEdge = clone.Edges.GetByIndex(i);

                Assert.AreNotEqual(edge, cloneEdge);
                Assert.IsTrue(edge.StructureEquals(cloneEdge));
            }

            // check individual faces
            var faces      = division.Faces.Values;
            var cloneFaces = clone.Faces.Values;

            Assert.AreEqual(faces.Count, cloneFaces.Count);

            for (int i = 0; i < faces.Count; i++)
            {
                Assert.AreNotEqual(faces[i], cloneFaces[i]);
                Assert.IsTrue(faces[i].StructureEquals(cloneFaces[i]));
            }
        }
        public void FromLines()
        {
            Subdivision division = SubdivisionFromLines.CreateSquareStar(false);

            CheckSearch(division);

            division = SubdivisionFromLines.CreateTriforce(false);
            CheckSearch(division);
        }