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
46 changes: 46 additions & 0 deletions .github/workflows/CICD.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: CI - Run Unit Test

on:
push:
branches: [ "No5" ]
pull_request:
branches: [ "No5" ]
workflow_dispatch:

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]

steps:
- name: Check out Repository
uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Display Python version
run: python -c "import sys; print(sys.version)"

- name: Set up Python
uses: actions/setup-python@v4.7.1
with:
python-version: 3.8

- name: Run My Step
id: myStep
run: echo "::set-output name=myOutput::some value"

- name: Set Output Variable
run: echo "myOutput=${{ steps.myStep.outputs.myOutput }}" >> $GITHUB_ENV

- name: Install Dependencies
run: |
echo "There are no dependencies!"
- name: Run Unit Tests
run: |
python -m unittest discover -s ./tests -p "test_*.py"
46 changes: 46 additions & 0 deletions .github/workflows/cicd.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
name: CICD - Run Unit Test

on:
push:
branches: [ "No5" ]
pull_request:
branches: [ "No5" ]
workflow_dispatch:

jobs:
build:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest]

steps:
- name: Check out Repository
uses: actions/checkout@v4

- name: Set up Python ${{ matrix.python-version }}
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Display Python version
run: python -c "import sys; print(sys.version)"

- name: Set up Python
uses: actions/setup-python@v4.7.1
with:
python-version: 3.8

- name: Run My Step
id: myStep
run: echo "::set-output name=myOutput::some value"

- name: Set Output Variable
run: echo "myOutput=${{ steps.myStep.outputs.myOutput }}" >> $GITHUB_ENV

- name: Install Dependencies
run: |
echo "There are no dependencies!"
- name: Run Unit Tests
run: |
python -m unittest discover -s ./tests -p "test_*.py"
8 changes: 8 additions & 0 deletions .idea/.gitignore

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/geometric_lib.iml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

7 changes: 7 additions & 0 deletions .idea/misc.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions .idea/modules.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/vcs.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Binary file added __pycache__/circle.cpython-311.pyc
Binary file not shown.
Binary file added __pycache__/rectangle.cpython-311.pyc
Binary file not shown.
Binary file added __pycache__/square.cpython-311.pyc
Binary file not shown.
Binary file added __pycache__/test_circle.cpython-311.pyc
Binary file not shown.
Binary file added __pycache__/test_rectangle.cpython-311.pyc
Binary file not shown.
Binary file added __pycache__/test_square.cpython-311.pyc
Binary file not shown.
Binary file added __pycache__/test_triangle.cpython-311.pyc
Binary file not shown.
Binary file added __pycache__/triangle.cpython-311.pyc
Binary file not shown.
28 changes: 26 additions & 2 deletions circle.py
Original file line number Diff line number Diff line change
@@ -1,10 +1,34 @@
import math

'''Подключит библиотеку math'''

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

Example:
Input: 4
Output: 50.26548245743669

'''
# Проверка на корректность ввода
if not isinstance(r, (int, float)) or r < 0 or r > 10**10:
return "wrong input"


return math.pi * r * r


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

Example:
Input: 4
Output: 25.132741228718345

'''
# Проверка на корректность ввода
if not isinstance(r, (int, float)) or r < 0 or r > 10**10:
return "wrong input"

return 2 * math.pi * r

133 changes: 132 additions & 1 deletion docs/README.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@

# Math formulas
## Area
- Circle: S = πR²
Expand All @@ -7,4 +8,134 @@
## Perimeter
- Circle: P = 2πR
- Rectangle: P = 2a + 2b
- Square: P = 4a
- Square: P = 4a
# Oбщее описание решения:
**Geometric Library** - библиотека Python, предназначенная для расчета ключевых геометрических характеристик простейших фигур: круга, квадрата, прямоугольника и треугольника. С её помощью можно вычислять площадь и периметр (или длину окружности) данных фигур, что делает её удобным инструментом для решения геометрических задач в различных приложениях, включая учебные проекты.

Основные возможности библиотеки:

- Вычисление площади и периметра квадрата.
- Вычисление площади и длины окружности круга.
- Вычисление площади и периметра прямоугольника.
- Вычисление площади и периметра треугольника.

# ** Oписание каждой функции с примерами вызова**
## **Rectangle**
```
def area(a, b):
'''Принимает число a и b (длина и ширина прямоугольника), возвращает площадь прямоугольника'''
return a * b

def perimeter(a, b):
'''Принимает число a и b (длина и ширина прямоугольника), возвращает периметр прямоугольника'''
return (a + b)*2
```
_Example:_
_Input: `5,6`_
_Output: `30 22`_


## **Triangle**
```
def area(a, h):
'''Принимает число a, h (основание и высота треугольника) возвращает площадь треугольника'''
return a * h / 2
def perimeter(a, b, c):
'''Принимает число a, b, c (стороны треугольника), возвращает периметр треугольника'''
return a + b + c
```
_Example:_
_Input: `1,2` `1,2,3`_
_Output: `1 6`_


## **Square**
```
def area(a):
'''Принимает число a (сторона квадрата), возвращает площадь квадрата'''
return a * a

def perimeter(a):
'''Принимает число a (сторона квадрата), возвращает периметр квадрата'''
return 4 * a
```
_Example:_
_Input: `3`_
_Output: `9 12`_

## **Circle**
```
import math
'''Подключит библиотеку math'''

def area(r):
'''Принимает число r (радиус круга), возвращает площадь круга'''
return math.pi * r * r


def perimeter(r):
'''Принимает число r (радиус круга), возвращает периметр круга'''
return 2 * math.pi * r
```
_Example:_
_Input: `4`_
_Output: `50.24 25.12`_

# История изменения проекта с хешами комитов

- _**commit 4f6015fb35ea095d4e57523ffc2b4c987bb1a035**_
```
Author: Hoang Ngoc Dat <407880@niuitmo.ru>
Date: Thu Oct 3 12:43:35 2024 +0300

Update Readme.md file
```

- _**commit 7e6c710e085053112323b22d896087f3639a9102**_
```
Author: Hoang Ngoc Dat <407880@niuitmo.ru>
Date: Thu Oct 3 12:19:51 2024 +0300

Add more to explain
```

- _**commit 746c3a18de806c396070b8a71e764e69c3d7176d**_
```
Author: Hoang Ngoc Dat <407880@niuitmo.ru>
Date: Thu Oct 3 11:43:35 2024 +0300

Add comment to circle.py
```

- _**commit c5c3db2f82030561f4f7669a87429941126d3a35**_
```
Author: Hoang Ngoc Dat <407880@niuitmo.ru>
Date: Thu Oct 3 11:42:59 2024 +0300

Add comment to square.py
```

- _**commit c5c3db2f82030561f4f7669a87429941126d3a35**_
```
Author: Hoang Ngoc Dat <407880@niuitmo.ru>
Date: Thu Oct 3 11:42:10 2024 +0300

Add comment to triangle.py
```

- _**commit 0be759905089e1944aea66b89b7f6fb212466629**_
```
Author: Hoang Ngoc Dat <407880@niuitmo.ru>
Date: Thu Oct 3 11:41:42 2024 +0300

Add comment to rectangle.py
```









33 changes: 33 additions & 0 deletions rectangle.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@

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

Example:
Input: 5 6
Output: 30

'''
# Проверка на корректность ввода
if not isinstance(a, (int, float)) or not isinstance(b, (int, float)) or a < 0 or b < 0 or a > 10**10 or b > 10**10:
return "wrong input"

return a * b

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

Example:
Input: 5 6
Output: 22

'''

# Проверка на корректность ввода
if not isinstance(a, (int, float)) or not isinstance(b, (int, float)) or a < 0 or b < 0 or a > 10**10 or b > 10**10:
return "wrong input"

return (a + b)*2


28 changes: 26 additions & 2 deletions square.py
Original file line number Diff line number Diff line change
@@ -1,7 +1,31 @@

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

Example:
Input: 3
Output: 9

'''

# Проверка на корректность ввода
if not isinstance(a, (int, float)) or a < 0 or a > 10**10:
return "wrong input"

return a * a


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

Example:
Input: 3
Output: 12

'''

# Проверка на корректность ввода
if not isinstance(a, (int, float)) or a < 0 or a > 10**10:
return "wrong input"

return 4 * a
Loading