Sha256: af2681ccc56a57cddaa9e5d9afeabb7b77769817d4bf916e5bc25d1cc3c279cb

Contents?: true

Size: 630 Bytes

Versions: 396

Compression:

Stored size: 630 Bytes

Contents

#include "triangle.h"
#include <stdexcept>

namespace triangle
{

namespace
{

bool triangle_equality(double a, double b, double c)
{
    return a < (b + c)
        && b < (a + c)
        && c < (a + b);
}

}

flavor kind(double a, double b, double c)
{
    if (a == 0 || b == 0 || c == 0) {
        throw std::domain_error("Zero triangle");
    }
    if (a < 0 || b < 0 || c < 0 || !triangle_equality(a, b, c)) {
        throw std::domain_error("Invalid triangle");
    }
    if (a == b && b == c) {
        return equilateral;
    }
    if (a == b || b == c || a == c) {
        return isosceles;
    }
    return scalene;
}

}

Version data entries

396 entries across 396 versions & 1 rubygems

Version Path
trackler-2.2.1.159 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.158 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.157 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.156 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.155 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.154 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.153 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.152 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.151 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.150 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.149 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.148 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.147 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.146 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.145 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.144 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.143 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.142 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.141 tracks/cpp/exercises/triangle/example.cpp
trackler-2.2.1.140 tracks/cpp/exercises/triangle/example.cpp