Create check_polygon.py (#4605)

* Create check_polygon.py

* Update check_polygon.py

* Update maths/check_polygon.py

* Update check_polygon.py

* Update check_polygon.py

Co-authored-by: John Law <johnlaw.po@gmail.com>
This commit is contained in:
Arghya Sarkar (ASRA) 2021-09-29 22:19:42 +05:30 committed by GitHub
parent 02bc4bf417
commit b9f18152b7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

31
maths/check_polygon.py Normal file
View File

@ -0,0 +1,31 @@
from typing import List
def check_polygon(nums: List) -> bool:
"""
Takes list of possible side lengths and determines whether a
two-dimensional polygon with such side lengths can exist.
Returns a boolean value for the < comparison
of the largest side length with sum of the rest.
Wiki: https://en.wikipedia.org/wiki/Triangle_inequality
>>> check_polygon([6, 10, 5])
True
>>> check_polygon([3, 7, 13, 2])
False
>>> check_polygon([])
Traceback (most recent call last):
...
ValueError: List is invalid
"""
if not nums:
raise ValueError("List is invalid")
nums.sort()
return nums.pop() < sum(nums)
if __name__ == "__main__":
import doctest
doctest.testmod()