Пример #1
0
        public void Stroke_DashTest()
        {
            StrokeStyle target = new StrokeStyle();

            //Default

            PDFDash expected = PDFDash.None;
            PDFDash actual   = target.Dash;

            Assert.AreEqual(expected, actual);

            // Set value

            expected    = new PDFDash(new int[] { 1, 2, 3 }, 7);
            target.Dash = expected;
            actual      = target.Dash;
            Assert.AreEqual(expected, actual);

            //Change Value

            expected    = new PDFDash(new int[] { 2, 3, 4 }, 10);
            target.Dash = expected;
            actual      = target.Dash;
            Assert.AreEqual(expected, actual);

            // Remove Value

            expected = PDFDash.None;
            target.RemoveDash();
            actual = target.Dash;
            Assert.AreEqual(expected, actual);
        }
Пример #2
0
        public void Equals_Test1()
        {
            int[]   pattern = new int[] { 1, 2 };
            int     len     = 3;
            PDFDash target  = new PDFDash(pattern, len);

            PDFNumber[] pattern2 = new PDFNumber[] { (PDFNumber)1.0, (PDFNumber)2.0 };
            PDFNumber   len2     = (PDFNumber)3.0;
            PDFDash     target2  = new PDFDash(pattern2, len2);

            bool actual;

            actual = target.Equals(target2);
            Assert.IsTrue(actual);

            pattern2 = new PDFNumber[] { (PDFNumber)1.0, (PDFNumber)2.0 };
            len2     = (PDFNumber)4.0; // changed phase
            target2  = new PDFDash(pattern2, len2);
            actual   = target.Equals(target2);
            Assert.IsFalse(actual);

            pattern2 = new PDFNumber[] { (PDFNumber)1.0, (PDFNumber)1.0 }; //changed number
            len2     = (PDFNumber)3.0;
            target2  = new PDFDash(pattern2, len2);
            actual   = target.Equals(target2);
            Assert.IsFalse(actual);

            pattern2 = new PDFNumber[] { (PDFNumber)1.0, (PDFNumber)2.0, (PDFNumber)3.0 }; // Added number
            len2     = (PDFNumber)3.0;
            target2  = new PDFDash(pattern2, len2);
            actual   = target.Equals(target2);
            Assert.IsFalse(actual);
        }
 public static bool TryParseDashes(string all, out PDFDash dash)
 {
     if (string.IsNullOrEmpty(all))
     {
         dash = null;
         return(false);
     }
     else if (all.IndexOf(" ") > 0)
     {
         var        each   = all.Split(' ');
         List <int> parsed = new List <int>(each.Length);
         foreach (var item in each)
         {
             if (ParseInteger(item, out int i))
             {
                 parsed.Add(i);
             }
         }
         dash = new PDFDash(parsed.ToArray(), 0);
         return(true);
     }
     else if (ParseInteger(all, out int i))
     {
         dash = new PDFDash(new int[] { i }, 0);
         return(true);
     }
     else
     {
         dash = null;
         return(false);
     }
 }
Пример #4
0
        public void Phase_Test()
        {
            int[]   pattern = new int[] { 1, 2 };
            int     len     = 3;
            PDFDash target  = new PDFDash(pattern, len);

            Assert.AreEqual(target.Phase, (PDFNumber)len);
        }
Пример #5
0
        public void PDFDashConstructor_Test2()
        {
            PDFDash target = new PDFDash(); //empty constructor - should result in [] 0 - solid line

            Assert.IsNotNull(target.Pattern);
            Assert.AreEqual(target.Pattern.Length, 0);
            Assert.AreEqual(target.Phase, (PDFNumber)0);
        }
Пример #6
0
        public void PDFDashConstructor_Test1()
        {
            int[]   pattern = new int[] { 1, 2 };
            int     len     = 3;
            PDFDash target  = new PDFDash(pattern, len);

            Assert.IsNotNull(target.Pattern);
            Assert.AreEqual(target.Pattern.Length, 2);
            Assert.AreEqual(target.Pattern[0], (PDFNumber)pattern[0]);
            Assert.AreEqual(target.Pattern[1], (PDFNumber)pattern[1]);
            Assert.AreEqual(target.Phase, (PDFNumber)len);
        }
Пример #7
0
        public void PDFDashConstructor_Test()
        {
            PDFNumber[] pattern = new PDFNumber[] { (PDFNumber)1.0, (PDFNumber)2.0 };
            PDFNumber   len     = (PDFNumber)3.0;
            PDFDash     target  = new PDFDash(pattern, len);

            Assert.IsNotNull(target.Pattern);
            Assert.AreEqual(target.Pattern.Length, 2);
            Assert.AreEqual(target.Pattern[0], pattern[0]);
            Assert.AreEqual(target.Pattern[1], pattern[1]);
            Assert.AreEqual(target.Phase, len);
        }
Пример #8
0
        public void Pattern_Test()
        {
            int[]   pattern = new int[] { 1, 2 };
            int     len     = 3;
            PDFDash target  = new PDFDash(pattern, len);

            Assert.AreEqual(target.Pattern.Length, pattern.Length);
            for (int i = 0; i < pattern.Length; i++)
            {
                Assert.AreEqual(target.Pattern[i], (PDFNumber)pattern[i]);
            }
        }
Пример #9
0
        public void ToString_Test()
        {
            int[]   pattern = new int[] { 1, 2 };
            int     len     = 3;
            PDFDash target  = new PDFDash(pattern, len);

            string expected = "[1 2] 3";
            string actual;

            actual = target.ToString();
            Assert.AreEqual(expected, actual);
        }
Пример #10
0
        public void Equals_Test()
        {
            int[]   pattern = new int[] { 1, 2 };
            int     len     = 3;
            PDFDash target  = new PDFDash(pattern, len);

            object obj      = target;
            bool   expected = true;
            bool   actual   = target.Equals(obj);

            Assert.AreEqual(expected, actual);
        }
Пример #11
0
        public void Dash_Test()
        {
            PDFDashPen target   = new PDFDashPen(dash);
            PDFDash    expected = dash;
            PDFDash    actual;

            actual = target.Dash;
            Assert.AreEqual(actual, expected);

            expected    = new PDFDash(new int[] { 1, 2, 5 }, 4);
            target.Dash = expected;

            Assert.AreEqual(expected, target.Dash);
        }
Пример #12
0
        public void Parse_Test()
        {
            string  dashpattern = "[1, 2] 3";
            PDFDash actual      = PDFDash.Parse(dashpattern);

            int[]   pattern  = new int[] { 1, 2 };
            int     len      = 3;
            PDFDash expected = new PDFDash(pattern, len);

            Assert.AreEqual(expected, actual);

            dashpattern = "[1 3]3";
            actual      = PDFDash.Parse(dashpattern);

            Assert.AreNotEqual(expected, actual);
        }
 protected bool DoConvertDashes(StyleBase style, object value, out PDFDash dash)
 {
     if (null == value)
     {
         dash = null;
         return(false);
     }
     else if (value is PDFDash d)
     {
         dash = d;
         return(true);
     }
     else if (TryParseDashes(value.ToString(), out dash))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Пример #14
0
        public void GetHashCode_Test()
        {
            int[]   pattern = new int[] { 1, 2 };
            int     len     = 3;
            PDFDash target  = new PDFDash(pattern, len);

            PDFNumber[] pattern2 = new PDFNumber[] { (PDFNumber)1.0, (PDFNumber)2.0 };
            PDFNumber   len2     = (PDFNumber)3.0;
            PDFDash     target2  = new PDFDash(pattern2, len2);

            int expected = target.GetHashCode();
            int actual   = target.GetHashCode();

            Assert.AreEqual(expected, actual);

            actual = target2.GetHashCode();
            Assert.AreEqual(expected, actual);

            pattern2 = new PDFNumber[] { (PDFNumber)1.0, (PDFNumber)1.0 }; //changed number
            len2     = (PDFNumber)3.0;
            target2  = new PDFDash(pattern2, len2);
            actual   = target2.GetHashCode();
            Assert.AreNotEqual(actual, expected);

            pattern2 = new PDFNumber[] { (PDFNumber)1.0, (PDFNumber)2.0 };
            len2     = (PDFNumber)4.0; //changed number
            target2  = new PDFDash(pattern2, len2);
            actual   = target2.GetHashCode();
            Assert.AreNotEqual(actual, expected);

            pattern2 = new PDFNumber[] { (PDFNumber)1.0, (PDFNumber)2.0, (PDFNumber)3.0 };
            len2     = (PDFNumber)3.0;
            target2  = new PDFDash(pattern2, len2);
            actual   = target2.GetHashCode();
            Assert.AreNotEqual(actual, expected);
        }
Пример #15
0
        public static bool TryGetLineStyleFromString(string current, out LineType converted, out PDFDash dash)
        {
            bool      result = false;
            CSSBorder parsed;

            dash      = null;
            converted = LineType.None;

            if (Enum.TryParse <CSSBorder>(current, true, out parsed))
            {
                switch (parsed)
                {
                case CSSBorder.Solid:
                case CSSBorder.Groove:
                case CSSBorder.Ridge:
                case CSSBorder.Inset:
                case CSSBorder.Outset:
                case CSSBorder.Double:
                    converted = LineType.Solid;
                    result    = true;
                    break;

                case CSSBorder.Dotted:
                    converted = LineType.Dash;
                    dash      = DottedDashPattern;
                    result    = true;
                    break;

                case CSSBorder.Dashed:
                    converted = LineType.Dash;
                    dash      = DashedDashPattern;
                    result    = true;
                    break;

                case CSSBorder.None:
                case CSSBorder.Hidden:
                    converted = LineType.None;
                    result    = true;
                    break;

                default:
                    converted = LineType.None;
                    result    = true;
                    break;
                }
            }
            return(result);
        }
Пример #16
0
        public void Stroke_CreatePenTest()
        {
            StrokeStyle target = new StrokeStyle();

            //No values

            PDFPen expected = null;
            PDFPen actual   = target.CreatePen();

            Assert.IsNull(actual);

            //Zero width

            target.Width = PDFUnit.Empty;
            actual       = target.CreatePen();
            Assert.IsNull(actual);

            //Solid pen

            expected     = new PDFSolidPen(PDFColors.Purple, 10);
            target.Color = PDFColors.Purple;
            target.Width = 10;
            actual       = target.CreatePen();
            AssertPensAreEqual(expected, actual);

            //Mitres

            target.Mitre        = 20;
            expected.MitreLimit = 20;
            actual = target.CreatePen();
            AssertPensAreEqual(expected, actual);

            //Line Caps

            target.LineCap    = LineCaps.Projecting;
            expected.LineCaps = LineCaps.Projecting;
            actual            = target.CreatePen();
            AssertPensAreEqual(expected, actual);

            //Line Join

            target.LineJoin   = LineJoin.Bevel;
            expected.LineJoin = LineJoin.Bevel;
            actual            = target.CreatePen();
            AssertPensAreEqual(expected, actual);

            // Opacity

            target.Opacity   = 0.4;
            expected.Opacity = 0.4;
            actual           = target.CreatePen();
            AssertPensAreEqual(expected, actual);

            // Dash

            PDFDash dash = new PDFDash(new int[] { 4, 5, 6 }, 10);

            expected = new PDFDashPen(dash);
            ((PDFSolidPen)expected).Color = PDFColors.Lime;
            expected.Width = 8;

            target       = new StrokeStyle();
            target.Dash  = dash;
            target.Width = 8;
            target.Color = PDFColors.Lime;
            actual       = target.CreatePen();
            AssertPensAreEqual(expected, actual);
        }