Пример #1
0
        public void FilmTriangleIntoRectangleConvertion2()
        {
            double       t_a        = 65;
            double       t_b        = 64;
            double       t_c        = 63;
            Color        t_color    = Color.red;
            FilmTriangle t_triangle = new FilmTriangle(t_a, t_b, t_c);

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

            FilmRectangle t_rectangle = new FilmRectangle(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;
            FilmRectangle ex_rectangle = new FilmRectangle(ex_a, ex_b, ex_c, ex_d);


            Assert.IsTrue(ex_rectangle.Equals(t_rectangle));
        }
Пример #2
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);
        }
Пример #3
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);
        }
Пример #4
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);
        }
Пример #5
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);
        }
Пример #6
0
        public void GetPerimeter_PositiveTestResult(double rectangleFirstSide, double rectangleSecondSide, double expectedPerimeter)
        {
            FilmRectangle actualFilmRectangle = new FilmRectangle(new List <double> {
                rectangleFirstSide, rectangleSecondSide
            });

            Assert.AreEqual(expectedPerimeter, actualFilmRectangle.GetPerimeter());
        }
        public void FilmCircle_CutFigureSmallerOriginal_PositiveTestResult(double circleRadius, double rectangleFirstSide, double rectangleSecondSide)
        {
            FilmRectangle filmRectangle = new FilmRectangle(new List <double> {
                rectangleFirstSide, rectangleSecondSide
            });
            FilmCircle expectedFilmCircle = new FilmCircle(circleRadius, filmRectangle);
            FilmCircle actualFilmCircle   = new FilmCircle(circleRadius);

            Assert.AreEqual(expectedFilmCircle, actualFilmCircle);
        }
Пример #8
0
        public void FilmRectangle_CutFigureBiggerOriginal_OutOfAreaException(double firstRectFirstSide, double firstRectSecondSide, double secondRectFirstSide, double secondRectSecondSide)
        {
            FilmRectangle actualFilmRectangle = new FilmRectangle(new List <double> {
                firstRectFirstSide, firstRectSecondSide
            });

            Assert.ThrowsException <OutOfAreaException>(() => new FilmRectangle(new List <double> {
                secondRectFirstSide, secondRectSecondSide
            }, actualFilmRectangle));
        }
Пример #9
0
        public void FindFigure()
        {
            Box t_box = new Box();

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

            Assert.IsTrue(t_box.Find(ex_circle));
        }
Пример #10
0
        public void GetArea_NewRectangle_GetArea()
        {
            var actual = 168;

            // act
            var expected = new FilmRectangle(new List <double> {
                12, 14
            });

            // assert;
            Assert.Equal(expected.GetArea(), actual);
        }
Пример #11
0
        public void GetPerimeter_NewRectangle_GetPerimeter()
        {
            var actual = 52;

            // act
            var expected = new FilmRectangle(new List <double> {
                12, 14
            });

            // assert;
            Assert.Equal(expected.GetPerimeter(), actual);
        }
        public void FilmSquare_CutFigureSmallerOriginal_PositiveTestResult(double rectFirstSide, double rectSecondSide, double squareSide)
        {
            FilmRectangle filmRectangle = new FilmRectangle(new List <double> {
                rectFirstSide, rectSecondSide
            });
            FilmSquare expectedFilmSquare = new FilmSquare(new List <double> {
                squareSide
            }, filmRectangle);
            FilmSquare actualFilmSquare = new FilmSquare(new List <double> {
                squareSide
            });

            Assert.AreEqual(expectedFilmSquare, actualFilmSquare);
        }
Пример #13
0
        public void Equals_TwoRectangle_Equals()
        {
            var actual = new FilmRectangle(new List <double> {
                12, 14
            });

            // act
            var expected = new FilmRectangle(new List <double> {
                12, 14
            });

            // assert;
            Assert.Equal(expected, actual);
        }
        public void FilmTriangle_CutFigureSmallerOriginal_PositiveTestResult(double rectangleFirstSide, double rectangleSecondSide, double triangleFirstSide, double triangleSecondSide, double triangleThirdSide)
        {
            FilmRectangle filmRectangle = new FilmRectangle(new List <double> {
                rectangleFirstSide, rectangleSecondSide
            });
            FilmTriangle expectedFilmTriangle = new FilmTriangle(new List <double> {
                triangleFirstSide, triangleSecondSide, triangleThirdSide
            }, filmRectangle);
            FilmTriangle actualFilmTriangle = new FilmTriangle(new List <double> {
                triangleFirstSide, triangleSecondSide, triangleThirdSide
            });

            Assert.AreEqual(expectedFilmTriangle, actualFilmTriangle);
        }
Пример #15
0
        public void GetActualBoxSize()
        {
            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);

            int ex_size = 6;

            Assert.AreEqual(ex_size, t_box.Size);
        }
 /// <summary>
 /// Parses Object as a Xml Element
 /// </summary>
 /// <param name="writer"></param>
 /// <param name="paperCircle"></param>
 public void ParseFilmRectangleAsXmlNode(StreamWriter writer, FilmRectangle filmRectangle)
 {
     try
     {
         writer.WriteLine("\t<FilmRectangle>");
         writer.WriteLine("\t\t<A>{0}</A>", filmRectangle.A);
         writer.WriteLine("\t\t<B>{0}</B>", filmRectangle.B);
         writer.WriteLine("\t\t<C>{0}</C>", filmRectangle.C);
         writer.WriteLine("\t\t<D>{0}</D>", filmRectangle.D);
         writer.WriteLine("\t</FilmRectangle>");
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #17
0
 /// <summary>
 /// Parses Object as a Xml Element
 /// </summary>
 /// <param name="writer"></param>
 /// <param name="paperCircle"></param>
 public void ParseFilmRectangleAsXmlNode(XmlTextWriter writer, FilmRectangle filmRectangle)
 {
     try
     {
         writer.WriteStartElement(nameof(FilmRectangle));
         writer.WriteElementString(nameof(FilmRectangle.A), filmRectangle.A.ToString());
         writer.WriteElementString(nameof(FilmRectangle.B), filmRectangle.B.ToString());
         writer.WriteElementString(nameof(FilmRectangle.C), filmRectangle.C.ToString());
         writer.WriteElementString(nameof(FilmRectangle.D), filmRectangle.D.ToString());
         writer.WriteEndElement();
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Пример #18
0
        public void CreateNewFigire_NewAreaLessOldArea_CreateNewFigire()
        {
            var filmRectangle = new FilmRectangle(new List <double> {
                12, 14
            });
            var actual = new FilmSquare(new List <double> {
                5
            });

            // act
            var expected = new FilmSquare(filmRectangle, new List <double> {
                5
            });

            // assert;
            Assert.Equal(expected, actual);
        }
Пример #19
0
        public void FilmRectangleCreation3()
        {
            double t_a = 235;
            double t_b = 32;
            double t_c = 235;
            double t_d = 32;

            FilmRectangle t_filmRectangle = new FilmRectangle(t_a, t_b, t_c, t_d);

            double ex_a = 235;
            double ex_b = 32;
            double ex_c = 235;
            double ex_d = 32;

            FilmRectangle ex_filmRectangle = new FilmRectangle(ex_a, ex_b, ex_c, ex_d);

            Assert.IsTrue(ex_filmRectangle.Equals(t_filmRectangle));
        }
Пример #20
0
        public void TakeFigure()
        {
            Box t_box = new Box();

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

            Figure takenFigure = t_box.Take(2);

            Box ex_box = new Box();

            ex_box[0] = new PaperCircle(5, Color.red);
            ex_box[1] = new FilmRectangle(1, 1, 1, 1);
            ex_box[2] = new FilmCircle(5);

            CollectionAssert.AreEqual(ex_box.Items, t_box.Items);
        }
Пример #21
0
        public void FilmRectangleIntoCircleConverstion3()
        {
            double t_a = 15;
            double t_b = 15;
            double t_c = 15;
            double t_d = 15;

            FilmRectangle t_rectangle = new FilmRectangle(t_a, t_b, t_c, t_d);


            double     t_r      = 3;
            FilmCircle t_circle = new FilmCircle(t_r, t_rectangle);

            double ex_r = 3;

            FilmCircle ex_circle = new FilmCircle(ex_r);

            Assert.IsTrue(ex_circle.Equals(t_circle));
        }
Пример #22
0
        public void GetFilmFigures()
        {
            Box t_box = new Box();

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

            List <Figure> t_circles = new List <Figure>();

            t_circles = t_box.GetFilmFigures();

            List <Figure> ex_circles = new List <Figure>
            {
                new FilmRectangle(1, 1, 1, 1),
                new FilmCircle(5)
            };

            CollectionAssert.AreEqual(ex_circles, t_circles);
        }
Пример #23
0
        public void Reading5()
        {
            string path = @"..\..\..\..\epam_task_3.1\Box.xml";

            Box boxTest = new Box();

            FileReader fileExtensions = new FileReader();

            boxTest = fileExtensions.ReadXmlByXmlTextReader(path);

            Box boxToAssure = new Box();

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

            Assert.IsTrue(boxToAssure[5].Equals(boxTest[5]));
        }
Пример #24
0
        public void GetFilmFIgure_FigureIsInBox_GetFilmFIgure()
        {
            // 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 FilmRectangle(new List <double> {
                4, 6
            });
            figures[3] = new FilmTriangle(new List <double> {
                3, 4, 5
            });
            figures[4] = new PaperCircle(3, Color.Green);
            figures[5] = new FilmSquare(new List <double> {
                5
            });
            figures[6] = new FilmCircle(6);

            var actualFigures = new List <IFigure>();

            actualFigures.Add(new FilmRectangle(new List <double> {
                4, 6
            }));
            actualFigures.Add(new FilmTriangle(new List <double> {
                3, 4, 5
            }));
            actualFigures.Add(new FilmSquare(new List <double> {
                5
            }));
            actualFigures.Add(new FilmCircle(6));
            var expected = new Box(figures);

            // assert;
            Assert.Equal(expected.GetAllFilmFigures(), actualFigures);
        }
Пример #25
0
        public void FilmCircleIntoRectangleConverstion3()
        {
            double t_r = 100;

            FilmCircle t_filmCircle = new FilmCircle(t_r);

            double t_a = 10;
            double t_b = 5;
            double t_c = 10;
            double t_d = 5;

            FilmRectangle t_filmRectangle = new FilmRectangle(t_a, t_b, t_c, t_d);

            double ex_a = 10;
            double ex_b = 5;
            double ex_c = 10;
            double ex_d = 5;

            FilmRectangle ex_filmRectangle = new FilmRectangle(ex_a, ex_b, ex_c, ex_d);

            Assert.IsTrue(ex_filmRectangle.Equals(t_filmRectangle));
        }
Пример #26
0
        public void FilmRectangleIntoTriangleConverstion3()
        {
            double t_a = 30;
            double t_b = 150;
            double t_c = 30;
            double t_d = 150;

            FilmRectangle t_rectangle = new FilmRectangle(t_a, t_b, t_c, t_d);


            double       t_a1       = 2;
            double       t_b1       = 2;
            double       t_c1       = 2;
            FilmTriangle t_triangle = new FilmTriangle(t_a1, t_b1, t_c1, t_rectangle);

            double       ex_a        = 2;
            double       ex_b        = 2;
            double       ex_c        = 2;
            FilmTriangle ex_triangle = new FilmTriangle(ex_a, ex_b, ex_c);

            Assert.IsTrue(ex_triangle.Equals(t_triangle));
        }
Пример #27
0
        public void FilmTriangleIntoRectangleConvertion3()
        {
            double       t_a        = 10;
            double       t_b        = 10;
            double       t_c        = 10;
            FilmTriangle t_triangle = new FilmTriangle(t_a, t_b, t_c);

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

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

            double        ex_a         = 2;
            double        ex_b         = 5;
            double        ex_c         = 2;
            double        ex_d         = 5;
            FilmRectangle ex_rectangle = new FilmRectangle(ex_a, ex_b, ex_c, ex_d);

            Assert.IsTrue(ex_rectangle.Equals(t_rectangle));
        }
Пример #28
0
        public void SetFigure()
        {
            Box t_box = new Box();

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

            FilmTriangle ex_circle = new FilmTriangle(1, 1, 1);

            t_box.Set(1, ex_circle);

            Box ex_box = new Box();

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

            CollectionAssert.AreEqual(ex_box.Items, t_box.Items);
        }
Пример #29
0
        public void ShowByNumber_FigureIsInBox_ShowFigure()
        {
            // arrange
            var figures = new IFigure[20];

            figures[0] = new FilmRectangle(new List <double> {
                4, 6
            });
            figures[1] = new FilmTriangle(new List <double> {
                3, 4, 5
            });
            figures[2] = new FilmCircle(3);
            figures[3] = new FilmSquare(new List <double> {
                5
            });
            var actualResult = figures[1];
            var expectedBox  = new Box(figures);

            // act
            var expected = expectedBox.ShowByNumber(1);

            // assert;
            Assert.Equal(expected, actualResult);
        }
        /// <summary>
        /// Method reads figures from an xml file using StreamReader.
        /// </summary>
        /// <param name="path">path</param>
        /// <returns>IFigure[]</returns>
        public static IFigure[] GetFromFile(string path)
        {
            var figures = new IFigure[_sizeArray];
            var sides   = new List <double>();

            object color      = null;
            string material   = null;
            string figureName = null;
            string content    = null;

            double radius = 0;
            int    count  = 0;

            string patternMaterial = @"(Paper|Film)([A-z]*)";
            string patternNumber   = @"(\d+|\d.+)\<";
            string patternColor    = @">([A-z]*)<";
            var    regex           = new Regex(patternMaterial);

            using (var streamReader = new StreamReader(path))
            {
                while ((content = streamReader.ReadLine()) != null)
                {
                    if (!Enum.TryParse(typeof(FigureType), content.Trim('<', '>', '/', '\t', ' '), out object figureType))
                    {
                        continue;
                    }

                    regex = new Regex(patternMaterial);
                    foreach (Match match in regex.Matches(figureType.ToString()))
                    {
                        material   = match.Groups[1].Value;
                        figureName = match.Groups[2].Value;
                    }

                    content = streamReader.ReadLine();
                    regex   = new Regex(patternNumber);

                    if (figureName != _circleFigure)
                    {
                        foreach (Match match in regex.Matches(content))
                        {
                            sides = match.Groups[1].Value.Split(' ').Select(obj => double.Parse(obj)).ToList();
                        }
                    }
                    else
                    {
                        foreach (Match match in regex.Matches(content))
                        {
                            double.TryParse(match.Groups[1].Value, out radius);
                        }
                    }

                    if (material == _paperMaterial)
                    {
                        content = streamReader.ReadLine();
                        regex   = new Regex(patternColor);
                        foreach (Match match in regex.Matches(content))
                        {
                            color = Enum.Parse(typeof(Color), match.Groups[1].Value);
                        }
                    }

                    switch (figureType)
                    {
                    case FigureType.PaperCircle:
                        figures[count] = new PaperCircle(radius, (Color)color);
                        break;

                    case FigureType.PaperRectangle:
                        figures[count] = new PaperRectangle(sides, (Color)color);
                        break;

                    case FigureType.PaperSquare:
                        figures[count] = new PaperSquare(sides, (Color)color);
                        break;

                    case FigureType.PaperTriangle:
                        figures[count] = new PaperTriangle(sides, (Color)color);
                        break;

                    case FigureType.FilmCircle:
                        figures[count] = new FilmCircle(radius);
                        break;

                    case FigureType.FilmRectangle:
                        figures[count] = new FilmRectangle(sides);
                        break;

                    case FigureType.FilmSquare:
                        figures[count] = new FilmSquare(sides);
                        break;

                    case FigureType.FilmTriangle:
                        figures[count] = new FilmTriangle(sides);
                        break;

                    default:
                        break;
                    }
                    count++;
                    if (count == figures.Length - 1)
                    {
                        return(figures);
                    }
                    content = streamReader.ReadLine();
                }
            }

            return(figures);
        }