Skip to content

Hidmund/geometric_lib

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Math formulas

Area

  • Circle: S = πR²
  • Rectangle: S = ab
  • Square: S = a²
  • Triangle: S = a*h/2

Perimeter

  • Circle: P = 2πR
  • Rectangle: P = 2a + 2b
  • Square: P = 4a
  • Triangle: P = a + b + c

Описание Решения

В зависимости от исходной фигуры на вход подаются определенные данные, проанализировав которые, мы сможем определить площадь и периметр фигуры

Описание каждой функции

Функция area

она получает на вход несколько чилел:

  • для прямоугольника - 2, функция возвращает произведение этих двух чисел (его сторон)
  • для треугольника - 2, функция возвращает поизведение его стороны на высоту, деленное на два
  • для квадрата - 1, функция возвращает квадрат его стороны
  • для круго - 1, функция возвращеет квадрат его радиуса, умноженный на pi

Примеры:

  • дан прямоугольник со сторонами 4 и 8, функция выведет их произведение = 32
  • дан треугольник со стороной 4 и высотой 8, функция выведет их произведение, деленное пополам = 16
  • дан квадрат со стороной 5, функция выведет значение равное квадрату его стороны = 25
  • дан круг с радиусом 5, функция выведет знаяение равное квадрату радиуса, умноженное на pi = 25*pi

Функция perimeter

она получает на вход 2 или 3 числа:

  • для прямоугольника - 2, и возвращает их удвоенную сумму
  • для треугольника - 3, и возвращает их сумму
  • для квадрата - 1, и возвращает его значение, умноженное на 4
  • для круга - 1, и возвращает его удвоенное значение умноженное на pi

Примеры:

  • дан прямоугольник со сторонами 4 и 8, функция выведет их удвоенную сумму = 24
  • дан треугольник со сторонами 4, 8, 7, функция выведет их сумму = 19
  • дан квадрат со стороной 5, функция выведет значение стороны, умноженное на 4 = 20
  • дан круг с радиусом 5, функция выведет его удвоенное значение умноженное на pi = 10*pi

Библиотека math

для выполнения математических и не только операций(в нашем случае для добавления значения pi)

CircleTestCase - test_area

self.assertAlmostEqual(SquareArea(2), math.pi * 2 * 2, точность=5)

Проверяет вычисление площади круга с радиусом 2.

self.assertAlmostEqual(SquareArea(0), "error")

Проверяет вычисление площади круга с радиусом 0. Выводится error

self.assertAlmostEqual(SquareArea(9223372036854775807), math.pi * 9223372036854775807 ** 2, точность=5)

Проверяет вычисление площади круга с очень большим радиусом, 9223372036854775807.

self.assertAlmostEqual(SquareArea(-8), "error")

Проверяет обработку отрицательного радиуса при вычислении площади. Выводится error.


CircleTestCase - test_perimeter

self.assertAlmostEqual(SquarePerimeter(2), 2 * math.pi * 2, точность=5)

Проверяет вычисление периметра окружности с радиусом 2.

self.assertAlmostEqual(SquarePerimeter(0), "error")

Проверяет, что периметр окружности с радиусом 0 равен 0. Выводится error

self.assertAlmostEqual(SquarePerimeter(9223372036854775807), 2 * math.pi * 9223372036854775807, точность=5)

Проверяет вычисление периметра окружности с очень большим радиусом.

self.assertAlmostEqual(SquarePerimeter(-6), "error")

Проверяет обработку отрицательного радиуса при вычислении периметра. Выводится error.


RectangleTestCase - test_area

self.assertEqual(RectangleArea(-2, -6), "error")

Проверяет прямоугольную область с отрицательными размерами. Выводится error

self.assertEqual(RectangleArea(0, 5), "error")

Проверяет, что площадь прямоугольника с одной стороной, равной 0, равна 0. Выводится error

self.assertEqual(RectangleArea(7, 2), 14)

Проверяет вычисление площади прямоугольника со сторонами 7x2; ожидается 14.

self.assertEqual(RectangleArea(9223372036854775807, 9223372036854775807), 9223372036854775807 ** 2)

Проверяет расчет площади для очень больших размеров прямоугольника.


RectangleTestCase - test_perimeter

self.assertEqual(RectanglePerimeter(-2, -6), "error")

Проверяет вычисление периметра прямоугольника с отрицательными размерами. Выводится error

self.assertEqual(RectanglePerimeter(0, 5), "error")

Проверяет вычисление периметра с одной стороной, равной 0. Выводится error

self.assertEqual(RectanglePerimeter(7, 2), 18)

Проверяет расчёт периметра прямоугольника со сторонами 7 и 2.

self.assertEqual(RectanglePerimeter(9223372036854775807, 9223372036854775807), 92233720368547758072 + 92233720368547758072)

Проверяет расчет периметра для очень больших размеров прямоугольника.


SquareTestCase - test_area

self.assertEqual(SquareArea(-5), "error")

Проверяет вычисление площади квадрата с отрицательной длиной стороны. Выводится error

self.assertEqual(SquareArea(0), "error")

Проверяет вычисление площади квадрата со стороной 0. Выводится error

self.assertEqual(SquareArea(9223372036854775807), 9223372036854775807 * 9223372036854775807)

Проверяет расчёт площади квадрата с очень большой длиной стороны.

self.assertEqual(SquareArea(10), 100)

Проверяет расчёт площади квадрата со стороной 10.


SquareTestCase - test_perimeter

self.assertEqual(SquarePerimeter(-5), "error")

Проверяет вычисление периметра квадрата с отрицательной длиной стороны. Выводится error

self.assertEqual(SquarePerimeter(0), "error")

Проверяет вычисление периметра квадрата со стороной 0. Выводится error

self.assertEqual(SquarePerimeter(9223372036854775807), 9223372036854775807 * 4)

Проверяет расчёт периметра для квадрата с очень большой длиной стороны.

self.assertEqual(SquarePerimeter(10), 40)

Проверяет расчёт периметра квадрата со стороной 10.


TriangleTestCase - test_area

self.assertEqual(TriangleArea(-4, -5), "error")

Проверяет площадь треугольника с отрицательным основанием и высотой. Выводится error

self.assertEqual(TriangleArea(3, 6), 9)

Проверяет вычисление площади треугольника с основанием 3 и высотой 6.

self.assertEqual(TriangleArea(9223372036854775807, 2), 9223372036854775807 * 2 / 2)

Проверяет вычисление площади для треугольника с очень большим основанием.

self.assertEqual(TriangleArea(7, 8), 28)

Проверяет расчёт площади треугольника с основанием 7 и высотой 8.


TriangleTestCase - test_perimeter

self.assertEqual(TrianglePerimeter(-4, -5, -6), "error")

Проверяет вычисление периметра треугольника с отрицательными длинами сторон. Вывод error.

self.assertEqual(TrianglePerimeter(3, 4, 5), 12)

Проверяет вычисление периметра треугольника со сторонами 3, 4, 5.

self.assertEqual(TrianglePerimeter(6, 8, 15), "error")

Проверяет расчёт периметра треугольника со сторонами 6, 8, 15. Проверка на a + b > c Выводится error

self.assertEqual(TrianglePerimeter(9223372036854775807, 9223372036854775807, 9223372036854775807), 9223372036854775807 * 3)

Проверяет вычисление периметра треугольника с очень большими сторонами.

История изменений проекта

Добавил новый файл - rectangle.py commit e3db881c2c48f7f52e02b5d80a4be8fb1cfcbf98

Добавил новый файл - triangle.py commit 9eae82cb57b69572687850567dfe7786ce6909df

Исправил ошибку в файле - rectangle.py commit c4bd0023306e8cac552cf2e898c65c58bd67d9d3

Добавил комментарии во все файлы commit 63079e254410c3be3b922b5df0a82a61a447e5e0

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • Python 100.0%