public void CirclePaperOldAreaLessNewAreaGetArgumentException() { var paperRectangle = new RectanglePaper(new List <double> { 4, 6 }, Color.Black); var result = new CirclePaper(5, paperRectangle); }
public void PaperCircleWhenOldAreaLessNewAreaGetArgumentException() { var paperCircle = new CirclePaper(7, Color.Red); var result = new RectanglePaper(new List <double> { 14, 17 }, paperCircle); }
/// <summary> /// parses the paper rectangle into the xml element. /// </summary> /// <param name="streamWriter"></param> /// <param name="paperRectangle">Paper rectangle</param> public static void ParseXmlPaperRectangle(StreamWriter streamWriter, RectanglePaper paperRectangle) { streamWriter.WriteLine($"\t<{nameof(RectanglePaper)}>"); streamWriter.WriteLine($"\t\t<{nameof(RectanglePaper.Sides)}>{string.Join(' ', paperRectangle.Sides)}</{nameof(RectanglePaper.Sides)}>"); streamWriter.WriteLine($"\t\t<{nameof(RectanglePaper.Color)}>{paperRectangle.Color}</{nameof(RectanglePaper.Color)}>"); streamWriter.WriteLine($"\t</{nameof(RectanglePaper)}>"); }
public void CirclePaperOldAreaMoreNewAreaCreatePaperCircle() { var paperRectangle = new RectanglePaper(new List <double> { 19, 14 }, Color.Pink); var result = new CirclePaper(4, paperRectangle); var actualResult = new CirclePaper(4, Color.Pink); Assert.AreEqual(result, actualResult); }
public void RecolorFigureWhenFigureIsRecolorNotForFirstTimeGetArgumentException() { var sidesList = new List <double> { 7, 17 }; var rectangle = new RectanglePaper(sidesList, Color.Red); rectangle.RecolorFigure(Color.Green); rectangle.RecolorFigure(Color.Black); }
/// <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); } }
public void TestGetPerimeter() { var sidesList = new List <double> { 7, 14 }; var rectangle = new RectanglePaper(sidesList, Color.Red); double result = rectangle.GetPerimeter(); double actualResult = 21; Assert.AreEqual(result, actualResult, 0.0000001); }
public void TestGetArea() { var sidesList = new List <double> { 6, 8, 6, 8 }; var rectangle = new RectanglePaper(sidesList, Color.Red); double result = rectangle.GetArea(); double actualResult = 48; Assert.AreEqual(result, actualResult, 0.0000001); }
public void PaperRectangleWhenOldAreaMoreNewAreaCreatePaperCircle() { var paperCircle = new CirclePaper(6, Color.Red); var result = new RectanglePaper(new List <double> { 3, 5 }, paperCircle); var actualResult = new RectanglePaper(new List <double> { 3, 5 }, Color.Red); Assert.AreEqual(result, actualResult); }
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); } }
public void RecolorFigureWhenFigureIsRecolorForFirstTimeNewColor() { var sidesList = new List <double> { 7, 9 }; var rectangle = new RectanglePaper(sidesList, Color.Red); rectangle.RecolorFigure(Color.Green); Color result = rectangle.Color; Color actualResult = Color.Green; Assert.AreEqual(result, actualResult); }
/// <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); }
/// <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); }
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); }
/// <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(); }
/// <summary> /// parses the paper rectangle into the xml element. /// </summary> /// <param name="xmlWriter"></param> /// <param name="paperRectangle">Paper rectangle</param> public static void ParseToXmlElementFromPaperRectangle(XmlTextWriter xmlWriter, RectanglePaper paperRectangle) { xmlWriter.WriteStartElement(nameof(RectanglePaper)); xmlWriter.WriteElementString(nameof(RectanglePaper.Sides), string.Join(' ', paperRectangle.Sides)); xmlWriter.WriteElementString(nameof(RectanglePaper.Color), paperRectangle.Color.ToString()); xmlWriter.WriteEndElement(); }
/// <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); }