Beispiel #1
0
        public void Constructor_FromVertices()
        {
            // Act
            var curve = new FillCurve <FillSegment>(
                CreateSimpleVector2dArray());

            // Assert
            Assert.AreEqual(2, curve.Elements.Count);
        }
Beispiel #2
0
        public void Constructor_FromPoints_ExceptionOnAddBeforeBegin()
        {
            // Arrange
            var curve = new FillCurve <FillSegment>();

            // Act & Assert
            Assert.ThrowsException <MethodAccessException>(() =>
            {
                curve.AddToCurve(new Vector2d(1, 0));
            });
        }
Beispiel #3
0
        public void Constructor_FromPolyLine()
        {
            // Arrange
            var polyline = new PolyLine2d(CreateSimpleVector2dArray());

            // Act
            var curve = new FillCurve <FillSegment>(polyline);

            // Assert
            Assert.AreEqual(2, curve.Elements.Count);
        }
Beispiel #4
0
        private static FillCurve <FillSegment> CreateSimpleFillCurve()
        {
            var vertices = new Vector2d[]
            {
                new Vector2d(0, 0),
                new Vector2d(1, 0),
                new Vector2d(3, 0),
                new Vector2d(4, 0),
            };
            var curve = new FillCurve <FillSegment>(vertices);

            return(curve);
        }
Beispiel #5
0
        public void CloseCurve()
        {
            // Arrange
            var curve = new FillCurve <FillSegment>(
                CreateSimpleVector2dArray());

            // Act
            var loop = curve.CloseCurve();

            // Assert
            Assert.AreEqual(3, loop.Elements.Count);
            Assert.AreEqual(curve.Entry, loop.Entry);
        }
Beispiel #6
0
        public void Constructor_FromPoints()
        {
            // Arrange
            var curve = new FillCurve <FillSegment>();

            // Act
            curve.BeginCurve(new Vector2d(0, 0));
            curve.AddToCurve(new Vector3d(1, 0, 0));
            curve.AddToCurve(new Vector2d(1, 2), new FillSegment(true));

            // Assert
            Assert.AreEqual(2, curve.Elements.Count);
            Assert.IsTrue(curve.Elements[1].Edge.IsConnector);
        }
Beispiel #7
0
        public void Reversed()
        {
            // Arrange
            var curve = new FillCurve <FillSegment>(
                CreateSimpleVector2dArray());

            // Act
            var reversed = curve.Reversed();

            // Assert
            Assert.AreEqual(2, curve.Elements.Count);
            Assert.AreEqual(curve.Entry, reversed.Exit);
            Assert.AreEqual(curve.Exit, reversed.Entry);
        }
Beispiel #8
0
        public void Extend_ExceptionOnDiscontinuity()
        {
            // Arrange
            var curve1 = new FillCurve <FillSegment>(new Vector2d[]
            {
                new Vector2d(0, 0),
                new Vector2d(1, 0),
            });
            var curve2 = new FillCurve <FillSegment>(new Vector2d[]
            {
                new Vector2d(2, 0),
                new Vector2d(3, 0),
            });

            // Act & Assert
            Assert.ThrowsException <ArgumentException>(() =>
            {
                curve1.Extend(curve2.Elements);
            });
        }
Beispiel #9
0
        public void CloneBare()
        {
            // Arrange
            var settings = new PrintProfileFFF();
            var curve    = new FillCurve <FillSegment>()
            {
                FillType       = settings.FillTypeFactory.OuterPerimeter(),
                PerimeterOrder = 100,
                IsHoleShell    = true,
                FillThickness  = 3
            };

            // Act
            var clone = curve.CloneBare();

            // Assert
            Assert.AreEqual(100, clone.PerimeterOrder);
            Assert.AreEqual(3, clone.FillThickness);
            Assert.IsTrue(clone.IsHoleShell);
            Assert.IsInstanceOfType(clone.FillType, typeof(OuterPerimeterFillType));
        }
Beispiel #10
0
        public void Extend_Success()
        {
            // Arrange
            var curve1 = new FillCurve <FillSegment>(new Vector2d[]
            {
                new Vector2d(0, 0),
                new Vector2d(1, 0),
            });
            var curve2 = new FillCurve <FillSegment>(new Vector2d[]
            {
                new Vector2d(1, 0),
                new Vector2d(2, 1),
                new Vector2d(3, 3),
            });

            // Act
            curve1.Extend(curve2.Elements);

            // Assert
            Assert.AreEqual(3, curve1.Elements.Count);
            Assert.AreEqual(new Vector2d(0, 0), curve1.Entry);
            Assert.AreEqual(curve2.Exit, curve1.Exit);
        }