Advertisement
Guest User

Untitled

a guest
Nov 15th, 2019
148
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.70 KB | None | 0 0
  1. import org.junit.jupiter.api.BeforeEach;
  2. import org.junit.jupiter.api.Test;
  3. import static org.junit.jupiter.api.Assertions.*;
  4.  
  5. public class SimpleGeometricObject { //superclass
  6. private String color = "white";
  7. private boolean filled;
  8. private java.util.Date dateCreated;
  9.  
  10. public SimpleGeometricObject() {
  11. dateCreated = new java.util.Date();
  12. }
  13.  
  14. public SimpleGeometricObject(String color, boolean filled) {
  15. this.color = color;
  16. this.filled = filled;
  17. dateCreated = new java.util.Date();
  18. }
  19.  
  20. public String getColor() {
  21. return color;
  22. }
  23. public void setColor(String color) {
  24. this.color = color;
  25. }
  26.  
  27. public boolean isFilled() {
  28. return filled;
  29. }
  30. public void setFilled(boolean filled) {
  31. this.filled = filled;
  32. }
  33.  
  34. public java.util.Date getDateCreated() {
  35. return dateCreated;
  36. }
  37.  
  38. public String toString() {
  39. return "\nCreated on: " + dateCreated + "\nColor: " + color + "\nFilled: " + filled;
  40. }
  41. }
  42.  
  43. class TriangleProgram {
  44. public static void main(String[] args) {
  45. Triangle triangle1 = new Triangle(); //Legal triangle with sides of 1
  46. System.out.println(triangle1.toString());
  47.  
  48. Triangle triangle2 = new Triangle(1, 1, 1);
  49. System.out.println(triangle2.toString());
  50.  
  51. Triangle triangle3 = new Triangle(1, 2, 2);
  52. System.out.println(triangle3.toString());
  53.  
  54. Triangle triangle4 = new Triangle(1, 2, 2);
  55. System.out.println(triangle4.toString());
  56.  
  57. Triangle triangle5 = new Triangle(-1, 1, 1); //Illegal triangle, should not be displayed
  58. System.out.println(triangle5.toString());
  59.  
  60.  
  61. System.out.println("Is the third and the fourth triangle the same triangle? " + triangle3.equals(triangle4));
  62. }
  63. }
  64. class Triangle extends SimpleGeometricObject { //Triangle subclass of geomobj
  65. private double side1;
  66. private double side2;
  67.  
  68. private double side3;
  69.  
  70. public Triangle() { //No-arg
  71. this.side1 = this.side2 = this.side3 = 1.0;
  72. setColor("Yellow");
  73. }
  74.  
  75. public Triangle(double sides) { //Likesidet trekant er blå
  76. this.side1 = this.side2 = this.side3 = sides;
  77. setColor("Blue");
  78. setFilled(true);
  79. }
  80.  
  81.  
  82. public Triangle(double side1, double side2, double side3) { //Triangle
  83. super("Red", true);
  84. this.side1 = side1;
  85. this.side2 = side2;
  86. this.side3 = side3;
  87. }
  88.  
  89. public boolean checkLegality() {
  90. return (side1 > 0 && side2 > 0 && side3 > 0) && (side1 + side2 > side3 && side1 + side3 > side2 && side2 + side3 > side1);
  91. }
  92. public double getSide1() { //Getter side1
  93. return side1;
  94. }
  95. public void setSide1(double side1) { //Setter side1
  96. this.side1 = side1;
  97. }
  98. public double getSide2() { //Getter side2
  99. return side2;
  100. }
  101. public void setSide2(double side2) { //Setter side2
  102. this.side2 = side2;
  103. }
  104. public double getSide3() { //Getter side3
  105. return side3;
  106. }
  107.  
  108. public void setSide3(double side3) { //Setter side3
  109. this.side3 = side3;
  110. }
  111. public double getArea() {
  112. double s = (side1 + side2 + side3) / 2.0;
  113. return Math.pow(s * (s - side1) * (s - side2) * (s - side3), 0.5);
  114. }
  115.  
  116. public double getPerimeter() {
  117. return side1 + side2 + side3;
  118. }
  119.  
  120. @Override
  121. public String toString() {
  122. if (checkLegality()) {
  123. return "\nSides: " + side1 + ", " + side2 + ", " + side3 + super.toString() + "\nArea: " + getArea() + "\nPerimeter: " + getPerimeter();
  124. } else
  125. return ""; //Display is empty if triangle is illegal.
  126. }
  127. @Override
  128. public boolean equals(Object other) { //Overriden equals class if the sides are the same
  129. if (other == null || getClass() != other.getClass()) {
  130. return false;
  131. }
  132. Triangle o = (Triangle)other;
  133. return o.side1 == this.side1 && o.side2 == this.side2 && o.side3 == this.side3;
  134. }
  135.  
  136. }
  137.  
  138. class TriangleTest {
  139. Triangle triangle;
  140. @BeforeEach
  141. void setUp() {
  142. triangle = new Triangle();
  143. }
  144.  
  145. @Test
  146. void triangleEqualsMethodReturnsTrueIfTwoTrianglesHaveTheSameSides() {
  147. Triangle triangle1 = new Triangle(2, 2, 2);
  148. Triangle triangle2 = new Triangle(2, 2, 2);
  149. assertTrue(triangle1.equals(triangle2));
  150. }
  151.  
  152. @Test
  153. void superclassEqualsMethodReturnsFalseIfTwoTrianglesHaveTheSameSides() {
  154. GeometricObject triangle1 = new Triangle(2, 2, 2);
  155. GeometricObject triangle2 = new Triangle(2, 2, 2);
  156. assertTrue(triangle1.equals(triangle2));
  157. }
  158.  
  159. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement