// Laboratorio, sesión 2: tres funciones con sus pruebas.
//
// digit_sum(n)   devuelve la suma de las cifras de n. El signo no cuenta: con -407
//                devuelve 11. Debe funcionar con cualquier int, también con INT_MIN.
// is_prime(n)    devuelve 1 si n es primo y 0 si no lo es. Un primo es un entero mayor
//                que 1 cuyos únicos divisores positivos son 1 y él mismo. Debe funcionar
//                con cualquier int, también con INT_MAX.
// gcd(a, b)      devuelve el máximo común divisor de a y b, que nunca es negativo:
//                gcd(12, -18) es 6, gcd(-5, 0) es 5 y gcd(0, 0) es 0. a y b son mayores
//                que INT_MIN.
//
// Las versiones de abajo compilan, pero están mal: solo sirven para empezar.
// Reemplácenlas. Las funciones no leen ni escriben nada.
//
// En main, agreguen sus pruebas con assert: al menos 5 para digit_sum, 7 para is_prime y
// 6 para gcd, con sus casos borde. Las pruebas de make test-lab cuentan esas líneas, así
// que escriban un assert por línea, empezando con assert(digit_sum(, assert(is_prime( o
// assert(gcd(.
//
// Pruébenlo con make test-lab.
#include <assert.h>
#include <limits.h>
#include <stdio.h>

int digit_sum(int n) {
    return n;
}

int is_prime(int n) {
    return n == 2;
}

int gcd(int a, int b) {
    return a + b;
}

int main(void) {
    // Estas tres pasan con las versiones de arriba. No se dejen engañar.
    assert(digit_sum(7) == 7);
    assert(is_prime(2) == 1);
    assert(gcd(5, 0) == 5);
    // Escriban aquí el resto de sus pruebas.

    printf("Todas las pruebas pasaron\n");
    return 0;
}
