diff --git a/circle.py b/circle.py new file mode 100644 index 0000000..3f96b7d --- /dev/null +++ b/circle.py @@ -0,0 +1,11 @@ +import math + +class Circle: + def __init__(self, radius): + self.radius = radius + + def calculate_perimeter(self): + return 2 * math.pi * self.radius + + def calculate_area(self): + return math.pi * (self.radius ** 2) diff --git a/flask_app.py b/flask_app.py index 8897fa2..88c761d 100644 --- a/flask_app.py +++ b/flask_app.py @@ -1,6 +1,6 @@ from flask import Flask, render_template, request - from helper import perform_calculation, convert_to_float +from circle import Circle app = Flask(__name__) # create the instance of the flask class @@ -38,3 +38,44 @@ def calculate(): return render_template('calculator.html', printed_result="You cannot divide by zero") return render_template('calculator.html') + + +@app.route('/calculate_perimeter_area', methods=['GET', 'POST']) +def calc_per_area(): + perimeter_result = None + area_result = None + + if request.method == 'POST': + radius = request.form['radius'] + + try: + radius = convert_to_float(radius) + except ValueError: + return render_template('circle.html', printed_result="Please enter a valid number for the radius.") + + if radius <= 0: + return render_template('circle.html', printed_result="Radius must be a positive number.") + + circle = Circle(radius) + perimeter_result = circle.calculate_perimeter() + area_result = circle.calculate_area() + + print("Perimeter Result:", perimeter_result) + print("Area Result:", area_result) + + return render_template('circle.html', perimeter_result=perimeter_result, area_result=area_result) + +if __name__ == '__main__': + app.run(debug=True) + + +#@app.route('/circle', methods=['GET', 'POST']) +#def circle_perimeter(): + # if request.method == 'POST': + # radius = float(request.form['radius']) + # #circle = Circle(radius) + #perimeter = circle.calculate_perimeter() + # perimeter = calculate_perimeter() # Gayatri was here + # return render_template('circle_perimeter.html', perimeter=perimeter) + + # return render_template('circle_perimeter.html') diff --git a/templates/circle.html b/templates/circle.html new file mode 100644 index 0000000..debfdd0 --- /dev/null +++ b/templates/circle.html @@ -0,0 +1,19 @@ + + + + + + Circle Perimeter Calculator + + +

Circle Perimeter Calculator

+
+ + + +
+ {% if perimeter %} +

Perimeter of the circle: {{ perimeter }}

+ {% endif %} + + diff --git a/templates/layout.html b/templates/layout.html index 8de2e62..dc89d09 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -12,6 +12,7 @@

Home

@@ -21,4 +22,4 @@

Home

{% endblock %} - \ No newline at end of file + diff --git a/test_circle.py b/test_circle.py new file mode 100644 index 0000000..89f9c36 --- /dev/null +++ b/test_circle.py @@ -0,0 +1,15 @@ + +from circle import Circle +import math + +def test_calculate_perimeter(): + # testing calculate_perimeter + circle = Circle(radius=5) + expected_perimeter = 2 * math.pi * 5 + assert circle.calculate_perimeter() == round(expected_perimeter, 2) + +def test_calculate_area(): + # testing calculate_area + circle = Circle(radius=5) + expected_area = math.pi * 5**2 + assert circle.calculate_area() == round(expected_area, 2) \ No newline at end of file