Example #1
0
        public void Equals_FigureIsInBox_Equals()
        {
            // 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);
            var  expectedBox   = new Box(figures);
            bool expected      = true;
            var  actualFigures = new IFigure[20];

            actualFigures[0] = new PaperRectangle(new List <double> {
                4, 6
            }, Color.Black);
            actualFigures[1] = new PaperTriangle(new List <double> {
                3, 4, 5
            }, Color.Red);
            var actual = new Box(actualFigures);

            // assert;
            Assert.Equal(expected, actual.Equals(expectedBox));
        }
Example #2
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);
        }
Example #3
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);
        }
Example #4
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);
        }
        public void PaperTriangleIntoRectangleConvertion2()
        {
            double        t_a        = 65;
            double        t_b        = 64;
            double        t_c        = 63;
            Color         t_color    = Color.red;
            PaperTriangle t_triangle = new PaperTriangle(t_a, t_b, t_c, t_color);

            double t_a1 = 1;
            double t_b1 = 2;
            double t_c1 = 1;
            double t_d1 = 2;

            PaperRectangle t_rectangle = new PaperRectangle(t_a1, t_b1, t_c1, t_d1, t_triangle);

            double         ex_a         = 1;
            double         ex_b         = 2;
            double         ex_c         = 1;
            double         ex_d         = 2;
            Color          ex_color     = Color.red;
            PaperRectangle ex_rectangle = new PaperRectangle(ex_a, ex_b, ex_c, ex_d, ex_color);


            Assert.IsTrue(ex_rectangle.Equals(t_rectangle));
        }
Example #6
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);
        }
Example #7
0
        public void FindBySample_FigureIsNotInBox_NotBySample()
        {
            // arrange
            var figures = new IFigure[20];

            figures[0] = new PaperRectangle(new List <double> {
                4, 6
            }, Color.Black);
            figures[1] = new PaperTriangle(new List <double> {
                14, 8, 9
            }, Color.Green);
            var expectedBox = new Box(figures);

            var actual = new PaperTriangle(new List <double> {
                3, 8, 5
            }, Color.Purple);

            // act
            var expected = expectedBox.FindBySample(new PaperTriangle(new List <double> {
                3, 8, 5
            }, Color.Purple));

            // assert;
            Assert.NotEqual(expected, actual);
        }
Example #8
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);
        }
Example #9
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);
        }
Example #10
0
        public void ReplaceByNumber_FigureIsInBox_ReplaceByNumberFigure()
        {
            // 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);
            var expectedBox = new Box(figures);

            var actualFigures = new IFigure[20];

            actualFigures[0] = new PaperRectangle(new List <double> {
                4, 6
            }, Color.Black);
            actualFigures[1] = new PaperTriangle(new List <double> {
                3, 8, 5
            }, Color.Purple);
            var actual = new Box(actualFigures);

            // act
            expectedBox.ReplaceByNumber(1, new PaperTriangle(new List <double> {
                3, 8, 5
            }, Color.Purple));

            // assert;
            Assert.Equal(expectedBox, actual);
        }
        public void PaperRectangleIntoTriangleConverstion3()
        {
            double t_a     = 30;
            double t_b     = 150;
            double t_c     = 30;
            double t_d     = 150;
            Color  t_color = Color.green;

            PaperRectangle t_rectangle = new PaperRectangle(t_a, t_b, t_c, t_d, t_color);


            double t_a1 = 2;
            double t_b1 = 2;
            double t_c1 = 2;

            PaperTriangle t_triangle = new PaperTriangle(t_a1, t_b1, t_c1, t_color);

            double        ex_a        = 2;
            double        ex_b        = 2;
            double        ex_c        = 2;
            Color         ex_color    = Color.green;
            PaperTriangle ex_triangle = new PaperTriangle(ex_a, ex_b, ex_c, ex_color);

            Assert.IsTrue(ex_triangle.Equals(t_triangle));
        }
Example #12
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);
        }
        public void GetPerimeter_PositiveTestResult(double rectangleFirstSide, double rectangleSecondSide, Colors color, double expectedPerimeter)
        {
            PaperRectangle actualPaperRectangle = new PaperRectangle(new List <double> {
                rectangleFirstSide, rectangleSecondSide
            }, color);

            Assert.AreEqual(expectedPerimeter, actualPaperRectangle.GetPerimeter());
        }
Example #14
0
        public void TestGetPerimeterOfRectangle(double firstSide, double secondSide, double expectedArea)
        {
            Rectangle paperRectangle    = new PaperRectangle(firstSide, secondSide);
            Rectangle membraneRectangle = new MembraneRectangle(firstSide, secondSide);

            Assert.AreEqual(expectedArea, paperRectangle.GetPerimeter());
            Assert.AreEqual(expectedArea, membraneRectangle.GetPerimeter());
        }
Example #15
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);
        }
Example #16
0
        public void CreatingRectangleMustReturnObject(double firstSide, double secondSide)
        {
            Rectangle paperRectangle    = new PaperRectangle(firstSide, secondSide);
            Rectangle membraneRectangle = new MembraneRectangle(firstSide, secondSide);

            Assert.IsNotNull(paperRectangle);
            Assert.IsNotNull(membraneRectangle);
        }
        public void PaintOverFigure_IsPaintedException(double rectangleFirstSide, double rectangleSecondSide, Colors actualColor, Colors firstNewColor, Colors secondNewColor)
        {
            PaperRectangle actualPaperRectangle = new PaperRectangle(new List <double> {
                rectangleFirstSide, rectangleSecondSide
            }, actualColor);

            actualPaperRectangle.PaintOverFigure(firstNewColor);
            Assert.ThrowsException <IsPaintedException>(() => actualPaperRectangle.PaintOverFigure(secondNewColor));
        }
        public void PaintOverFigure_PositiveTestResult(double rectangleFirstSide, double rectangleSecondSide, Colors actualColor, Colors newColor, Colors expectedColor)
        {
            PaperRectangle actualPaperRectangle = new PaperRectangle(new List <double> {
                rectangleFirstSide, rectangleSecondSide
            }, actualColor);

            actualPaperRectangle.PaintOverFigure(newColor);
            Assert.AreEqual(expectedColor, actualPaperRectangle.Color);
        }
Example #19
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);
        }
Example #20
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);
        }
        public void PaperRectangle_CutFigureBiggerOriginal_OutOfAreaException(double firstRectFirstSide, double firstRectSecondSide, double secondRectFirstSide, double secondRectSecondSide, Colors color)
        {
            PaperRectangle actualPaperRectangle = new PaperRectangle(new List <double> {
                firstRectFirstSide, firstRectSecondSide
            }, color);

            Assert.ThrowsException <OutOfAreaException>(() => new PaperRectangle(new List <double> {
                secondRectFirstSide, secondRectSecondSide
            }, actualPaperRectangle));
        }
Example #22
0
        public void TestPaintNonePaperShapes(double radius, double squareSide, double rectangleFirstSide, double rectangleSecondSide, Color color)
        {
            PaperCircle    paperCircle    = new PaperCircle(radius);
            PaperRectangle paperRectangle = new PaperRectangle(rectangleFirstSide, rectangleSecondSide);
            PaperSquare    paperSquare    = new PaperSquare(squareSide);

            Assert.ThrowsException <UnableToPaintException>(() => paperCircle.Paint(color));
            Assert.ThrowsException <UnableToPaintException>(() => paperSquare.Paint(color));
            Assert.ThrowsException <UnableToPaintException>(() => paperRectangle.Paint(color));
        }
        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);
        }
        /// <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);
            }
        }
        public void RecolorFigure_WhenFigureIsRecolorNotForFirstTime_GetArgumentException()
        {
            var sidesPaperRectangle = new List <double> {
                6, 8
            };

            var paperRectangle = new PaperRectangle(sidesPaperRectangle, Color.Red);

            paperRectangle.RecolorFigure(Color.Green);
            paperRectangle.RecolorFigure(Color.Black);
        }
        public void Test_GetPerimeter()
        {
            var sidesPaperRectangle = new List <double> {
                6, 8
            };

            var    paperRectangle = new PaperRectangle(sidesPaperRectangle, Color.Red);
            double result         = paperRectangle.GetPerimeter();
            double actualResult   = 14;

            Assert.AreEqual(result, actualResult, 0.0000001);
        }
Example #27
0
        public void GetArea_NewRectangle_GetArea()
        {
            var actual = 168;

            // act
            var expected = new PaperRectangle(new List <double> {
                12, 14
            }, Color.Green);

            // assert;
            Assert.Equal(expected.GetArea(), actual);
        }
        /// <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 PaperRectangle_WhenOldAreaMoreNewArea_CreatePaperCircle()
        {
            var sidesPaperRectangle = new List <double> {
                2, 4
            };
            var radiusPaperCircle = 5;

            var paperCircle  = new PaperCircle(radiusPaperCircle, Color.Red);
            var result       = new PaperRectangle(sidesPaperRectangle, paperCircle);
            var actualResult = new PaperRectangle(sidesPaperRectangle, Color.Red);

            Assert.AreEqual(result, actualResult);
        }
Example #30
0
        public void GetPerimeter()
        {
            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);

            double t_Perimeter  = t_box.GetTotalPerimeter();
            double ex_Perimeter = 38.416;

            Assert.AreEqual(ex_Perimeter, t_Perimeter, 0.001);
        }