Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import org.junit.jupiter.api.BeforeEach;
- import org.junit.jupiter.api.Test;
- import static org.junit.jupiter.api.Assertions.*;
- public class SimpleGeometricObject { //superclass
- private String color = "white";
- private boolean filled;
- private java.util.Date dateCreated;
- public SimpleGeometricObject() {
- dateCreated = new java.util.Date();
- }
- public SimpleGeometricObject(String color, boolean filled) {
- this.color = color;
- this.filled = filled;
- dateCreated = new java.util.Date();
- }
- public String getColor() {
- return color;
- }
- public void setColor(String color) {
- this.color = color;
- }
- public boolean isFilled() {
- return filled;
- }
- public void setFilled(boolean filled) {
- this.filled = filled;
- }
- public java.util.Date getDateCreated() {
- return dateCreated;
- }
- public String toString() {
- return "\nCreated on: " + dateCreated + "\nColor: " + color + "\nFilled: " + filled;
- }
- }
- class TriangleProgram {
- public static void main(String[] args) {
- Triangle triangle1 = new Triangle(); //Legal triangle with sides of 1
- System.out.println(triangle1.toString());
- Triangle triangle2 = new Triangle(1, 1, 1);
- System.out.println(triangle2.toString());
- Triangle triangle3 = new Triangle(1, 2, 2);
- System.out.println(triangle3.toString());
- Triangle triangle4 = new Triangle(1, 2, 2);
- System.out.println(triangle4.toString());
- Triangle triangle5 = new Triangle(-1, 1, 1); //Illegal triangle, should not be displayed
- System.out.println(triangle5.toString());
- System.out.println("Is the third and the fourth triangle the same triangle? " + triangle3.equals(triangle4));
- }
- }
- class Triangle extends SimpleGeometricObject { //Triangle subclass of geomobj
- private double side1;
- private double side2;
- private double side3;
- public Triangle() { //No-arg
- this.side1 = this.side2 = this.side3 = 1.0;
- setColor("Yellow");
- }
- public Triangle(double sides) { //Likesidet trekant er blå
- this.side1 = this.side2 = this.side3 = sides;
- setColor("Blue");
- setFilled(true);
- }
- public Triangle(double side1, double side2, double side3) { //Triangle
- super("Red", true);
- this.side1 = side1;
- this.side2 = side2;
- this.side3 = side3;
- }
- public boolean checkLegality() {
- return (side1 > 0 && side2 > 0 && side3 > 0) && (side1 + side2 > side3 && side1 + side3 > side2 && side2 + side3 > side1);
- }
- public double getSide1() { //Getter side1
- return side1;
- }
- public void setSide1(double side1) { //Setter side1
- this.side1 = side1;
- }
- public double getSide2() { //Getter side2
- return side2;
- }
- public void setSide2(double side2) { //Setter side2
- this.side2 = side2;
- }
- public double getSide3() { //Getter side3
- return side3;
- }
- public void setSide3(double side3) { //Setter side3
- this.side3 = side3;
- }
- public double getArea() {
- double s = (side1 + side2 + side3) / 2.0;
- return Math.pow(s * (s - side1) * (s - side2) * (s - side3), 0.5);
- }
- public double getPerimeter() {
- return side1 + side2 + side3;
- }
- @Override
- public String toString() {
- if (checkLegality()) {
- return "\nSides: " + side1 + ", " + side2 + ", " + side3 + super.toString() + "\nArea: " + getArea() + "\nPerimeter: " + getPerimeter();
- } else
- return ""; //Display is empty if triangle is illegal.
- }
- @Override
- public boolean equals(Object other) { //Overriden equals class if the sides are the same
- if (other == null || getClass() != other.getClass()) {
- return false;
- }
- Triangle o = (Triangle)other;
- return o.side1 == this.side1 && o.side2 == this.side2 && o.side3 == this.side3;
- }
- }
- class TriangleTest {
- Triangle triangle;
- @BeforeEach
- void setUp() {
- triangle = new Triangle();
- }
- @Test
- void triangleEqualsMethodReturnsTrueIfTwoTrianglesHaveTheSameSides() {
- Triangle triangle1 = new Triangle(2, 2, 2);
- Triangle triangle2 = new Triangle(2, 2, 2);
- assertTrue(triangle1.equals(triangle2));
- }
- @Test
- void superclassEqualsMethodReturnsFalseIfTwoTrianglesHaveTheSameSides() {
- GeometricObject triangle1 = new Triangle(2, 2, 2);
- GeometricObject triangle2 = new Triangle(2, 2, 2);
- assertTrue(triangle1.equals(triangle2));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement