Méthodologie de la production des applications Module M3301-2 du DUT Informatique 2014/2015 Christian Attiogbé
|
/* Automate de reconnaissance de hh:mm
*/
import java.util.Arrays;
import java.lang.*;
import static org.junit.Assert.*;
import com.tecacet.math.fsm.*;
/**
* @author J. C. Attiogbe
* @version 1
*/
enum lesEtats {
E0, H1, H2, H, M0, M1, M
}
enum Actions {
a0,a1,a2,a3,a4,a5,a6,a7,a8,a9,dp
// pour 0,1,2,3,4,5,6,7,8,9,:
}
public class hhmm {
StateTransitionTable<lesEtats, Actions> automate = new StateTransitionTable<lesEtats, Actions>();
public void hhmm() {
automate.addTransition(lesEtats.E0, Actions.a0, lesEtats.H1);
automate.addTransition(lesEtats.E0, Actions.a1, lesEtats.H1);
automate.addTransition(lesEtats.E0, Actions.a2, lesEtats.H2);
automate.addTransition(lesEtats.H1, Actions.a0, lesEtats.H); // idem pour 1..9
automate.addTransition(lesEtats.H2, Actions.a0, lesEtats.H); //idem ,1,2,3
}
public void testAccessibilite() { // (E0, a1) -> H1
assertEquals(lesEtats.H1, automate.getNextState(lesEtats.E0, Actions.a0));
try {
automate.getNextState(lesEtats.H1, Actions.a1);
} catch (InvalidTransitionException te) {
assertEquals("Transition non valable.", te.getMessage());
}
}
public void main(String[] args) {
hhmm(); // initialisation de la fonction de transition
testAccessibilite();
}
}
/*--------------------------------------------------------------------*/
Dernière
modification : 30/10/2014
Prenom.Nom@univ-nantes.fr