The library allows you to calculate the area of geometric shapes.
Project description
Библиотека для Python для расчета площади геометрических фигур
Библиотека позволяет рассчитывать площадь геометрических фигур:
- Без указания типа рассчитываемой фигуры
- треугольника по трем сторонам;
- окружности по радиусу;
- C указанием типа рассчитываемой фигуры
- прямоугольника;
- элипса;
- трапеции.
А также позволяет определить тип рассчитаной фигуры, даже когда тип фигуры не определен в compile time
Стек
Быстрый старт
Установка
В установленное и активированное виртуальное окружение проекта необходимо импортировать библиотеку.
pip install square-calculator-library==0.0.1
Импорт
from square_calculator.calculator import Square
Применение
sq = Square(a=3, b=4, c=5)
print(sq.calculate())
>> 6.0
print(sq.figure_type)
>> 'rectangular triangle'
Как использовать
Библиотека помогает рассчитывать площадь геометрической фигуры. По умолчанию рассчитывает площадь треугольника по трем сторонам или окружности по радиусу.
На данный момент билиотека позволяет рассчитать площадь следующих геометрических фигур:
| Тип фигуры | Необходимые аргументы | Атрибуты экземпляра | Пример |
|---|---|---|---|
| Окружность | radius | None | sq = Square(a=3)>> sq.calculate() |
| Треугольник | a, b, c (длины трёх сторон) | None | sq = Square(a=3, b=4, c=6)>> sq.calculate() |
| Прямоугольный треугольник | a, b, c (длины трёх сторон) | None | sq = Square(a=3, b=4, c=5)>> sq.calculate() |
| Квадрат | a, b | figure_type | sq = Square(a=3, b=4)>> sq.figure_type = constants[2] #rectangle>> sq.calculate() |
| Эллипс | a, b | figure_type | sq = Square(a=3, b=4)>> sq.figure_type = constants[1] #ellipse>> sq.calculate() |
| Трапеция | a, b, h (длины оснований и высоты) | figure_type, trapezoid_h | sq = Square(a=3, b=4)>> sq.figure_type = constants[4] #trapezoid>> sq.trapezoid_h = 5>> sq.calculate() |
Для корректной работы библиотеки при создании объекта класса необходимо передавать именованые аргументы, имена могут быть произвольными.
При создании объекта класса Square можно передавать неограниченное число параметров. Это позволяет расширять и дорабатывать библиотеку, добавляя в неё алгоритмы рассчетов любых геометрических фигур и возможности рассчитывать одни и те же геометрические фигуры различными способами.
[!IMPORTANT] При создании экземпляра класса Square необходимо передавать только именованные параметры Неправильно:
sq = Square(3, 4, 5)Правильно:
sq = Square(a=3, b=4, c=5)
Дополнительно рассчитывает площадь соответственно элипса, прямоугольника или трапеции если переопределить атрибут экземпляра на тип фигуры:
- 'ellipse';
- 'rectangle';
- 'trapezoid'.
[!TIP] Тип фигур можно задавать, используя кортеж FIGURE_TYPES из файла constants.
Библиотека позволет определить тип рассчитаной фигуры после её вычисления, даже, если тип фигуры не был задан изначально. Методы класса сами определят тип рассчитаной фигуры.
Получить тип можно через атрибут figure_type, например, так:
sq = Square(a=3, b=4, c=5)
print(sq.figure_type)
>> 'rectangular triangle'
Тесты
С использованием библиотеки Unittest написанны следующие тесты:
-
Проверка, что при передаче не положительных значений возвращается ожидаемая ошибка.
-
Проверка, что при передаче допустимых значений расчёты соответствуют ожидаемым.
-
Проверка, что при передаче допустимых значений тип фигуры соответствует ожидаемой.
-
Проверка, что при попытке рассчитать площадь любых геометрических фигур кроме треугольника и окружности без назначений атрибутам экземпляра параметров figure_type и trapezoid_h возвращается ошибка.
Как запустить тесты
- Перейдите в директорию tests
cd tests; - Выполните команду
python3 tests.py.
Автор
Александр Бучельников
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file square_calculator_library-0.0.2.tar.gz.
File metadata
- Download URL: square_calculator_library-0.0.2.tar.gz
- Upload date:
- Size: 7.3 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
aea5f685eda50b4a18e7e1f9cbe74be7cd439b48f049419e5fe3c520fb813b9e
|
|
| MD5 |
b7f7f9e01ad84fa62fa03c28c305411e
|
|
| BLAKE2b-256 |
b789263b2566d8e67d7cc4b72d35f5d49b5fc510ac845656477c221824166f2d
|
File details
Details for the file square_calculator_library-0.0.2-py3-none-any.whl.
File metadata
- Download URL: square_calculator_library-0.0.2-py3-none-any.whl
- Upload date:
- Size: 8.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2a3d05c141cf34c5dbb7d499381eb921f7a6ce02a879b13dffcd18e798dbfa96
|
|
| MD5 |
c1a8930a7d828869f3034daef358b8a0
|
|
| BLAKE2b-256 |
c68500da372a2dfd66c4727112f88f2dff8dfa348d23cfb0dbdfe3ef360bd2b7
|