tdd-em-c-seccomp-2015



tdd-em-c-seccomp-2015

3 0


tdd-em-c-seccomp-2015


On Github guidohcosta / tdd-em-c-seccomp-2015

Desenvolvimento Orientado a Testes em C

Guilherme Henrique Costa

www.toddynho.ml

github.com/guidohcosta

Código Zuado

if (info->numCC < (*pRaiz)->conta.numCC) {
  inserir(&(*pRaiz)->esq,& (*pRaiz), info);
  (*pRaiz)->bal = alturaAvl((*pRaiz)->esq) -alturaAvl((*pRaiz)->dir);
  if ((*pRaiz)->bal == 2)  {
    if ((*pRaiz)->esq->bal==1)
      (*pRaiz) = rotacaoLL((*pRaiz));
    else if ((*pRaiz)->esq->bal == -1) {
      (*pRaiz)->esq = rotacaoRR((*pRaiz)->esq);
      (*pRaiz) = rotacaoLL((*pRaiz));
    }
  }
} else {
  if (info->numCC > (*pRaiz)->conta.numCC) {
    inserir(& (*pRaiz)->dir,& (*pRaiz), info);
    (*pRaiz)->bal=alturaAvl ((*pRaiz)->esq) -alturaAvl ((*pRaiz)->dir);
    if ((*pRaiz)->bal==-2) {
      if ( (*pRaiz)->dir->bal==-1)
        (*pRaiz)= rotacaoRR ((*pRaiz));
      else if ( (*pRaiz)->dir->bal==1) {
        (*pRaiz)->dir=rotacaoLL ((*pRaiz)->dir);
        (*pRaiz)= rotacaoRR ((*pRaiz));
      }
    }
  }
}

TDD

assert.h

#include <assert.h>

void test_numbers() {
  assert(1 + 1 == 2 && "tá somando certinho");
}

interfaces?

Google Test Framework

https://code.google.com/p/googletest

KATA

KATA: verificar pares

Escrever um programa que verifica se um número é par.

gcc -Wall pares_teste.c pares.c && ./a.out #include "pares.h" #include assert.h> #include stdbool.h> static void test_even() { assert(is_even(2) && "2 é par"); } // pares.c int is_even(int n) { return n % 2 == 0; }

KATA: palindrome

Verificar se uma palavra é palíndrome.

Ou seja, se é igual quando escrita de trás pra frente.

Ex: OVO, ARARA, SOPAPOS

KATA: fizzbuzz

Escrever FIZZ para múltiplos de 3,

BUZZ para múltiplos de 5,

FIZZBUZZ para ambos e

o próprio valor nos demais casos.

Desenvolvimento Orientado a Testes em C Guilherme Henrique Costa www.toddynho.ml github.com/guidohcosta