示例#1
0
        public void CircleInSquare_ReturnsTwo()
        {
            List <Brep> TestEnv = BrepFactory.CircleInSquare();

            List <Brep> resultGeometry = Logic.Transformations.Breps.SplitTwoBreps(TestEnv[1], TestEnv[0]);

            Assert.AreEqual(resultGeometry.Count, 2);
        }
示例#2
0
        public void TwoDisjointSquares_ReturnsFalse()
        {
            List <Brep> TestEnv = BrepFactory.TwoDisjointSquares();

            bool result = Logic.Relationships.Confirm.RegionsIntersect(TestEnv[0], TestEnv[1]);

            Assert.IsFalse(result);
        }
示例#3
0
        public void SquareWithInscribedCircle_ReturnsTrue()
        {
            List <Brep> TestEnv = BrepFactory.SqaureWithInscribedCircle();

            bool result = Logic.Relationships.Confirm.RegionsIntersect(TestEnv[0], TestEnv[1]);

            Assert.IsTrue(result);
        }
示例#4
0
        public void CircleWithTransverseRectangle_ReturnsTrue()
        {
            List <Brep> TestEnv = BrepFactory.CircleWithTransverseRectangle();

            bool result = Logic.Relationships.Confirm.RegionsIntersect(TestEnv[0], TestEnv[1]);

            Assert.IsTrue(result);
        }
示例#5
0
        public void UnitCircle_ReturnsQuad()
        {
            var testBrep = BrepFactory.CircleInSquare()[0];

            var resultGeometry = Logic.Utils.GetBoundingBoxCurve(testBrep);

            Assert.AreEqual(4, resultGeometry.SpanCount);
        }
示例#6
0
        public void UnitCircle_ReturnsValue()
        {
            var testBrep = BrepFactory.CircleInSquare()[0];

            var resultGeometry = Logic.Utils.GetBoundingBoxCurve(testBrep);

            Assert.IsNotNull(resultGeometry);
        }
示例#7
0
        public void TwoDisjointSquares_ReturnsNone()
        {
            List <Brep> TestEnv = BrepFactory.TwoDisjointSquares();

            Console.WriteLine(TestEnv.Count);

            List <Brep> resultGeometry = Logic.Transformations.Breps.SplitTwoBreps(TestEnv[0], TestEnv[1]);

            Assert.AreEqual(resultGeometry.Count, 0);
        }
示例#8
0
        public void CircleWithTransverseRectangle_SelectsTwo()
        {
            List <Brep> TestEnv       = BrepFactory.CircleWithTransverseRectangle();
            Brep        testCircle    = TestEnv[0];
            Brep        testRectangle = TestEnv[1];

            List <Brep> allRegions     = Breps.SplitTwoBreps(testCircle, testRectangle);
            List <Brep> resultGeometry = Logic.Relationships.Select.FloorFromCore(allRegions, testRectangle);

            Assert.AreEqual(resultGeometry.Count, 2);
        }
示例#9
0
        public void CircleInSquare_SelectsOne()
        {
            List <Brep> TestEnv    = BrepFactory.CircleInSquare();
            Brep        testCircle = TestEnv[0];
            Brep        testSquare = TestEnv[1];

            List <Brep> allRegions     = Breps.SplitTwoBreps(testSquare, testCircle);
            List <Brep> resultGeometry = Logic.Relationships.Select.FloorFromCore(allRegions, testCircle);

            Assert.AreEqual(resultGeometry.Count, 1);
        }
示例#10
0
        public void TwoIntersectingCircles_SelectsOne()
        {
            List <Brep> TestEnv       = BrepFactory.TwoIntersectingCircles();
            Brep        testCoreLeft  = TestEnv[0];
            Brep        testCoreRight = TestEnv[1];

            List <Brep> resultGeometryA = Logic.Relationships.Select.FloorFromCore(TestEnv, testCoreLeft);

            Assert.AreEqual(resultGeometryA.Count, 1);

            List <Brep> resultGeometryB = Logic.Relationships.Select.FloorFromCore(TestEnv, testCoreRight);

            Assert.AreEqual(resultGeometryB.Count, 1);
        }
示例#11
0
        public void SquareWithCircumscribedCircle_SelectsFour()
        {
            List <Brep> TestEnv    = BrepFactory.SquareWithCircumscribedCircle();
            Brep        testCircle = TestEnv[1];
            Brep        testSquare = TestEnv[0];

            List <Brep> allRegions     = Breps.SplitTwoBreps(testCircle, testSquare);
            List <Brep> resultGeometry = Logic.Relationships.Select.FloorFromCore(allRegions, testSquare);

            Console.WriteLine(allRegions.Count);
            Console.WriteLine(testSquare.GetArea());
            Console.WriteLine(testCircle.GetArea());

            Assert.AreEqual(resultGeometry.Count, 4);
        }
示例#12
0
        public void SquareInCircle_SelectsOne()
        {
            List <Brep> TestEnv = BrepFactory.SquareInCircle();

            List <Brep> testSquare = new List <Brep>();

            testSquare.Add(TestEnv[0]);

            List <Brep> testCircle = new List <Brep>();

            testCircle.Add(TestEnv[1]);

            List <Brep> resultGeometry = Logic.Relationships.Select.NotExemptRegions(testCircle, testSquare);

            Assert.AreEqual(resultGeometry.Count, 1);
        }
示例#13
0
        public void TwoIntersectingCircles_NotCore()
        {
            List <Brep> TestEnv         = BrepFactory.TwoIntersectingCircles();
            Brep        testCircleLeft  = TestEnv[0];
            Brep        testCircleRight = TestEnv[1];

            List <Brep> resultGeometry = Logic.Relationships.Select.FloorFromCore(TestEnv, testCircleLeft);

            Point3d selectedZoneCenter = Logic.Utils.GetRegionCenter(resultGeometry[0]);
            Point3d leftCircleCenter   = Logic.Utils.GetRegionCenter(testCircleLeft);
            Point3d rightCircleCenter  = Logic.Utils.GetRegionCenter(testCircleRight);

            bool InitialIsCloser = (selectedZoneCenter.DistanceTo(leftCircleCenter) > selectedZoneCenter.DistanceTo(rightCircleCenter)) ? true : false;

            Assert.IsTrue(InitialIsCloser);
        }
示例#14
0
        public void SquareInCircle_SelectsCircle()
        {
            List <Brep> TestEnv = BrepFactory.SquareInCircle();

            List <Brep> testSquare = new List <Brep>();

            testSquare.Add(TestEnv[0]);

            List <Brep> testCircle = new List <Brep>();

            testCircle.Add(TestEnv[1]);

            List <Brep> resultGeometry = Logic.Relationships.Select.NotExemptRegions(testCircle, testSquare);

            bool result = (resultGeometry[0].GetArea() > TestEnv[0].GetArea()) ? true : false;

            Assert.IsTrue(result);
        }
示例#15
0
        public void CircleInSquare_NotCore()
        {
            List <Brep> TestEnv    = BrepFactory.CircleInSquare();
            Brep        testCircle = TestEnv[0];
            Brep        testSquare = TestEnv[1];

            List <Brep> allRegions     = Breps.SplitTwoBreps(testSquare, testCircle);
            List <Brep> resultGeometry = Logic.Relationships.Select.FloorFromCore(allRegions, testCircle);

            double resultArea  = resultGeometry[0].GetArea();
            double profileArea = testSquare.GetArea();
            double coreArea    = testCircle.GetArea();

            double difference = (profileArea - coreArea) - resultArea;
            bool   tolerated  = (difference < 0.01) ? true : false;

            Assert.IsTrue(tolerated);
        }
示例#16
0
        public void SquareInCircle_RemovesAreaFromCircle()
        {
            List <Brep> TestEnv = BrepFactory.SquareInCircle();

            List <Brep> testSquare = new List <Brep>();

            testSquare.Add(TestEnv[0]);

            List <Brep> testCircle = new List <Brep>();

            testCircle.Add(TestEnv[1]);

            List <Brep> resultGeometry = Logic.Relationships.Select.NotExemptRegions(testCircle, testSquare);

            double calculated = TestEnv[1].GetArea() - TestEnv[0].GetArea();
            double actual     = resultGeometry[0].GetArea();

            bool result = (actual - calculated < 0.1) ? true : false;

            Assert.IsTrue(result);
        }
示例#17
0
        public void CircleWithTransverseRectangle_NotCore()
        {
            List <Brep> TestEnv       = BrepFactory.CircleWithTransverseRectangle();
            Brep        testCircle    = TestEnv[0];
            Brep        testRectangle = TestEnv[1];

            List <Brep> allRegions     = Breps.SplitTwoBreps(testCircle, testRectangle);
            List <Brep> resultGeometry = Logic.Relationships.Select.FloorFromCore(allRegions, testRectangle);

            Point3d coreCenter = Logic.Utils.GetRegionCenter(testRectangle);

            foreach (Brep region in resultGeometry)
            {
                Point3d regionCenter = Logic.Utils.GetRegionCenter(region);

                if (regionCenter.DistanceTo(coreCenter) < .05)
                {
                    Assert.Fail();
                }
            }
        }