Skip to content

Commit 8efc71e

Browse files
Added functions in Perimeter.java (TheAlgorithms#3739)
* Added functions and removed main * deleted perimeterTest.java deleted perimeterTest.java to create PerimeterTest.java * Recreated PerimeterTest.java Renamed perimeterTest.java to PerimeterTest.java and added test cases * deleted PerimeterTest.java * Recreated PerimeterTest.java Recreated PerimeterTest.java from perimeterTest.java
1 parent 957f633 commit 8efc71e

File tree

3 files changed

+86
-61
lines changed

3 files changed

+86
-61
lines changed
Lines changed: 35 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,56 @@
11
package com.thealgorithms.maths;
22

3+
// Perimeter of different 2D geometrical shapes
34
public class Perimeter {
45

5-
public static void main(String[] args) {
6-
System.out.println(perimeter_polygon(5, 4));
7-
System.out.println(perimeter_rectangle(3, 4));
8-
System.out.printf("%,3f", circumference(5));
6+
/**
7+
* Calculate the Perimeter of regular polygon (equals sides)
8+
* Examples of regular polygon are Equilateral Triangle, Square, Regular Pentagon, Regular Hexagon.
9+
*
10+
* @param n for number of sides.
11+
* @param side for length of each side.
12+
* @return Perimeter of given polygon
13+
*/
14+
public static float perimeterRegularPolygon(int n, float side) {
15+
return n * side;
916
}
1017

11-
// Perimeter of different 2D geometrical shapes
1218
/**
13-
*Calculate the Perimeter of polygon.
14-
* @parameter length of side.
15-
* @parameter number of sides.
16-
* @return Perimeter of given polygon
19+
* Calculate the Perimeter of irregular polygon (unequals sides)
20+
* Examples of irregular polygon are scalent triangle, irregular quadrilateral, irregular Pentagon, irregular Hexagon.
21+
*
22+
* @param side1 for length of side 1
23+
* @param side2 for length of side 2
24+
* @param side3 for length of side 3
25+
* @param sides for length of remaining sides
26+
* @return Perimeter of given trapezoid.
1727
*/
18-
public static float perimeter_polygon(int n, float side) {
19-
float perimeter = n * side;
28+
public static float perimeterIrregularPolygon(float side1, float side2, float side3, float... sides) {
29+
float perimeter = side1 + side2 + side3;
30+
for (float side : sides) {
31+
perimeter += side;
32+
}
2033
return perimeter;
2134
}
2235

2336
/**
24-
*Calculate the Perimeter of rectangle.
25-
* @parameter length and breadth.
37+
* Calculate the Perimeter of rectangle
38+
*
39+
* @param length for length of rectangle
40+
* @param breadth for breadth of rectangle
2641
* @return Perimeter of given rectangle
2742
*/
28-
public static float perimeter_rectangle(float length, float breadth) {
29-
float perimeter = 2 * (length + breadth);
30-
return perimeter;
43+
public static float perimeterRectangle(float length, float breadth) {
44+
return 2 * (length + breadth);
3145
}
3246

3347
/**
34-
*Calculate the circumference of circle.
35-
* @parameter radius of circle.
48+
* Calculate the Perimeter or Circumference of circle.
49+
*
50+
* @param r for radius of circle.
3651
* @return circumference of given circle.
3752
*/
38-
public static double circumference(float r) {
39-
double circumference = 2 * Math.PI * r;
40-
return circumference;
53+
public static double perimeterCircle(float r) {
54+
return 2 * Math.PI * r;
4155
}
4256
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
package com.thealgorithms.maths;
2+
3+
import org.junit.jupiter.api.Assertions;
4+
import org.junit.jupiter.api.Test;
5+
6+
public class PerimeterTest {
7+
8+
// Perimeter of Regular polygon
9+
@Test
10+
void testcase1() {
11+
Assertions.assertEquals(20.0, Perimeter.perimeterRegularPolygon(4, 5));
12+
}
13+
14+
@Test
15+
void testcase2() {
16+
Assertions.assertEquals(30.0, Perimeter.perimeterRegularPolygon(5, 6));
17+
}
18+
19+
// Perimeter of Rectangle
20+
@Test
21+
void testcase3() {
22+
Assertions.assertEquals(18.0, Perimeter.perimeterRectangle(4, 5));
23+
}
24+
25+
@Test
26+
void testcase4() {
27+
Assertions.assertEquals(14.0, Perimeter.perimeterRectangle(4, 3));
28+
}
29+
30+
// Circumference/Perimeter of a circle
31+
@Test
32+
void testcase5() {
33+
Assertions.assertEquals(31.41592653589793, Perimeter.perimeterCircle(5));
34+
}
35+
36+
@Test
37+
void testcase6() {
38+
Assertions.assertEquals(43.982297150257104, Perimeter.perimeterCircle(7));
39+
}
40+
41+
// Perimeter of Irregular polygon
42+
@Test
43+
void testcase7() {
44+
Assertions.assertEquals(12.0, Perimeter.perimeterIrregularPolygon(4, 5, 3));
45+
}
46+
47+
@Test
48+
void testcase8() {
49+
Assertions.assertEquals(21.0, Perimeter.perimeterIrregularPolygon(3, 4, 5, 3, 6));
50+
}
51+
}

src/test/java/com/thealgorithms/maths/perimeterTest.java

Lines changed: 0 additions & 40 deletions
This file was deleted.

0 commit comments

Comments
 (0)