Skip to main content

The library allows you to calculate the area of geometric shapes.

Project description

Библиотека для Python для расчета площади геометрических фигур

Библиотека позволяет рассчитывать площадь геометрических фигур:

  • Без указания типа рассчитываемой фигуры
    • треугольника по трем сторонам;
    • окружности по радиусу;
  • C указанием типа рассчитываемой фигуры
    • прямоугольника;
    • элипса;
    • трапеции.

А также позволяет определить тип рассчитаной фигуры, даже когда тип фигуры не определен в compile time

Стек

Python Unittest

Быстрый старт

Установка

В установленное и активированное виртуальное окружение проекта необходимо импортировать библиотеку.

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 возвращается ошибка.

Как запустить тесты

  1. Перейдите в директорию tests cd tests;
  2. Выполните команду python3 tests.py.

Автор

Александр Бучельников

Personal-Website Telegram LinkedIn E-mail

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

square_calculator_library-0.0.2.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

square_calculator_library-0.0.2-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

Details for the file square_calculator_library-0.0.2.tar.gz.

File metadata

File hashes

Hashes for square_calculator_library-0.0.2.tar.gz
Algorithm Hash digest
SHA256 aea5f685eda50b4a18e7e1f9cbe74be7cd439b48f049419e5fe3c520fb813b9e
MD5 b7f7f9e01ad84fa62fa03c28c305411e
BLAKE2b-256 b789263b2566d8e67d7cc4b72d35f5d49b5fc510ac845656477c221824166f2d

See more details on using hashes here.

File details

Details for the file square_calculator_library-0.0.2-py3-none-any.whl.

File metadata

File hashes

Hashes for square_calculator_library-0.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 2a3d05c141cf34c5dbb7d499381eb921f7a6ce02a879b13dffcd18e798dbfa96
MD5 c1a8930a7d828869f3034daef358b8a0
BLAKE2b-256 c68500da372a2dfd66c4727112f88f2dff8dfa348d23cfb0dbdfe3ef360bd2b7

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page