Files
python/exercises/triangle/example.py

31 lines
711 B
Python
Raw Normal View History

2013-08-08 15:31:19 -05:00
class TriangleError(Exception):
pass
2014-02-22 10:55:33 +08:00
2013-08-08 15:31:19 -05:00
class Triangle(object):
def __init__(self, x, y, z):
self.sides = (x, y, z)
if self._invalid_lengths() or self._violates_inequality():
raise TriangleError
def _invalid_lengths(self):
2015-11-10 13:33:25 +01:00
return any([side <= 0 for side in self.sides])
2013-08-08 15:31:19 -05:00
def _violates_inequality(self):
x, y, z = self.sides
return any([
x + y <= z,
x + z <= y,
y + z <= x,
])
def kind(self):
distinct = len(set(self.sides))
if distinct == 1:
return 'equilateral'
elif distinct == 2:
return 'isosceles'
else:
return 'scalene'