Skip to content
Open
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
33 changes: 32 additions & 1 deletion circle.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,40 @@


def area(r):
"""
Принимает радиус, возвращает площадь круга

Параметр:
r (int): радиус
Возвращаемое значачение:
math.pi * r * r (float): площадь круга

Примеры:
area(3) --> 9pi
area(2) --> 4pi
"""

if r <= 0:
raise ValueError("radius can't be negative or equal to zero")

return math.pi * r * r


def perimeter(r):
return 2 * math.pi * r
"""
Принимает радиус, возвращает периметр круга

Параметр:
r (int): радиус
Возвращаемое значение:
2 * math.pi * r (float): периметр круга

Примеры:
perimeter(3) --> 6pi
perimeter(2) --> 4pi
"""

if r <= 0:
raise ValueError("radius can't be or equal to zero")

return 2 * math.pi * r
49 changes: 48 additions & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,4 +7,51 @@
## Perimeter
- Circle: P = 2πR
- Rectangle: P = 2a + 2b
- Square: P = 4a
- Square: P = 4a
---
*Hash of the commit, which the following documentation was added in:* `[3fea8dcd2794d25b67fc722559d68d46335c3a1b](https://github.com/MurzikKrot/geometric_lib/commit/3fea8dcd2794d25b67fc722559d68d46335c3a1b)`
# **[Сircle.py](https://github.com/MurzikKrot/geometric_lib/blob/lab_work_2_466894/circle.py) description**
This file contains 2 functions `area` and `perimeter`.
## **area**
This function calculates an area of a circle of given radius.
### Parameters
**`r`** - radius of the circle of type `int` .
### Return Value
Area of the circle of type `float`.
### Examples
\(pi rounded to 3,14)
- `area(5)` --> `78,5`
- `area(6)` --> `113,04`

## **perimeter**
This function calculates a perimeter of a circle of given radius.
### Parameters
**`r`** - radius of the circle of type `int` .
### Return Value
Perimeter of the circle of type `float`.
### Examples
\(pi rounded to 3,14)
- `perimeter(5)` --> `31,4`
- `perimeter(6)` --> `37,68`
---
# **[Square.py](https://github.com/MurzikKrot/geometric_lib/blob/lab_work_2_466894/square.py) description**
This file contains 2 functions `area` and `perimeter`.
## **area**
This function calculates an area of a square of given length of a side.
### Parameters
**`a`** - length of a side of the square of type `int` .
### Return Value
Area of the square of tupe `int`.
### Examples
- `area(5)` --> `25`
- `area(6)` --> `36`

## **perimeter**
This function calculates a perimeter of a square of given length of a side.
### Parameters
**`a`** - length of a side of the square of type `int` .
### Return Value
Perimeter of the square of tнpe `int`.
### Examples
- `perimeter(5)` --> `20`
- `perimeter(6)` --> `24`
44 changes: 44 additions & 0 deletions rectangle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
def area(a, b):
"""
Принимает длину и ширину, возвращает площадь прямоугольника

Параметры:
a (int): длина
h (int): ширина
Возвращаемое значачение:
a * h (int): площадь прямоугольника

Примеры:
area(3, 5) --> 15
area(1, 2) --> 2
"""

if a <= 0:
raise ValueError("length can't be negative or equal to zero")
elif b <= 0:
raise ValueError("width can't be negative or equal to zero")

return a * b


def perimeter(a, b):
"""
Принимает длину и ширину, возвращает периметр прямоугольника

Параметры:
a (int): длина
h (int): ширина
Возвращаемое значачение:
(a + h)*2 (int): периметр прямоугольника

Примеры:
perimeter(3, 5) --> 16
perimeter(1, 2) --> 6
"""

if a <= 0:
raise ValueError("length can't be negative or equal to zero")
elif b <= 0:
raise ValueError("width can't be negative or equal to zero")

return (a + b)*2
32 changes: 32 additions & 0 deletions square.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,39 @@

def area(a):
"""
Принимает длину стороны квадрата, возвращает его площадь

Параметр:
a (int): длина стороны квадрата
Возвращаемое значение:
a * a (int): площадь квадрата

Примеры:
area(3) --> 9
area(2) --> 4
"""

if a <= 0:
raise ValueError("length can't be negative or equal to zero")

return a * a


def perimeter(a):
"""
Принимает длину стороны квадрата, возвращает его периметр

Параметр:
a (int): длина стороны квадрата
Возвращаемое значение:
4 * a (int): периметр квадрата

Примеры:
perimeter(3) --> 12
perimeter(2) --> 8
"""

if a <= 0:
raise ValueError("length can't be negative or equal to zero")

return 4 * a
20 changes: 20 additions & 0 deletions testCircle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import unittest
import circle


class TestCircle(unittest.TestCase):
def test_area(self):
self.assertAlmostEqual(circle.area(3), 28.274, 3)
self.assertAlmostEqual(circle.area(2), 12.566, 3)

self.assertRaises(ValueError, circle.area, -5)

def test_perimeter(self):
self.assertAlmostEqual(circle.perimeter(3), 18.850, 3)
self.assertAlmostEqual(circle.perimeter(2), 12.566, 3)

self.assertRaises(ValueError, circle.perimeter, -5)


if __name__ == '__main__':
unittest.main()
24 changes: 24 additions & 0 deletions testRectangle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import unittest
import rectangle


class TestRectangle(unittest.TestCase):
def test_area(self):
self.assertEqual(rectangle.area(3, 5), 15)
self.assertEqual(rectangle.area(1, 2), 2)

self.assertRaises(ValueError, rectangle.area, -5, 1)
self.assertRaises(ValueError, rectangle.area, 5, -1)
self.assertRaises(ValueError, rectangle.area, -5, -1)

def test_perimeter(self):
self.assertEqual(rectangle.perimeter(3, 5), 16)
self.assertEqual(rectangle.perimeter(1, 2), 6)

self.assertRaises(ValueError, rectangle.perimeter, -5, 1)
self.assertRaises(ValueError, rectangle.perimeter, 5, -1)
self.assertRaises(ValueError, rectangle.perimeter, -5, -1)


if __name__ == '__main__':
unittest.main()
20 changes: 20 additions & 0 deletions testSquare.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import unittest
import square


class Testsquare(unittest.TestCase):
def test_area(self):
self.assertEqual(square.area(3), 9)
self.assertEqual(square.area(2), 4)

self.assertRaises(ValueError, square.area, -5)

def test_perimeter(self):
self.assertEqual(square.perimeter(3), 12)
self.assertEqual(square.perimeter(2), 8)

self.assertRaises(ValueError, square.perimeter, -5)


if __name__ == '__main__':
unittest.main()
24 changes: 24 additions & 0 deletions testTriangle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,24 @@
import unittest
import triangle


class TestTriangle(unittest.TestCase):
def test_area(self):
self.assertEqual(triangle.area(3, 5), 7.5)
self.assertEqual(triangle.area(1, 2), 1.0)

self.assertRaises(ValueError, triangle.area, -5, 1)
self.assertRaises(ValueError, triangle.area, 5, -1)
self.assertRaises(ValueError, triangle.area, -5, -1)

def test_perimeter(self):
self.assertEqual(triangle.perimeter(3, 5, 6), 14)
self.assertEqual(triangle.perimeter(1, 2, 3), 6)

self.assertRaises(ValueError, triangle.perimeter, -5, 1, 3)
self.assertRaises(ValueError, triangle.perimeter, 5, -1, 3)
self.assertRaises(ValueError, triangle.perimeter, -5, -1, -3)


if __name__ == '__main__':
unittest.main()
47 changes: 47 additions & 0 deletions triangle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,47 @@
def area(a: int, h: int):
"""
Принимает длину основания и высоту, возвращает площадь треугольника

Параметры:
a (int): длина основания
h (int): высота
Возвращаемое значение:
a * h / 2 (float): площадь треугольника

Примеры:
area(3, 5) --> 7.5
area(1, 2) --> 1.0
"""

if a <= 0:
raise ValueError("length can't be negative or equal to zero")
elif h <= 0:
raise ValueError("height can't be negative or equal to zero")

return a * h / 2


def perimeter(a, b, c):
"""
Принимает длины 3-х сторон, возвращает периметр треугольника

Параметры:
a (int): длина 1 стороны
b (int): длина 2 стороны
c (int): длина 3 стороны
Возвращаемое значение:
a + b + c (int): периметр треугольника

Примеры:
perimeter(3, 5, 6) --> 14
perimeter(1, 2, 3) --> 6
"""

if a <= 0:
raise ValueError("length can't be negative or equal to zero")
elif b <= 0:
raise ValueError("length can't be negative or equal to zero")
elif c <= 0:
raise ValueError("length can't be negative or equal to zero")

return a + b + c