public void Test_GetPerimeter(double radius, double actualResult)
        {
            var    skinCircle = new SkinCircle(radius);
            double result     = skinCircle.GetPerimeter();

            Assert.AreEqual(result, actualResult, 0.0000001);
        }
        public void SetFigure_WhenIndexIsNotOutsideArray_ChangeChosenFigure()
        {
            var sidesPaperRectangle = new List <double> {
                2, 4
            };
            var sidesPaperTriangle = new List <double> {
                2, 4, 7
            };
            var    index  = 0;
            double radius = 7;

            var figures = new List <IFigure>
            {
                new PaperRectangle(sidesPaperRectangle, Color.Black),
                new PaperTriangle(sidesPaperTriangle, Color.Blue)
            };

            var box    = new Box(figures);
            var figure = new SkinCircle(radius);

            box.SetFigure(index, figure);

            IFigure result       = box.ShowFigure(index);
            var     actualResult = new SkinCircle(radius);

            Assert.AreEqual(result, actualResult);
        }
Exemplo n.º 3
0
        public void Test_SkinRectangle(double radius, params double[] resultSides)
        {
            var skinCircle   = new SkinCircle(radius);
            var result       = new SkinRectangle(resultSides, skinCircle);
            var actualResult = new SkinRectangle(resultSides);

            Assert.AreEqual(result, actualResult);
        }
        public void Test_GetPerimeter()
        {
            var radiusSkinCircle = 5;

            var    skinCircle   = new SkinCircle(radiusSkinCircle);
            double result       = skinCircle.GetPerimeter();
            var    actualResult = 31.4159265;

            Assert.AreEqual(result, actualResult, 0.0000001);
        }
        public void Test_GetArea()
        {
            var radiusSkinCircle = 5;

            var    skinCircle   = new SkinCircle(radiusSkinCircle);
            double result       = skinCircle.GetArea();
            var    actualResult = 78.5398163;

            Assert.AreEqual(result, actualResult, 0.0000001);
        }
        public void SkinRectangle_WhenOldAreaLessNewArea_GetArgumentException()
        {
            var sidesSkinRectangle = new List <double> {
                12, 14
            };
            var radiusSkinCircle = 5;

            var skinCircle = new SkinCircle(radiusSkinCircle);
            var result     = new SkinRectangle(sidesSkinRectangle, skinCircle);
        }
        public void PaperCircle_WhenOldAreaLessNewArea_GetArgumentException()
        {
            var sidesSkinTriangle = new List <double> {
                13, 14, 15
            };
            var radiusSkinCircle = 5;

            var paperCircle = new SkinCircle(radiusSkinCircle);
            var result      = new SkinTriangle(sidesSkinTriangle, paperCircle);
        }
        /// <summary>
        /// The method reads data from a file using StreamReader and returns a list of figures.
        /// </summary>
        /// <returns>Figure list</returns>
        public static List <IFigure> ReadFiguresStreamReader(string filePath)
        {
            using (var streamReader = new StreamReader(filePath))
            {
                var    figures = 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.PaperCircle:
                        PaperCircle paperCircle = ParserFiguresUsingStream.ParseToPaperCircleFromXmlElement(streamReader);
                        figures.Add(paperCircle);
                        break;

                    case TypeFigure.PaperRectangle:
                        PaperRectangle paperRectangle = ParserFiguresUsingStream.ParseToPaperRectangleFromXmlElement(streamReader);
                        figures.Add(paperRectangle);
                        break;

                    case TypeFigure.PaperTriangle:
                        PaperTriangle paperTriangle = ParserFiguresUsingStream.ParseToPaperTriangleFromXmlElement(streamReader);
                        figures.Add(paperTriangle);
                        break;

                    case TypeFigure.SkinCircle:
                        SkinCircle skinCircle = ParserFiguresUsingStream.ParseToSkinCircleFromXmlElement(streamReader);
                        figures.Add(skinCircle);
                        break;

                    case TypeFigure.SkinRectangle:
                        SkinRectangle skinRectangle = ParserFiguresUsingStream.ParseToSkinRectangleFromXmlElement(streamReader);
                        figures.Add(skinRectangle);
                        break;

                    case TypeFigure.SkinTriangle:
                        SkinTriangle skinTriangle = ParserFiguresUsingStream.ParseToSkinTriangleFromXmlElement(streamReader);
                        figures.Add(skinTriangle);
                        break;
                    }

                    streamReader.ReadLine();
                }

                return(figures);
            }
        }
Exemplo n.º 9
0
        public void Test_SetFigure(int index, double radius)
        {
            var figure = new SkinCircle(radius);

            _box.SetFigure(index, figure);

            IFigure result       = _box.Figures[index];
            IFigure actualResult = figure;

            Assert.AreEqual(result, actualResult);
        }
Exemplo n.º 10
0
        public void Test_AddFigure(double radius)
        {
            var figure = new SkinCircle(radius);

            _box.AddFigure(figure);

            IFigure result       = _box.Figures[5];
            IFigure actualResult = figure;

            Assert.AreEqual(result, actualResult);
        }
        /// <summary>
        /// The method reads data from a file using XmlReader and returns a list of figures.
        /// </summary>
        /// <param name="filePath">Path to the file</param>
        /// <returns>Figure list</returns>
        public static List <IFigure> ReadFiguresXmlReader(string filePath)
        {
            using (var xmlReader = new XmlTextReader(filePath))
            {
                var figures = new List <IFigure>();

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

                    switch (typeFigure)
                    {
                    case TypeFigure.PaperCircle:
                        PaperCircle paperCircle = ParserFigureUsingXML.ParseToPaperCircleFromXmlElement(xmlReader);
                        figures.Add(paperCircle);
                        break;

                    case TypeFigure.PaperRectangle:
                        PaperRectangle paperRectangle = ParserFigureUsingXML.ParseToPaperRectangleFromXmlElement(xmlReader);
                        figures.Add(paperRectangle);
                        break;

                    case TypeFigure.PaperTriangle:
                        PaperTriangle paperTriangle = ParserFigureUsingXML.ParseToPaperTriangleFromXmlElement(xmlReader);
                        figures.Add(paperTriangle);
                        break;

                    case TypeFigure.SkinCircle:
                        SkinCircle skinCircle = ParserFigureUsingXML.ParseToSkinCircleFromXmlElement(xmlReader);
                        figures.Add(skinCircle);
                        break;

                    case TypeFigure.SkinRectangle:
                        SkinRectangle skinRectangle = ParserFigureUsingXML.ParseToSkinRectangleFromXmlElement(xmlReader);
                        figures.Add(skinRectangle);
                        break;

                    case TypeFigure.SkinTriangle:
                        SkinTriangle skinTriangle = ParserFigureUsingXML.ParseToSkinTriangleFromXmlElement(xmlReader);
                        figures.Add(skinTriangle);
                        break;
                    }

                    xmlReader.Read();
                }

                return(figures);
            }
        }
        public void SkinTriangle_WhenOldAreaMoreNewArea_CreatePaperCircle()
        {
            var sidesSkinTriangle = new List <double> {
                3, 4, 5
            };
            var radiusSkinCircle = 5;

            var skinCircle   = new SkinCircle(radiusSkinCircle);
            var result       = new SkinTriangle(sidesSkinTriangle, skinCircle);
            var actualResult = new SkinTriangle(sidesSkinTriangle);

            Assert.AreEqual(result, actualResult);
        }
        public void SetFigure_WhenIndexIsOutsideArray_GetArgumentOutOfRangeException()
        {
            var sidesPaperRectangle = new List <double> {
                2, 4
            };
            var sidesPaperTriangle = new List <double> {
                2, 4, 7
            };
            var    index  = -10;
            double radius = 7;

            var figures = new List <IFigure>
            {
                new PaperRectangle(sidesPaperRectangle, Color.Black),
                new PaperTriangle(sidesPaperTriangle, Color.Blue),
            };

            var box    = new Box(figures);
            var figure = new SkinCircle(radius);

            box.SetFigure(index, figure);
        }
        public void AddFigure_WhenFigureIsInBox_AddNewFigure()
        {
            var sidesPaperRectangle = new List <double> {
                2, 4
            };
            var sidesPaperTriangle = new List <double> {
                2, 4, 5
            };
            double radius = 7;

            var figures = new List <IFigure>
            {
                new PaperRectangle(sidesPaperRectangle, Color.Black),
                new PaperTriangle(sidesPaperTriangle, Color.Blue)
            };

            var box    = new Box(figures);
            var figure = new SkinCircle(radius);

            box.AddFigure(figure);

            IFigure[] result       = box.Figures;
            var       actualResult = new IFigure[20];

            for (var i = 0; i < actualResult.Length; i++)
            {
                if (i == figures.Count)
                {
                    actualResult[i] = figure;
                    break;
                }

                actualResult[i] = figures[i];
            }

            CollectionAssert.AreEqual(result, actualResult);
        }
        public void SearchFigure_WhenFigureIsNotInBox_GetNull()
        {
            var sidesPaperRectangle = new List <double> {
                2, 4
            };
            var sidesPaperTriangle = new List <double> {
                2, 4, 7
            };
            double radius = 7;

            var figures = new List <IFigure>
            {
                new PaperRectangle(sidesPaperRectangle, Color.Black),
                new PaperTriangle(sidesPaperTriangle, Color.Blue)
            };

            var box    = new Box(figures);
            var figure = new SkinCircle(radius);

            IFigure result       = box.SearchFigure(figure);
            IFigure actualResult = null;

            Assert.AreEqual(result, actualResult);
        }
Exemplo n.º 16
0
 /// <summary>
 /// The method parses the skin circle into the xml element.
 /// </summary>
 /// <param name="streamWriter"></param>
 /// <param name="skinCircle">Skin circle</param>
 public static void ParseToXmlElementFromSkinCircle(StreamWriter streamWriter, SkinCircle skinCircle)
 {
     streamWriter.WriteLine($"\t<{nameof(SkinCircle)}>");
     streamWriter.WriteLine($"\t\t<{nameof(SkinCircle.Radius)}>{skinCircle.Radius}</{nameof(SkinCircle.Radius)}>");
     streamWriter.WriteLine($"\t</{nameof(SkinCircle)}>");
 }
Exemplo n.º 17
0
        public void Test_SetFigure_ThrowsIndexOutOfRangeException(int index, double radius)
        {
            var figure = new SkinCircle(radius);

            Assert.That(() => _box.SetFigure(index, figure), Throws.TypeOf <IndexOutOfRangeException>());
        }
Exemplo n.º 18
0
        public void Test_SkinRectangle_ThrowsArgumentException(Type typeException, string exceptionMessage, double radius, params double[] sides)
        {
            var skinCircle = new SkinCircle(radius);

            Assert.That(() => new SkinRectangle(sides, skinCircle), Throws.ArgumentException.With.Message.EqualTo(exceptionMessage));
        }
Exemplo n.º 19
0
 /// <summary>
 /// The method parses the skin circle into the xml element.
 /// </summary>
 /// <param name="xmlWriter"></param>
 /// <param name="skinCircle">Skin circle</param>
 public static void ParseToXmlElementFromSkinCircle(XmlTextWriter xmlWriter, SkinCircle skinCircle)
 {
     xmlWriter.WriteStartElement(nameof(SkinCircle));
     xmlWriter.WriteElementString(nameof(SkinCircle.Radius), skinCircle.Radius.ToString());
     xmlWriter.WriteEndElement();
 }