EP3 unit test

Re: EP3 unit test

por José Coelho de Pina -
Número de respostas: 0

Ois,

João, muito obrigado por compartilhar a sua dúvida!

O unit test abaixo é apenas um exemplo do que Felipe explicou.


import java.util.Iterator; // para criarmos um iterador
import edu.princeton.cs.algs4.StdOut;

public class Cliente {
    
    public static void main(String[] args) {
        String s = args[0];
        Arrangements arr = new Arrangements(s);

        StdOut.println("Teste 1: imprime no máximo os 5 primeiros arranjos; usa iterador t1");
        Iterator<String> it1 = arr.iterator();
        int i1 = 0; // contador para o iterador it1
        while (it1.hasNext() && i1 < 5) {
            StdOut.println(i1 + " : " + it1.next());
            i1++;
        }

        StdOut.println("Teste 2: imprime no máximo os 3 primeiros arranjos; usa iterador t2");
        Iterator<String> it2 = arr.iterator();
        int i2 = 0; // contado  para o iterador it2
        while (it2.hasNext() && i2 < 3) {
            StdOut.println(i2 + " : " + it2.next());
            i2++;
        }
        
        StdOut.println("Teste 3: imprime todos os arranjos; usa iterador do 'for each'");
        int i = 0;
        for (String arranjo: arr) { // o iterador está implicito
            StdOut.println(i + " : " + arranjo);
            i++;
        }

        StdOut.println("Teste 4: imprime todos os arranjos restante usando o it1");        
        while (it1.hasNext()) {
            StdOut.println(i1 + " : " + it1.next());
            i1++;
        }

        StdOut.println("Teste 4: imprime todos os arranjos restante usando o it2");        
        while (it2.hasNext()) {
            StdOut.println(i2 + " : " + it2.next());
            i2++;
        }
    }
}

% java Cliente ABCa
Teste 1: imprime no máximo os 5 primeiros arranjos; usa iterador t1
0 : ABCa
1 : ABaC
2 : ACBa
3 : ACaB
4 : AaBC
Teste 2: imprime no máximo os 3 primeiros arranjos; usa iterador t2
0 : ABCa
1 : ABaC
2 : ACBa
Teste 3: imprime todos os arranjos; usa iterador do 'for each'
0 : ABCa
1 : ABaC
2 : ACBa
3 : ACaB
4 : AaBC
5 : AaCB
6 : BACa
7 : BAaC
8 : BCAa
9 : BCaA
10 : BaAC
11 : BaCA
12 : CABa
13 : CAaB
14 : CBAa
15 : CBaA
16 : CaAB
17 : CaBA
18 : aABC
19 : aACB
20 : aBAC
21 : aBCA
22 : aCAB
23 : aCBA
Teste 4: imprime todos os arranjos restante usando o it1
5 : AaCB
6 : BACa
7 : BAaC
8 : BCAa
9 : BCaA
10 : BaAC
11 : BaCA
12 : CABa
13 : CAaB
14 : CBAa
15 : CBaA
16 : CaAB
17 : CaBA
18 : aABC
19 : aACB
20 : aBAC
21 : aBCA
22 : aCAB
23 : aCBA
Teste 4: imprime todos os arranjos restante usando o it2
3 : ACaB
4 : AaBC
5 : AaCB
6 : BACa
7 : BAaC
8 : BCAa
9 : BCaA
10 : BaAC
11 : BaCA
12 : CABa
13 : CAaB
14 : CBAa
15 : CBaA
16 : CaAB
17 : CaBA
18 : aABC
19 : aACB
20 : aBAC
21 : aBCA
22 : aCAB
23 : aCBA