Skip to content
Merged

Step4 #106

Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 4 additions & 10 deletions src/main/java/coordinate/domain/Point.java
Original file line number Diff line number Diff line change
Expand Up @@ -19,18 +19,12 @@ public double calculateLIne(Point point) {
return Math.sqrt((Math.pow(a,2) + Math.pow(b,2)));
}

public Boolean commpareXPoint(Point point) {
if (this.xPoint == point.xPoint) {
return true;
}
return false;
public Boolean compareXPoint(Point point) {
return this.xPoint == point.xPoint;
}

public Boolean commpareYPoint(Point point) {
if (this.yPoint == point.yPoint) {
return true;
}
return false;
public Boolean compareYPoint(Point point) {
return this.yPoint == point.yPoint;
}

public int subtractionXPoint(Point point) {
Expand Down
4 changes: 2 additions & 2 deletions src/main/java/coordinate/domain/Rectangle.java
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,10 @@ public String calculate() {
private int[] findBaseHeight() {
int[] BaseAndHeight = new int[2];
for (int i = 1; i < points.size(); i++) {
if (points.get(0).commpareXPoint(points.get(i)).equals(true)) {
if (points.get(0).compareXPoint(points.get(i)).equals(true)) {
BaseAndHeight[0] = points.get(0).subtractionYPoint(points.get(i));
}
if (points.get(0).commpareYPoint(points.get(i)).equals(true)) {
if (points.get(0).compareYPoint(points.get(i)).equals(true)) {
BaseAndHeight[1] = points.get(0).subtractionXPoint(points.get(i));
}
}
Expand Down
36 changes: 36 additions & 0 deletions src/main/java/coordinate/domain/Triangle.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
package coordinate.domain;

import java.util.ArrayList;

public class Triangle {
private ArrayList<Point> points;

public Triangle(ArrayList<Point> points) {
this.points = points;
}

public String calculate() {
if (this.points.size() < 3) {
return "사각형이 아닙니다.";
}
if (isTriangle().equals(false)) {
throw new IllegalArgumentException("사각형이 아닙니다.");
}
double[] a = findLine();
double s = (a[0] + a[1] + a[2]) / 2;
double result = Math.sqrt(s * (s - a[0]) * (s - a[1]) * (s - a[2]));
return "삼각형의 면적은 " + result + " 입니다.";
}

private Boolean isTriangle() {
return true;
}

private double[] findLine() {
double[] lines = new double[3];
for (int i = 0; i < 3; i++) {
lines[i] = points.get(i).calculateLIne(points.get((i+ 1) % 3));
}
return lines;
}
}
7 changes: 3 additions & 4 deletions src/main/java/coordinate/resultview/ResultView.java
Original file line number Diff line number Diff line change
@@ -1,16 +1,14 @@
package coordinate.resultview;

import coordinate.domain.CoordinateYLine;
import coordinate.domain.Line;
import coordinate.domain.Point;
import coordinate.domain.Rectangle;
import coordinate.domain.*;
import coordinate.utils.CoordinateString;

import java.util.ArrayList;
import java.util.HashMap;

public class ResultView {
private static final int FOUR = 4;
private static final int T = 3;
private static final int TWO = 2;

private static final int MAXiMUM_NUM = 24;
Expand Down Expand Up @@ -50,6 +48,7 @@ public void toDo(ArrayList<Point> points) {
HashMap<Integer, String> toDo = new HashMap<>();
toDo.put(TWO, new Line(points).calculate());
toDo.put(FOUR, new Rectangle(points).calculate());
toDo.put(T, new Triangle(points).calculate());
displayTest();
System.out.println(toDo.get(points.size()));
}
Expand Down
11 changes: 11 additions & 0 deletions src/test/java/coordinate/CoordinateTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,17 @@ public void squareFalseTest() {
ArrayList<Point> points = PointFactory.testInput(input);
assertThat(new Rectangle(points).calculate()).isEqualTo("사각형이 아닙니다.");
}*/
@Test
public void TriangleTest() {
ArrayList<Point> points;
String input = "(12,12) - (12, 22) - (22,22)";
points = PointFactory.testInput(input);
assertThat(new Triangle(points).calculate()).isEqualTo("삼각형의 면적은 50.0 입니다.");

input = "(10,10)-(14,15)-(20,8)";
points = PointFactory.testInput(input);
assertThat(new Triangle(points).calculate()).isEqualTo("삼각형의 면적은 28.999999999999996 입니다.");
}

@Test
public void squareTrueTest() {
Expand Down