public void NonCenteredUnitRectangle_AreaIsOne() { Curve testRect = CurvesFactory.RectangleCWH(new Point3d(5, 5, 0), 1, 1); var result = Logic.Utils.DeconstructRectangle(testRect); Assert.AreEqual(1, result.Area); }
public void CenteredUnitRectangle_HeightIsOne() { Curve testRect = CurvesFactory.RectangleCWH(Point3d.Origin, 1, 1); var result = Logic.Utils.DeconstructRectangle(testRect); Assert.AreEqual(1, result.Height); }
public void UnitX_IsZero() { Curve testCurve = CurvesFactory.CenteredXCurve(); double slope = Logic.Utils.GetSlope(testCurve); Assert.AreEqual(0, slope); }
public void CurveSW_IsOne() { Curve testCurve = CurvesFactory.LineSDL(Point2d.Origin, new Vector2d(-1, -1), 1); double slope = Logic.Utils.GetSlope(testCurve); Assert.AreEqual(1, slope); }
public void UnitY_IsUndefined() { Curve testCurve = CurvesFactory.CenteredYCurve(); double slope = Logic.Utils.GetSlope(testCurve); Assert.AreEqual(-1, slope); }
public void OverlappingSquareAndSquareRegion_ReturnsTrue() { Curve testCurve = CurvesFactory.RectangleCWH(Point3d.Origin, 1, 1); Brep testRegion = Brep.CreatePlanarBreps(testCurve, 0.1)[0]; bool result = Logic.Relationships.Confirm.CurveRegionIntersection(testCurve, testRegion); Assert.IsTrue(result); }
public void PointOutsideUnitSquare_ReturnsFalse() { Brep testRegion = Brep.CreatePlanarBreps(CurvesFactory.RectangleCWH(Point3d.Origin, 1, 1), 0.1)[0]; Point3d testPoint = new Point3d(5, 5, 0); bool result = Logic.Relationships.Confirm.PointInRegion(testRegion, testPoint); Assert.IsFalse(result); }
public void CenteredXCenteredY_ReturnsTrue() { Curve curveX = CurvesFactory.CenteredXCurve(); Curve curveY = CurvesFactory.CenteredYCurve(); bool result = Logic.Relationships.Confirm.CurvesIntersect(curveX, curveY, true); Assert.IsTrue(result); }
public void UnitCircle_TransverseCurve_CorrectLength() { Curve unitCircle = new Circle(Point3d.Origin, 0.5).ToNurbsCurve(); Curve transverseCurve = CurvesFactory.CenteredXCurve(2); Curve resultCurve = Logic.Transformations.Curves.TrimWithClosedCurve(unitCircle, transverseCurve); Assert.AreEqual(1, resultCurve.GetLength()); }
//[TestMethod] public void DisjointSquareAndSquareRegion_ReturnsFalse() { Curve testCurve = CurvesFactory.RectangleCWH(Point3d.Origin, 1, 1); Curve regionCurve = CurvesFactory.RectangleCWH(new Point3d(5, 5, 0), 1, 1); Brep testRegion = Brep.CreatePlanarBreps(regionCurve, 0.1)[0]; bool result = Logic.Relationships.Confirm.CurveRegionIntersection(testCurve, testRegion); Assert.IsFalse(result); }
public void AdjacentSquareAndSquareRegion_ReturnsTrue() { Curve testCurve = CurvesFactory.RectangleCWH(new Point3d(1, 0, 0), 2, 2); Curve regionCurve = CurvesFactory.RectangleCWH(new Point3d(-1, 0, 0), 2, 2); Brep testRegion = Brep.CreatePlanarBreps(regionCurve, 0.1)[0]; bool result = Logic.Relationships.Confirm.CurveRegionIntersection(testCurve, testRegion); Assert.IsTrue(result); }
//[TestMethod] public void VSegments_ReturnsTrue() { List <Curve> TestEnv = new List <Curve>(); TestEnv.Add(CurvesFactory.LineSDL(new Point2d(0, 0), new Vector2d(1, 1), 1)); TestEnv.Add(CurvesFactory.LineSDL(new Point2d(0, 0), new Vector2d(-1, 1), 1)); bool result = Logic.Relationships.Confirm.SegmentsFormOneCurve(TestEnv); Assert.IsTrue(result); }
public void TwoColinearUnitY_ReturnsTrue() { List <Curve> TestEnv = new List <Curve>(); TestEnv.Add(CurvesFactory.LineSDL(new Point2d(0, 0), new Vector2d(0, 1), 1)); TestEnv.Add(CurvesFactory.LineSDL(new Point2d(0, 0), new Vector2d(0, -1), 1)); bool result = Logic.Relationships.Confirm.AllAxisColinear(TestEnv); Assert.IsTrue(result); }
public void TwoLinearCurves_ReturnsLongest() { var testList = new List <Curve>(); testList.Add(CurvesFactory.UnitXCurve(5)); testList.Add(CurvesFactory.UnitXCurve(3)); var resultGeometry = Logic.Utils.GetLongestCurve(testList); Assert.AreEqual(5, resultGeometry.GetLength()); }
public void TwoDisjointCurves_ReturnsTwoSegments() { List <Curve> TestEnv = new List <Curve>(); TestEnv.Add(CurvesFactory.LineSDL(new Point2d(1, 0), new Vector2d(0, 1), 1)); TestEnv.Add(CurvesFactory.LineSDL(new Point2d(-1, 0), new Vector2d(0, 1), 1)); List <Curve> resultGeometry = Logic.Transformations.Curves.ShatterToSegments(TestEnv); Assert.AreEqual(resultGeometry.Count, 2); }
public void TwoIntersectingCurves_ReturnsFourSegments() { List <Curve> TestEnv = new List <Curve>(); TestEnv.Add(CurvesFactory.CenteredXCurve()); TestEnv.Add(CurvesFactory.CenteredYCurve()); List <Curve> resultGeometry = Logic.Transformations.Curves.ShatterToSegments(TestEnv); Assert.AreEqual(resultGeometry.Count, 4); }
public void UnitCircle_TrimmedCurve_CurveUnchanged() { Curve unitCircle = new Circle(Point3d.Origin, 0.5).ToNurbsCurve(); Curve transverseCurve = CurvesFactory.CenteredXCurve(1); double originalLength = transverseCurve.GetLength(); Curve resultCurve = Logic.Transformations.Curves.TrimWithClosedCurve(unitCircle, transverseCurve); Assert.AreEqual(originalLength, resultCurve.GetLength()); }
public void CircleWithChord_ReturnsThreeSegments() { List <Curve> TestEnv = new List <Curve>(); TestEnv.Add(new Circle(Point3d.Origin, 0.5).ToNurbsCurve()); TestEnv.Add(CurvesFactory.CenteredYCurve()); List <Curve> resultGeometry = Logic.Transformations.Curves.ShatterToSegments(TestEnv); Assert.AreEqual(resultGeometry.Count, 3); }
public void UnitSquare_ContainedCurve_ReturnsOne() { Brep testSquare = Brep.CreatePlanarBreps(CurvesFactory.RectangleCWH(Point3d.Origin, 5, 5), 0.1)[0]; List <Curve> testCurves = new List <Curve>(); testCurves.Add(CurvesFactory.CenteredYCurve()); List <Brep> resultGeometry = Logic.Transformations.Breps.SplitByCurves(testSquare, testCurves); Assert.AreEqual(1, resultGeometry.Count); }
public void UnitSquare_DisjointCurve_ReturnsOne() { Brep testSquare = Brep.CreatePlanarBreps(CurvesFactory.RectangleCWH(Point3d.Origin, 1, 1), 0.1)[0]; List <Curve> testCurves = new List <Curve>(); testCurves.Add(CurvesFactory.LineSDL(new Point2d(10, 10), new Vector2d(1, 1), 1)); List <Brep> resultGeometry = Logic.Transformations.Breps.SplitByCurves(testSquare, testCurves); Assert.AreEqual(1, resultGeometry.Count); }
public void NullInput_IsValid() { int quota = 0; string access = "1000"; bool priv = false; Curve boundary = CurvesFactory.RectangleCWH(Point3d.Origin, 1, 1); List <Curve> geometry = new List <Curve>(); ProgramPackage TestProgramItem = new ProgramPackage(quota, access, priv, boundary, geometry); Assert.IsNotNull(TestProgramItem); }
public void UnitXCurve_UnitYCurve_InvalidInput() { Curve unitX = CurvesFactory.CenteredXCurve(2); Curve unitY = CurvesFactory.CenteredYCurve(2); Curve resultCurve = Logic.Transformations.Curves.TrimWithClosedCurve(unitX, unitY); double oldStartY = unitY.PointAtStart.Y; double newStartY = resultCurve.PointAtStart.Y; Assert.AreEqual(oldStartY, newStartY); }
public void CircleAroundSmallCrosshair_ReturnsFiveSegments() { List <Curve> TestEnv = new List <Curve>(); TestEnv.Add(new Circle(Point3d.Origin, 0.5).ToNurbsCurve()); TestEnv.Add(CurvesFactory.CenteredYCurve(0.1)); TestEnv.Add(CurvesFactory.CenteredXCurve(0.1)); List <Curve> resultGeometry = Logic.Transformations.Curves.ShatterToSegments(TestEnv); Assert.AreEqual(resultGeometry.Count, 5); }
public void ThreeDisjointNECurves_ReturnsFalse() { List <Curve> TestEnv = new List <Curve>(); TestEnv.Add(CurvesFactory.LineSDL(new Point2d(0, 0), new Vector2d(1, 1), 1)); TestEnv.Add(CurvesFactory.LineSDL(new Point2d(2, 0), new Vector2d(1, 1), 1)); TestEnv.Add(CurvesFactory.LineSDL(new Point2d(4, 0), new Vector2d(1, 1), 1)); bool result = Logic.Relationships.Confirm.AllAxisColinear(TestEnv); Assert.IsFalse(result); }
public void NotImplemented() { Curve TestCurve = CurvesFactory.UnitXCurve().ToNurbsCurve(); //Console.WriteLine("Generated curve."); //Console.WriteLine(TestCurve.GetLength()); Curve[] offset = TestCurve.Offset(Plane.WorldXY, 1, 0.1, CurveOffsetCornerStyle.None); Console.WriteLine("Curve.Offset is not currently implemented for Rhino Compute. It will only return null."); Assert.IsNull(offset); //Assert.IsNotNull(resultGeometry); }
public void VerticalCurve_XAxis_Oriented() { Curve testCurve = CurvesFactory.UnitXCurve(10); Vector3d direction = Vector3d.XAxis; Curve resultCurve = Logic.Transformations.Curves.RebuildPerpendicularTo(testCurve, direction); Vector3d orientation = new Vector3d(resultCurve.PointAtEnd - resultCurve.PointAtStart); double difference = Vector3d.VectorAngle(orientation, direction); bool result = (1 - (Math.Abs(difference) % 90) < 0.1) ? true : false; Assert.IsTrue(result); }
public void UnitX_XAxis_LengthUnchanged() { Curve testCurve = CurvesFactory.UnitXCurve(10); Vector3d direction = Vector3d.XAxis; double originalLength = testCurve.GetLength(); Curve resultCurve = Logic.Transformations.Curves.RebuildPerpendicularTo(testCurve, direction); double resultLength = resultCurve.GetLength(); bool result = (resultLength - originalLength < 0.1) ? true : false; Assert.IsTrue(result); }
public void MultipleVariedCurves_ReturnsLongest() { var testList = new List <Curve>(); for (int i = 0; i < 15; i++) { testList.Add(CurvesFactory.RectangleCWH(Point3d.Origin, i + 1, i + 1)); testList.Add(CurvesFactory.UnitXCurve(i + 1)); testList.Add(new Arc(Plane.WorldXY, Point3d.Origin, i + 1, Math.PI / 2).ToNurbsCurve()); } var resultGeometry = Logic.Utils.GetLongestCurve(testList); Assert.AreEqual(15 * 4, resultGeometry.GetLength()); }
public void UnitX_TenUnitY_ReturnsTen() { Curve testBaseCurve = CurvesFactory.LineSDL(Point2d.Origin, new Vector2d(1, 0), 20); List <Curve> testIntersectionCurves = new List <Curve>(); for (int i = 0; i < 10; i++) { testIntersectionCurves.Add(CurvesFactory.LineSDL(new Point2d(i, -1), new Vector2d(0, 1), 5)); } //Console.WriteLine("TestEnv done."); List <Point3d> resultGeometry = Logic.Utils.GetAllCurveIntersections(testBaseCurve, testIntersectionCurves, true); Assert.AreEqual(10, resultGeometry.Count); }
public void UnitXTenUnitY_ReturnsTen() { Curve testBaseCurve = CurvesFactory.LineSDL(new Point2d(-1, 0), new Vector2d(1, 0), 20); List <Curve> testIntersectionCurves = new List <Curve>(); for (int i = 0; i < 10; i++) { testIntersectionCurves.Add(new LineCurve(new Point2d(i, -2), new Point2d(i, 2))); //testIntersectionCurves.Add(CurvesFactory.LineSDL(new Point2d(i*2, -1), new Vector2d(0, 1), 5)); } testIntersectionCurves.Add(testBaseCurve); List <Point3d> resultGeometry = Logic.Utils.GetAllCurveIntersections(testIntersectionCurves, true); Assert.AreEqual(10, resultGeometry.Count); }