Considere a seguinte especificação parcial da classe List:

 public class List {
    // devolve true caso a lista contenha o objecto obj, false caso contrário
public boolean contains(Object obj) { ... }
// adiciona o objecto obj à lista.
public void add(Object obj) { ... }
}

Utilizando o padrão de testes mais apropriado, e descrevendo os vários passos do padrão aplicado, desenhe a bateria de testes que verifica o comportamento correcto

(a) do método add:
(b) do método recursivo contains: