first unit test

This commit is contained in:
2019-10-25 03:16:17 -06:00
parent 6901925c69
commit 93b22ef2ec
21 changed files with 275 additions and 254 deletions

View File

@@ -1,10 +1,8 @@
using System;
using System.Collections.Generic;
using System.ComponentModel.DataAnnotations;
using System.Drawing;
using System.Drawing.Imaging;
using System.IO;
using System.Linq;
using System.Runtime.Serialization;
namespace Shapes
@@ -12,46 +10,29 @@ namespace Shapes
[DataContract(Name = "Triangle", Namespace = "Shapes")]
public class Triangle : GeometricShape
{
[DataMember]
public sealed override List<Point> Points { get; internal set; }
[DataMember]
public override Color Fill { get; set; }
[DataMember]
public override Color Stroke { get; set; }
[DataMember]
public override double Height { get; internal set; }
[DataMember]
public override double Width { get; internal set; }
[DataMember]
public sealed override Point CenterPoint { get; protected set; }
[DataMember]
public List<Line> Lines { get; internal set; }
public Triangle(Point point1, Point point2, Point point3)
{
Stroke = Color.Black;
Points = new List<Point>();
Lines = new List<Line>();
Points.Add(point1);
Points.Add(point2);
Points.Add(point3);
Lines.Add(new Line(point1, point2));
Lines.Add(new Line(point2, point3));
Lines.Add(new Line(point3, point1));
Point centerOfLine3 = ((point1 - point3) / 2) + point1;
var centerTriangle = ((point1 - centerOfLine3) / 2) + point1;
var centerOfLine3 = (point1 - point3) / 2 + point1;
var centerTriangle = (point1 - centerOfLine3) / 2 + point1;
CenterPoint = centerTriangle;
Height = new Line(point1, centerOfLine3).ComputeLength();
Width = new Line(point1, point2).ComputeLength();
}
public Triangle(double x1, double y1, double x2, double y2, double x3, double y3)
@@ -62,27 +43,40 @@ namespace Shapes
var point2 = new Point(x2, y2);
var point3 = new Point(x3, y3);
Points = new List<Point>();
Lines = new List<Line>();
Points.Add(point1);
Points.Add(point2);
Points.Add(point3);
Lines.Add(new Line(point1, point2));
Lines.Add(new Line(point2, point3));
Lines.Add(new Line(point3, point1));
Point centerOfLine3 = ((point1 - point3) / 2) + point1;
var centerTriangle = ((point1 - centerOfLine3) / 2) + point1;
var centerOfLine3 = (point1 - point3) / 2 + point1;
var centerTriangle = (point1 - centerOfLine3) / 2 + point1;
CenterPoint = centerTriangle;
}
[DataMember] public sealed override List<Point> Points { get; internal set; }
[DataMember] public override Color Fill { get; set; }
[DataMember] public override Color Stroke { get; set; }
[DataMember] public override double Height { get; internal set; }
[DataMember] public override double Width { get; internal set; }
[DataMember] public sealed override Point CenterPoint { get; protected set; }
[DataMember] public List<Line> Lines { get; internal set; }
public override double ComputeArea()
{
var a = Lines[0].ComputeLength();
var b = Lines[1].ComputeLength();
var c = Lines[2].ComputeLength();
@@ -99,6 +93,7 @@ namespace Shapes
point.X *= scaleFactor;
point.Y *= scaleFactor;
}
foreach (var line in Lines)
{
line.Point1.X *= scaleFactor;
@@ -117,25 +112,26 @@ namespace Shapes
public override void Draw(Stream stream)
{
var tmp = new Bitmap(1000, 1000);
Pen blackPen = new Pen(Stroke, 3);
var tmp = new Bitmap((int) Width * 2, (int) Height * 2);
var blackPen = new Pen(Stroke, 3);
// Draw line to screen.
using (var graphics = Graphics.FromImage(tmp))
{
for (int i = 1; i < Points.Count; i++)
graphics.DrawLine(blackPen,
(float) Points[i - 1].X,
for (var i = 1; i < Points.Count; i++)
graphics.DrawLine(blackPen,
(float) Points[i - 1].X,
(float) Points[i - 1].Y,
(float) Points[i].X,
(float) Points[i].Y);
}
tmp.Save(stream, ImageFormat.Jpeg); }
tmp.Save(stream, ImageFormat.Jpeg);
}
internal override void ComputeCenter()
{
Point centerOfLine3 = ((Points[0] - Points[2]) / 2) + Points[0];
var centerTriangle = ((Points[0] - centerOfLine3) / 2) + Points[0];
var centerOfLine3 = (Points[0] - Points[2]) / 2 + Points[0];
var centerTriangle = (Points[0] - centerOfLine3) / 2 + Points[0];
CenterPoint = centerTriangle;
}
}