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

Импорт

from square_calculator import calculator

Применение

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.1.tar.gz (7.9 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.1-py3-none-any.whl (8.8 kB view details)

Uploaded Python 3

File details

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

File metadata

File hashes

Hashes for square_calculator_library-0.0.1.tar.gz
Algorithm Hash digest
SHA256 102e0aff039d853898769a41488561ac7147c48f84bf65dbc82925ff11494eb4
MD5 43bbce24b732e4835cf3427d9f8aade3
BLAKE2b-256 d7c95377a3bd93be910693682bb8c68893b76cf1afce519d88f61773d5a97ae5

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for square_calculator_library-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 72afb78199f902fc484da7b349c7d37d0a613c414143bbe11d5f6c682c4a1847
MD5 cdf72a4b42e8306a5e597b61b4a53054
BLAKE2b-256 8e5cbc588057c5b804231213e895d7f83b3f8ca9e03db66089f0bd7eb3c46106

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