Sha256: 257f0df6dd59290d6fd02f1b659b74c8c3f8cdfb8ee4936bb014d995f4cb133c

Contents?: true

Size: 711 Bytes

Versions: 292

Compression:

Stored size: 711 Bytes

Contents

class TriangleError(Exception):
    pass


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):
        return any([side <= 0 for side in self.sides])

    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'

Version data entries

292 entries across 292 versions & 1 rubygems

Version Path
trackler-2.2.1.74 tracks/python/exercises/triangle/example.py
trackler-2.2.1.73 tracks/python/exercises/triangle/example.py
trackler-2.2.1.72 tracks/python/exercises/triangle/example.py
trackler-2.2.1.71 tracks/python/exercises/triangle/example.py
trackler-2.2.1.70 tracks/python/exercises/triangle/example.py
trackler-2.2.1.69 tracks/python/exercises/triangle/example.py
trackler-2.2.1.68 tracks/python/exercises/triangle/example.py
trackler-2.2.1.67 tracks/python/exercises/triangle/example.py
trackler-2.2.1.66 tracks/python/exercises/triangle/example.py
trackler-2.2.1.65 tracks/python/exercises/triangle/example.py
trackler-2.2.1.64 tracks/python/exercises/triangle/example.py
trackler-2.2.1.63 tracks/python/exercises/triangle/example.py
trackler-2.2.1.62 tracks/python/exercises/triangle/example.py
trackler-2.2.1.61 tracks/python/exercises/triangle/example.py
trackler-2.2.1.60 tracks/python/exercises/triangle/example.py
trackler-2.2.1.59 tracks/python/exercises/triangle/example.py
trackler-2.2.1.58 tracks/python/exercises/triangle/example.py
trackler-2.2.1.57 tracks/python/exercises/triangle/example.py
trackler-2.2.1.56 tracks/python/exercises/triangle/example.py
trackler-2.2.1.55 tracks/python/exercises/triangle/example.py