Ejemplo n.º 1
0
 public void PaperCircleWhenOldAreaLessNewAreaGetArgumentException()
 {
     var paperCircle = new CirclePaper(5, Color.Red);
     var result      = new TrianglePaper(new List <double> {
         14, 14, 14
     }, paperCircle);
 }
Ejemplo n.º 2
0
 /// <summary>
 /// parses the paper triangle into the xml element.
 /// </summary>
 /// <param name="streamWriter"></param>
 /// <param name="paperTriangle">Paper triangle</param>
 public static void ParseXmlPaperTriangle(StreamWriter streamWriter, TrianglePaper paperTriangle)
 {
     streamWriter.WriteLine($"\t<{nameof(TrianglePaper)}>");
     streamWriter.WriteLine($"\t\t<{nameof(TrianglePaper.Sides)}>{string.Join(' ', paperTriangle.Sides)}</{nameof(TrianglePaper.Sides)}>");
     streamWriter.WriteLine($"\t\t<{nameof(TrianglePaper.Color)}>{paperTriangle.Color}</{nameof(TrianglePaper.Color)}>");
     streamWriter.WriteLine($"\t</{nameof(TrianglePaper)}>");
 }
Ejemplo n.º 3
0
        public void CheckTriangle(float sideA, float sideB, float sideC, float expectArea, float expectPerim)
        {
            Triangle triangle = new TrianglePaper(sideA, sideB, sideC);

            Assert.AreEqual(expectArea, triangle.GetArea(), 0.00001f);

            Assert.AreEqual(expectPerim, triangle.GetPerimeter(), 0.00001f);
        }
Ejemplo n.º 4
0
        public void CheckCuttingPaperFigures(int index)
        {
            Figure figure = figuresBox.ShowFigure(index);

            Figure miniTriangle = new TrianglePaper(figure, 1, 1, 1);

            Assert.IsNotNull(miniTriangle);
        }
Ejemplo n.º 5
0
        public void PaintFigures()
        {
            TrianglePaper triangle = new TrianglePaper(1, 1, 1);
            // Create a painter
            Painter painter = new Painter();

            Painter.Colorize(triangle, Сoloring.Black);

            Assert.AreEqual(triangle.Сolor, Сoloring.Black);
        }
Ejemplo n.º 6
0
        public void RecolorFigureWhenFigureIsRecolorNotForFirstTimeGetArgumentException()
        {
            var sidesList = new List <double> {
                1, 2, 3
            };
            var rectangle = new TrianglePaper(sidesList, Color.Red);

            rectangle.RecolorFigure(Color.Green);
            rectangle.RecolorFigure(Color.Black);
        }
Ejemplo n.º 7
0
        /// <summary>
        /// The method reads data from a file using StreamReader and returns a list of generalFigure.
        /// </summary>
        /// <returns>Figure list</returns>
        public static List <IFigure> ReadFiguresStreamReader(string way)
        {
            using (var streamReader = new StreamReader(way))
            {
                var    generalFigure = new List <IFigure>();
                string line;

                while ((line = streamReader.ReadLine()) != null)
                {
                    string elementContent = line.Trim('<', '>', '/', '\t', ' ');

                    if (!Enum.TryParse(typeof(TypeFigure), elementContent, out object typeFigure))
                    {
                        continue;
                    }

                    switch (typeFigure)
                    {
                    case TypeFigure.CirclePaper:
                        CirclePaper paperCircle = ParserFiguresUsingStream.ParsePaperCircleXmlElement(streamReader);
                        generalFigure.Add(paperCircle);
                        break;

                    case TypeFigure.RectanglePaper:
                        RectanglePaper paperRectangle = ParserFiguresUsingStream.ParsePaperRectXmlElement(streamReader);
                        generalFigure.Add(paperRectangle);
                        break;

                    case TypeFigure.TrianglePaper:
                        TrianglePaper paperTriangle = ParserFiguresUsingStream.ParsePaperTriXmlElement(streamReader);
                        generalFigure.Add(paperTriangle);
                        break;

                    case TypeFigure.CirclePellicle:
                        CirclePellicle skinCircle = ParserFiguresUsingStream.ParsePellicleCircleXmlElement(streamReader);
                        generalFigure.Add(skinCircle);
                        break;

                    case TypeFigure.RectanglePellicle:
                        RectanglePellicle skinRectangle = ParserFiguresUsingStream.ParsePellicleRectangleFXmlElement(streamReader);
                        generalFigure.Add(skinRectangle);
                        break;

                    case TypeFigure.TrianglePellicle:
                        TrianglePellicle skinTriangle = ParserFiguresUsingStream.ParsePellicleTriXmlElement(streamReader);
                        generalFigure.Add(skinTriangle);
                        break;
                    }

                    streamReader.ReadLine();
                }

                return(generalFigure);
            }
        }
Ejemplo n.º 8
0
        /// <summary>
        /// parses the paper triangle into the xml element.
        /// </summary>
        /// <param name="xmlWriter"></param>
        /// <param name="paperTriangle">Paper triangle</param>
        public static void ParseXmlPaperTriangle(XmlTextWriter xmlWriter, TrianglePaper paperTriangle)
        {
            xmlWriter.WriteStartElement(nameof(TrianglePaper));

            xmlWriter.WriteElementString(nameof(TrianglePaper.Sides),
                                         string.Join(' ', paperTriangle.Sides));

            xmlWriter.WriteElementString(nameof(TrianglePaper.Color),
                                         paperTriangle.Color.ToString());
            xmlWriter.WriteEndElement();
        }
Ejemplo n.º 9
0
        public void TestGetPerimeter()
        {
            var sidesList = new List <double> {
                1, 2, 3
            };
            var    rectangle    = new TrianglePaper(sidesList, Color.Red);
            double result       = rectangle.GetPerimeter();
            double actualResult = 6;

            Assert.AreEqual(result, actualResult, 0.000001);
        }
Ejemplo n.º 10
0
        public void PaperTriangleWhenOldAreaMoreNewAreaCreatePaperCircle()
        {
            var paperCircle = new CirclePaper(8, Color.Red);
            var result      = new TrianglePaper(new List <double> {
                6, 7, 8
            }, paperCircle);
            var actualResult = new TrianglePaper(new List <double> {
                6, 7, 8
            }, Color.Red);

            Assert.AreEqual(result, actualResult);
        }
Ejemplo n.º 11
0
        public static List <IFigure> ReadFiguresXmlReader(string way)
        {
            using (var xmlReader = new XmlTextReader(way))
            {
                var generalFigure = new List <IFigure>();

                while (xmlReader.Read())
                {
                    if (!Enum.TryParse(typeof(TypeFigure), xmlReader.Name, out object typeFigure))
                    {
                        continue;
                    }

                    switch (typeFigure)
                    {
                    case TypeFigure.CirclePaper:
                        CirclePaper paperCircle = ParserFigureUsingXML.ParsePaperCircleXmlElement(xmlReader);
                        generalFigure.Add(paperCircle);
                        break;

                    case TypeFigure.RectanglePaper:
                        RectanglePaper paperRectangle = ParserFigureUsingXML.ParsePaperRectangleXmlElement(xmlReader);
                        generalFigure.Add(paperRectangle);
                        break;

                    case TypeFigure.TrianglePaper:
                        TrianglePaper paperTriangle = ParserFigureUsingXML.ParsePaperTriangleXmlElement(xmlReader);
                        generalFigure.Add(paperTriangle);
                        break;

                    case TypeFigure.CirclePellicle:
                        CirclePellicle skinCircle = ParserFigureUsingXML.ParsePellicleCircleXmlElement(xmlReader);
                        generalFigure.Add(skinCircle);
                        break;

                    case TypeFigure.RectanglePellicle:
                        RectanglePellicle skinRectangle = ParserFigureUsingXML.ParsePellicleRectangleXmlElement(xmlReader);
                        generalFigure.Add(skinRectangle);
                        break;

                    case TypeFigure.TrianglePellicle:
                        TrianglePellicle skinTriangle = ParserFigureUsingXML.ParsePellicleTriangleXmlElement(xmlReader);
                        generalFigure.Add(skinTriangle);
                        break;
                    }

                    xmlReader.Read();
                }

                return(generalFigure);
            }
        }
Ejemplo n.º 12
0
        public void RecolorFigureWhenFigureIsRecolorForFirstTimeNewColor()
        {
            var sidesList = new List <double> {
                1, 2, 3
            };
            var rectangle = new TrianglePaper(sidesList, Color.Red);

            rectangle.RecolorFigure(Color.Green);
            Color result       = rectangle.Color;
            Color actualResult = Color.Green;

            Assert.AreEqual(result, actualResult);
        }
Ejemplo n.º 13
0
        /// <summary>
        /// Сreating a specific figure
        /// </summary>
        /// <param name="material"> Material type</param>
        /// <param name="values"> Figure's data</param>
        /// <returns></returns>
        public IFigure CreateFigure(Material material, params double[] values)
        {
            IFigure figure = null;

            switch (material)
            {
            case Material.Paper:
                switch (values.Length)
                {
                case 1:
                    figure = new CirclePaper(values[0]);
                    break;

                case 2:
                    figure = new RectanglePaper(values[0], values[1]);
                    break;

                case 3:
                    figure = new TrianglePaper(values[0], values[1], values[2]);
                    break;

                default:
                    throw new InvalidParametersException();
                }
                break;

            case Material.Film:
                switch (values.Length)
                {
                case 1:
                    figure = new CircleFilm(values[0]);
                    break;

                case 2:
                    figure = new RectangleFilm(values[0], values[1]);
                    break;

                case 3:
                    figure = new TriangleFilm(values[0], values[1], values[2]);
                    break;

                default:
                    throw new InvalidParametersException();
                }
                break;

            default:
                throw new InvalidParametersException();
            }
            return(figure);
        }
Ejemplo n.º 14
0
        /// <summary>
        /// Method for create cuttting figures
        /// </summary>
        /// <param name="figure"></param>
        /// <param name="values"></param>
        /// <returns></returns>
        public IFigure CreateFigure(IFigure figure, params double[] values)
        {
            IFigure newFigure = null;

            if (figure is Paper)
            {
                switch (values.Length)
                {
                case 1:
                    figure = new CirclePaper(figure, values[0]);
                    break;

                case 2:
                    figure = new RectanglePaper(figure, values[0], values[1]);
                    break;

                case 3:
                    figure = new TrianglePaper(figure, values[0], values[1], values[2]);
                    break;

                default:
                    throw new InvalidParametersException();
                }
            }
            else if (figure is Film)
            {
                switch (values.Length)
                {
                case 1:
                    figure = new CircleFilm(figure, values[0]);
                    break;

                case 2:
                    figure = new RectangleFilm(figure, values[0], values[1]);
                    break;

                case 3:
                    figure = new TriangleFilm(figure, values[0], values[1], values[2]);
                    break;

                default:
                    throw new InvalidParametersException();
                }
            }
            return(newFigure);
        }
Ejemplo n.º 15
0
        public void CheckFiguresFactory()
        {
            Figure circle    = null;
            Figure rectangle = null;
            Figure triangle  = null;

            // Create factory
            FiguresFactory factory = new FiguresFactory();

            // Film Circle
            circle = factory.GetFigure(Material.Film, 3);
            Figure expCircleF = new CircleFilm(3);

            Assert.AreEqual(expCircleF, circle);

            // Paper Circle
            circle = factory.GetFigure(Material.Paper, 3);
            Figure expCircleP = new CirclePaper(3);

            Assert.AreEqual(expCircleP, circle);

            // Film Rectangle
            rectangle = factory.GetFigure(Material.Film, 2, 2);
            Figure expRectangleF = new RectangleFilm(2, 2);

            Assert.AreEqual(expRectangleF, rectangle);

            // Paper Rectangle
            rectangle = factory.GetFigure(Material.Paper, 2, 2);
            Figure expRectangleP = new RectanglePaper(2, 2);

            Assert.AreEqual(expRectangleP, rectangle);

            // Film Triangle
            triangle = factory.GetFigure(Material.Film, 2, 2, 2);
            Figure expTriangleF = new TriangleFilm(2, 2, 2);

            Assert.AreEqual(expTriangleF, triangle);

            // Paper Triangle
            triangle = factory.GetFigure(Material.Paper, 3, 4, 5);
            Figure expTriangleP = new TrianglePaper(3, 4, 5);

            Assert.AreEqual(expTriangleP, triangle);
        }
Ejemplo n.º 16
0
        public void AddFigureWhenFigureIsNotInBoxGetArgumentException()
        {
            var figures = new List <IFigure>
            {
                new RectanglePaper(new List <double> {
                    2, 4
                }, Color.Black),
                new TrianglePaper(new List <double> {
                    2, 4, 7
                }, Color.Blue)
            };

            var box    = new Box(figures);
            var figure = new TrianglePaper(new List <double> {
                2, 4, 7
            }, Color.Blue);

            box.AddFigure(figure);
        }
Ejemplo n.º 17
0
        public void ShowFigureWhenIndexIsNotOutsideArrayGetFigure()
        {
            var figures = new List <IFigure>
            {
                new RectanglePaper(new List <double> {
                    2, 4
                }, Color.Black),
                new TrianglePaper(new List <double> {
                    2, 4, 7
                }, Color.Blue)
            };

            var box = new Box(figures);

            IFigure result       = box.ShowFigure(1);
            var     actualResult = new TrianglePaper(new List <double> {
                2, 4, 7
            }, Color.Blue);

            Assert.AreEqual(result, actualResult);
        }
Ejemplo n.º 18
0
        public void SearchFigureWhenFigureIsInBoxGetFigure()
        {
            var figures = new List <IFigure>
            {
                new RectanglePaper(new List <double> {
                    2, 4
                }, Color.Black),
                new TrianglePaper(new List <double> {
                    2, 4, 7
                }, Color.Blue)
            };

            var box    = new Box(figures);
            var figure = new TrianglePaper(new List <double> {
                2, 4, 7
            }, Color.Blue);

            IFigure result       = box.SearchFigure(figure);
            var     actualResult = new TrianglePaper(new List <double> {
                2, 4, 7
            }, Color.Blue);

            Assert.AreEqual(result, actualResult);
        }
Ejemplo n.º 19
0
        /// <summary>
        /// Create new figure
        /// </summary>
        /// <param name="material">Material of new figure</param>
        /// <param name="form">Form of new figure</param>
        /// <param name="ps">Array of other params</param>
        /// <returns>Figure</returns>
        public IFigure CreateFigure(Material material, Form form, params float [] ps)
        {
            IFigure figure;

            switch (material)
            {
            case Material.Film:
            {
                switch (form)
                {
                case Form.Circle:
                {
                    if (ps.Length == 1)
                    {
                        figure = new CircleFilm(ps[0]);
                        break;
                    }
                    else
                    {
                        throw new Exception("Wrong input parameters");
                    }
                }

                case Form.Rectangle:
                {
                    if (ps.Length == 2)
                    {
                        figure = new RectangleFilm(ps[0], ps[1]);
                        break;
                    }
                    else
                    {
                        throw new Exception("Wrong input parameters");
                    }
                }

                case Form.Square:
                {
                    if (ps.Length == 1)
                    {
                        figure = new SquareFilm(ps[0]);
                        break;
                    }
                    else
                    {
                        throw new Exception("Wrong input parameters");
                    }
                }

                case Form.Triangle:
                {
                    if (ps.Length == 3)
                    {
                        figure = new TriangleFilm(ps[0], ps[1], ps[2]);
                        break;
                    }
                    else
                    {
                        throw new Exception("Wrong input parameters");
                    }
                }

                default: throw new Exception("Wrong input Form");
                }
                break;
            }

            case Material.Paper:
            {
                switch (form)
                {
                case Form.Circle:
                {
                    if (ps.Length == 1)
                    {
                        figure = new CirclePaper(ps[0]);
                        break;
                    }
                    else
                    {
                        throw new Exception("Wrong input parameters");
                    }
                }

                case Form.Rectangle:
                {
                    if (ps.Length == 2)
                    {
                        figure = new RectanglePaper(ps[0], ps[1]);
                        break;
                    }
                    else
                    {
                        throw new Exception("Wrong input parameters");
                    }
                }

                case Form.Square:
                {
                    if (ps.Length == 1)
                    {
                        figure = new SquarePaper(ps[0]);
                        break;
                    }
                    else
                    {
                        throw new Exception("Wrong input parameters");
                    }
                }

                case Form.Triangle:
                {
                    if (ps.Length == 3)
                    {
                        figure = new TrianglePaper(ps[0], ps[1], ps[2]);
                        break;
                    }
                    else
                    {
                        throw new Exception("Wrong input parameters");
                    }
                }

                default: throw new Exception("Wrong input Form");
                }
                break;
            }

            default: throw new Exception("Wrong input Material");
            }
            return(figure);
        }
Ejemplo n.º 20
0
        /// <summary>
        /// Method Write
        /// </summary>
        /// <param name="intoBox">Input List</param>
        public void Write(string output, List <IFigure> intoBox)
        {
            XmlWriter xmlWriter = XmlWriter.Create(output);

            xmlWriter.WriteStartDocument();
            xmlWriter.WriteStartElement("Boxs");
            foreach (var i in intoBox)
            {
                switch (i.GetType().Name)
                {
                case "CircleFilm":
                {
                    CircleFilm c1 = (CircleFilm)i;
                    xmlWriter.WriteStartElement("figure");
                    xmlWriter.WriteAttributeString("type", "Circle");
                    xmlWriter.WriteStartElement("material");
                    xmlWriter.WriteString("Film");
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("color");
                    xmlWriter.WriteString("None");
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("diameter");
                    xmlWriter.WriteString("" + c1.Diameter);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteEndElement();
                    break;
                }

                case "RectangleFilm":
                {
                    RectangleFilm r1 = (RectangleFilm)i;
                    xmlWriter.WriteStartElement("figure");
                    xmlWriter.WriteAttributeString("type", "Rectangle");
                    xmlWriter.WriteStartElement("material");
                    xmlWriter.WriteString("Film");
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("color");
                    xmlWriter.WriteString("None");
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("height");
                    xmlWriter.WriteString("" + r1.Height);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("width");
                    xmlWriter.WriteString("" + r1.Width);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteEndElement();
                    break;
                }

                case "SquareFilm":
                {
                    SquareFilm s1 = (SquareFilm)i;
                    xmlWriter.WriteStartElement("figure");
                    xmlWriter.WriteAttributeString("type", "Square");
                    xmlWriter.WriteStartElement("material");
                    xmlWriter.WriteString("Film");
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("color");
                    xmlWriter.WriteString("None");
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("height");
                    xmlWriter.WriteString("" + s1.A);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteEndElement();
                    break;
                }

                case "TriangleFilm":
                {
                    TriangleFilm t1 = (TriangleFilm)i;
                    xmlWriter.WriteStartElement("figure");
                    xmlWriter.WriteAttributeString("type", "Triangle");
                    xmlWriter.WriteStartElement("material");
                    xmlWriter.WriteString("Film");
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("color");
                    xmlWriter.WriteString("None");
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("side_a");
                    xmlWriter.WriteString("" + t1.A);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("side_b");
                    xmlWriter.WriteString("" + t1.B);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("side_c");
                    xmlWriter.WriteString("" + t1.C);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteEndElement();
                    break;
                }

                case "CirclePaper":
                {
                    CirclePaper c1 = (CirclePaper)i;
                    xmlWriter.WriteStartElement("figure");
                    xmlWriter.WriteAttributeString("type", "Circle");
                    xmlWriter.WriteStartElement("material");
                    xmlWriter.WriteString("Paper");
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("color");
                    xmlWriter.WriteString("" + c1.Color);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("diameter");
                    xmlWriter.WriteString("" + c1.Diameter);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteEndElement();
                    break;
                }

                case "RectanglePaper":
                {
                    RectanglePaper r1 = (RectanglePaper)i;
                    xmlWriter.WriteStartElement("figure");
                    xmlWriter.WriteAttributeString("type", "Rectangle");
                    xmlWriter.WriteStartElement("material");
                    xmlWriter.WriteString("Paper");
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("color");
                    xmlWriter.WriteString("" + r1.Color);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("height");
                    xmlWriter.WriteString("" + r1.Height);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("width");
                    xmlWriter.WriteString("" + r1.Width);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteEndElement();
                    break;
                }

                case "SquarePaper":
                {
                    SquarePaper s1 = (SquarePaper)i;
                    xmlWriter.WriteStartElement("figure");
                    xmlWriter.WriteAttributeString("type", "Square");
                    xmlWriter.WriteStartElement("material");
                    xmlWriter.WriteString("Paper");
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("color");
                    xmlWriter.WriteString("" + s1.Color);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("height");
                    xmlWriter.WriteString("" + s1.A);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteEndElement();
                    break;
                }

                case "TrianglePaper":
                {
                    TrianglePaper t1 = (TrianglePaper)i;
                    xmlWriter.WriteStartElement("figure");
                    xmlWriter.WriteAttributeString("type", "Triangle");
                    xmlWriter.WriteStartElement("material");
                    xmlWriter.WriteString("Paper");
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("color");
                    xmlWriter.WriteString("" + t1.Color);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("side_a");
                    xmlWriter.WriteString("" + t1.A);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("side_b");
                    xmlWriter.WriteString("" + t1.B);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteStartElement("side_c");
                    xmlWriter.WriteString("" + t1.C);
                    xmlWriter.WriteEndElement();
                    xmlWriter.WriteEndElement();
                    break;
                }
                }
            }
            xmlWriter.WriteEndDocument();
            xmlWriter.Close();
        }