Exemple #1
0
        public void Test_GetPerimeter(double radius, double actualResult)
        {
            var    paperCircle = new PaperCircle(radius, Color.Blue);
            double result      = paperCircle.GetPerimeter();

            Assert.AreEqual(result, actualResult, 0.0000001);
        }
Exemple #2
0
        /// <summary>
        /// Reads the file.
        /// </summary>
        /// <param name="file">The file.</param>
        /// <returns>List of shapes.</returns>
        public List <IShape> ReadFile(string file)
        {
            List <IShape> shapes = new List <IShape>();

            using (XmlReader reader = XmlReader.Create(file))
            {
                while (reader.Read())
                {
                    if (reader.NodeType == XmlNodeType.Element)
                    {
                        if (reader.Name.Equals("circle"))
                        {
                            Circle circle;
                            if (reader.GetAttribute("material").Equals("paper"))
                            {
                                circle = new PaperCircle(
                                    double.Parse(reader.GetAttribute("radius")),
                                    (Color)Enum.Parse(typeof(Color), reader.GetAttribute("color")));
                            }
                            else
                            {
                                circle = new MembraneCircle(double.Parse(reader.GetAttribute("radius")));
                            }
                            shapes.Add(circle);
                        }
                        if (reader.Name.Equals("square"))
                        {
                            Square square;
                            if (reader.GetAttribute("material").Equals("paper"))
                            {
                                square = new PaperSquare(double.Parse(reader.GetAttribute("side")), (Color)Enum.Parse(typeof(Color), reader.GetAttribute("color")));
                            }
                            else
                            {
                                square = new MembraneSquare(double.Parse(reader.GetAttribute("side")));
                            }
                            shapes.Add(square);
                        }
                        if (reader.Name.Equals("rectangle"))
                        {
                            Rectangle rectangle;
                            if (reader.GetAttribute("material").Equals("paper"))
                            {
                                rectangle = new PaperRectangle(double.Parse(reader.GetAttribute("firstSide")),
                                                               double.Parse(reader.GetAttribute("secondSide")),
                                                               (Color)Enum.Parse(typeof(Color), reader.GetAttribute("color")));
                            }
                            else
                            {
                                rectangle = new MembraneRectangle(
                                    double.Parse(reader.GetAttribute("firstSide")),
                                    double.Parse(reader.GetAttribute("secondSide")));
                            }
                            shapes.Add(rectangle);
                        }
                    }
                }
            }
            return(shapes);
        }
Exemple #3
0
        public void PaintOverFigure_IsPaintedException(double circleRadius, Colors actualColor, Colors firstNewColor, Colors secondNewColor)
        {
            PaperCircle paperCircle = new PaperCircle(circleRadius, actualColor);

            paperCircle.PaintOverFigure(firstNewColor);
            Assert.ThrowsException <IsPaintedException>(() => paperCircle.PaintOverFigure(secondNewColor));
        }
Exemple #4
0
 /// <summary>
 /// The method parses the paper circle into the xml element.
 /// </summary>
 /// <param name="xmlWriter"></param>
 /// <param name="paperCircle">Paper circle</param>
 public static void ParseToXmlElementFromPaperCircle(XmlTextWriter xmlWriter, PaperCircle paperCircle)
 {
     xmlWriter.WriteStartElement(nameof(PaperCircle));
     xmlWriter.WriteElementString(nameof(PaperCircle.Radius), paperCircle.Radius.ToString());
     xmlWriter.WriteElementString(nameof(PaperCircle.Color), paperCircle.Color.ToString());
     xmlWriter.WriteEndElement();
 }
Exemple #5
0
        public void AddFigureToFullBox()
        {
            Box t_box = new Box();

            t_box[0]  = new PaperCircle(5, Color.red);
            t_box[1]  = new PaperRectangle(1, 1, 1, 1, Color.red);
            t_box[2]  = new PaperTriangle(1, 1, 1, Color.red);
            t_box[3]  = new FilmCircle(5);
            t_box[4]  = new FilmRectangle(1, 1, 1, 1);
            t_box[5]  = new FilmTriangle(1, 1, 1);
            t_box[6]  = new PaperCircle(3, Color.red);
            t_box[7]  = new PaperRectangle(2, 1, 2, 1, Color.red);
            t_box[8]  = new PaperTriangle(2, 2, 2, Color.red);
            t_box[9]  = new FilmCircle(6);
            t_box[10] = new FilmRectangle(7, 7, 7, 7);
            t_box[11] = new FilmTriangle(5, 5, 5);
            t_box[12] = new PaperCircle(1, Color.blue);
            t_box[13] = new PaperRectangle(1, 1, 1, 1, Color.green);
            t_box[14] = new PaperTriangle(1, 1, 1, Color.blue);
            t_box[15] = new FilmCircle(6);
            t_box[16] = new FilmRectangle(10, 10, 10, 10);
            t_box[17] = new FilmTriangle(3, 4, 5);
            t_box[18] = new PaperCircle(13, Color.red);
            t_box[19] = new PaperRectangle(9, 1, 9, 1, Color.red);

            double      t_r      = 15;
            Color       t_color  = Color.green;
            PaperCircle t_circle = new PaperCircle(t_r, t_color);

            t_box.Add(t_circle);
        }
Exemple #6
0
        public void WritingByXmtTextWriterAndReadingByStreamReaderTest()
        {
            string path = @"..\..\..\..\epam_task_3.1\Res\NewPaperBox11.xml";

            FileWriter writer   = new FileWriter();
            Material   material = Material.film;

            Box t_box = new Box();

            t_box[0] = new PaperCircle(5, Color.red);
            t_box[1] = new PaperRectangle(1, 1, 1, 1, Color.red);
            t_box[2] = new PaperTriangle(1, 1, 1, Color.red);
            t_box[3] = new FilmCircle(5);
            t_box[4] = new FilmRectangle(1, 1, 1, 1);
            t_box[5] = new FilmTriangle(1, 1, 1);

            writer.WriteFiguresByXmlTextWriter(t_box, material, path);

            FileReader reader = new FileReader();
            Box        r_box  = reader.ReadXmlByStreamReader(path);

            Box ex_box = new Box();

            ex_box[0] = new FilmCircle(5);
            ex_box[1] = new FilmRectangle(1, 1, 1, 1);
            ex_box[2] = new FilmTriangle(1, 1, 1);

            CollectionAssert.AreEqual(ex_box.Items, r_box.Items);
        }
Exemple #7
0
        public void GetByNumber_FigureIsInBox_GetByNumberAndRemoveInBox()
        {
            // arrange
            var figures = new IFigure[20];

            figures[0] = new PaperRectangle(new List <double> {
                4, 6
            }, Color.Black);
            figures[1] = new PaperTriangle(new List <double> {
                3, 4, 5
            }, Color.Red);
            figures[2] = new PaperCircle(3, Color.Green);
            figures[3] = new PaperSquare(new List <double> {
                5
            }, Color.Green);

            var actualResult = 3;
            var expectedBox  = new Box(figures);

            // act
            expectedBox.GetByNumber(3);

            // assert;
            Assert.Equal(expectedBox.ShowCountFigures(), actualResult);
        }
Exemple #8
0
        /// <summary>
        /// Static method convert String type of abstract figure to AbstractFigure type
        /// </summary>
        /// <param name="inputString"></param>
        /// <returns></returns>
        public static BaseShape GetFigureFromString(string inputString)
        {
            BaseShape figure;

            string[] subStrings = inputString.Split('\u0027');

            switch (subStrings[1])
            {
            case "FilmCircle":
                figure = new FilmCircle(Double.Parse(subStrings[3]));
                break;

            case "FilmRectangle":
                figure = new FilmRectangle(Double.Parse(subStrings[3]), Double.Parse(subStrings[5]));
                break;

            case "PaperCircle":
                figure = new PaperCircle(Double.Parse(subStrings[3]), GetColorFromString(subStrings[5]));
                break;

            case "PaperRectangle":
                figure = new PaperRectangle(Double.Parse(subStrings[3]), Double.Parse(subStrings[5]), GetColorFromString(subStrings[7]));
                break;

            default:
                throw new Exception("Figure does not exist");
            }

            return(figure);
        }
Exemple #9
0
        public void GetAllCircle_FigureIsInBox_GetAllCircle()
        {
            // arrange
            var figures = new IFigure[20];

            figures[0] = new PaperRectangle(new List <double> {
                4, 6
            }, Color.Black);
            figures[1] = new PaperTriangle(new List <double> {
                3, 4, 5
            }, Color.Red);
            figures[2] = new PaperCircle(3, Color.Green);
            figures[3] = new PaperSquare(new List <double> {
                5
            }, Color.Green);
            figures[4] = new FilmCircle(6);

            var actualFigures = new List <IFigure>();

            actualFigures.Add(new PaperCircle(3, Color.Green));
            actualFigures.Add(new FilmCircle(6));

            var expected = new Box(figures);

            // assert;
            Assert.Equal(expected.GetAllCircle(), actualFigures);
        }
Exemple #10
0
        public void SaveFiguresToXmlFileUsingXmlWriterAndGetFiguresFromXmlFileUsingXmlReader_FigureIsInBox_GetFIgure()
        {
            // arrange
            string path    = @"..\..\..\Figures.xml";
            var    figures = new IFigure[20];

            figures[0] = new PaperCircle(5, Color.Red);
            figures[1] = new FilmRectangle(new List <double> {
                11, 18
            });
            figures[2] = new PaperSquare(new List <double> {
                8
            }, Color.Green);
            figures[3] = new FilmTriangle(new List <double> {
                9, 11, 4
            });

            var actualBox = new Box(figures);

            actualBox.SaveFiguresToXmlFileUsingXmlWriter(path);

            var expected = new Box();

            expected.GetFiguresFromXmlFileUsingXmlReader(path);
            // assert;
            Assert.Equal(expected, actualBox);
        }
Exemple #11
0
        public void AddFigure_FigureIsInBox_AddNewFigure()
        {
            // arrange
            var figures = new IFigure[20];

            figures[0] = new PaperRectangle(new List <double> {
                4, 6
            }, Color.Black);
            figures[1] = new PaperTriangle(new List <double> {
                3, 4, 5
            }, Color.Red);
            figures[2] = new PaperCircle(3, Color.Green);
            figures[3] = new PaperSquare(new List <double> {
                5
            }, Color.Green);
            var figure       = new FilmCircle(6);
            var actualResult = new Box(figures);

            actualResult.AddFigure(figure);
            var expected = new Box(figures);

            // act
            expected.AddFigure(figure);

            // assert;
            Assert.Equal(expected, actualResult);
        }
Exemple #12
0
        public void PaintOverFigure_PositiveTestResult(double circleRadius, Colors actualColor, Colors newColor, Colors expectedColor)
        {
            PaperCircle paperCircle = new PaperCircle(circleRadius, actualColor);

            paperCircle.PaintOverFigure(newColor);
            Assert.AreEqual(expectedColor, paperCircle.Color);
        }
Exemple #13
0
        public void Test_PaperCircle(double resultRadius, params double[] sides)
        {
            var paperRectangle = new PaperRectangle(sides, Color.Black);
            var result         = new PaperCircle(resultRadius, paperRectangle);
            var actualResult   = new PaperCircle(resultRadius, Color.Black);

            Assert.AreEqual(result, actualResult);
        }
        public void PaintingPaintedFigureTest()
        {
            PaperCircle t_paperCirlce = new PaperCircle(5, Color.blue);

            t_paperCirlce.Paint(Color.green);

            t_paperCirlce.Paint(Color.red);
        }
        public void PaintTest()
        {
            PaperCircle t_paperCirlce = new PaperCircle(5, Color.blue);

            t_paperCirlce.Paint(Color.green);

            Assert.IsTrue(t_paperCirlce.IsColoredAgain);
        }
Exemple #16
0
        public void TestCutShapeFromAnotherShapeWithSmallerAreaMustThrowsException(double smallerRadius, double biggerRadius)
        {
            //Cutting shape from another shape is available only for equals materials

            PaperCircle bigCircle = new PaperCircle(smallerRadius);

            Assert.ThrowsException <UnableToCutShapeException>(() => new PaperCircle(biggerRadius, bigCircle));
        }
Exemple #17
0
        public void TestGetPerimeterOfCircle(double radius, double expectedArea)
        {
            Circle paperCircle    = new PaperCircle(radius);
            Circle membraneCircle = new MembraneCircle(radius);

            Assert.AreEqual(expectedArea, paperCircle.GetPerimeter());
            Assert.AreEqual(expectedArea, membraneCircle.GetPerimeter());
        }
        public void Test_PaperTriangle(double radius, params double[] resultSides)
        {
            var paperCircle  = new PaperCircle(radius, Color.Red);
            var result       = new PaperTriangle(resultSides, paperCircle);
            var actualResult = new PaperTriangle(resultSides, Color.Red);

            Assert.AreEqual(result, actualResult);
        }
Exemple #19
0
        public void CreatingCircleMustReturnObject(double radius)
        {
            Circle paperCircle    = new PaperCircle(radius);
            Circle membraneCircle = new MembraneCircle(radius);

            Assert.IsNotNull(paperCircle);
            Assert.IsNotNull(membraneCircle);
        }
Exemple #20
0
        public void RecolorFigure_WhenFigureIsRecolorNotForFirstTime_GetArgumentException()
        {
            var radiusPaperCircle = 5;

            var circle = new PaperCircle(radiusPaperCircle, Color.Blue);

            circle.RecolorFigure(Color.Green);
            circle.RecolorFigure(Color.Red);
        }
Exemple #21
0
        public void PaperCircle_CutFigureSmallerOriginal_PositiveTestResult(double rectangleFirstSide, double rectangleSecondSide, Colors color, double circleRadius)
        {
            PaperRectangle paperRectangle = new PaperRectangle(new List <double> {
                rectangleFirstSide, rectangleSecondSide
            }, color);
            PaperCircle expectedPaperCircle = new PaperCircle(circleRadius, paperRectangle);
            PaperCircle actualPaperCircle   = new PaperCircle(circleRadius, color);

            Assert.AreEqual(expectedPaperCircle, actualPaperCircle);
        }
Exemple #22
0
        public void PaperCircle_WhenOldAreaMoreNewArea_CreatePaperCircle(params double[] sidesPaperRectangle)
        {
            var radiusPaperCircle = 5;

            var paperRectangle = new PaperRectangle(sidesPaperRectangle, Color.Black);
            var result         = new PaperCircle(radiusPaperCircle, paperRectangle);
            var actualResult   = new PaperCircle(radiusPaperCircle, Color.Black);

            Assert.AreEqual(result, actualResult);
        }
Exemple #23
0
        public void Test_GetArea()
        {
            var radiusPaperCircle = 5;

            var    circle       = new PaperCircle(radiusPaperCircle, Color.Blue);
            double result       = circle.GetArea();
            var    actualResult = 78.5398163;

            Assert.AreEqual(result, actualResult, 0.0000001);
        }
Exemple #24
0
        public void Test_GetPerimeter()
        {
            var radiusPaperCircle = 5;

            var    circle       = new PaperCircle(radiusPaperCircle, Color.Blue);
            double result       = circle.GetPerimeter();
            var    actualResult = 31.4159265;

            Assert.AreEqual(result, actualResult, 0.0000001);
        }
Exemple #25
0
        public void TestReaplaceAtInvalidDatatinBox(double radius, double newRadius, int index)
        {
            Box    box         = new Box();
            Circle firstCircle = new MembraneCircle(radius);

            box.AddShape(firstCircle);
            Circle secondCircle = new PaperCircle(newRadius);

            Assert.ThrowsException <ArgumentOutOfRangeException>(() => box.ReplaceAt(index, secondCircle));
        }
        public void Equals_TwoRectangle_Equals()
        {
            var actual = new PaperCircle(12, Color.Green);

            // act
            var expected = new PaperCircle(12, Color.Green);

            // assert;
            Assert.Equal(expected, actual);
        }
        public void GetArea_NewRectangle_GetArea()
        {
            var actual = 452.3893421169302;

            // act
            var expected = new PaperCircle(12, Color.Green);

            // assert;
            Assert.Equal(expected.GetArea(), actual);
        }
        public void GetPerimeter_NewRectangle_GetPerimeter()
        {
            var actual = 75.39822368615503;

            // act
            var expected = new PaperCircle(12, Color.Green);

            // assert;
            Assert.Equal(expected.GetPerimeter(), actual);
        }
        public void PaperCircle_WhenOldAreaLessNewArea_GetArgumentException()
        {
            var sidesPaperRectangle = new List <double> {
                12, 14
            };
            var radiusPaperCircle = 5;

            var paperCircle = new PaperCircle(radiusPaperCircle, Color.Red);
            var result      = new PaperRectangle(sidesPaperRectangle, paperCircle);
        }
Exemple #30
0
        public void Test_RecolorFigure_ThrowsArgumentException(Type typeException, string exceptionMessage, Color colorBlue, Color colorGreen, Color colorRed)
        {
            var radius = 5;

            var circle = new PaperCircle(radius, Color.Blue);

            circle.RecolorFigure(Color.Green);

            Assert.That(() => circle.RecolorFigure(Color.Red), Throws.ArgumentException.With.Message.EqualTo(exceptionMessage));
        }