Duvida no uso assert

Olá pessoal,

usando java 1.5 com Eclipse 3.1

estou tentando entender o uso de assert mas não entendi
sua utilização na pratica conforme exemplo abaixo como lançar
um AssertionError pois rodou e não vi um erro quando cai na situação
que não é verdadeiro :


class A {
	void m1(int i) {
	   	int j = i % 3;
	   	
		switch (j) {
		case 0 :
		     System.out.print("0");
		     break;
		case 1 :
		     System.out.print("1");
		     break;
		default :
		     assert j == 2 ;
		     System.out.print(j);
		}
	}
	public static void main(String[] args){
	   A a = new A();
	   for (int i = 5; i >= -1; i--) {
		   /*System.out.println("for ="+i);*/
    	  a.m1(i);
	   }
	}
}

quando executei de esse resultado :210210-1

porque não caiu na situação do AssertionError essa é minha duvida ???

+++++++++++++++++++++++++++++++++++++++++++++
e vi o resultado que seria o seguinte :

Assertions
i j saida
5 2 2
4 1 1
3 0 0
2 2 2
1 1 1
0 0 0
-1 -1 ?
Com assertions: 210210
seguido de AssertionError
Sem assertions: 210210-1
+++++++++++++++++++++++++++++++++++++++++++++

Rodei aqui e deu exatamente o resultado que você falou.

Você lembrou de habilitar assertions?

[quote]C:>java A
210210-1
C:>java -ea A
210210Exception in thread “main” java.lang.AssertionError
at A.m1(a.java:13)
at A.main(a.java:21)[/quote]