/* * example from "A new technique for generating protocol tests", Sabnani and * Dahbura, 1985 */ public void testUIO() throws NoSuchStateException, TransductionException { DeterministicTransducer t = new DeterministicTransducer(); State[] ss = new State[7]; ss[0] = t.addState(true, false); for (int i = 1; i < 7; i++) ss[i] = t.addState(false, true); t.addTransition(new Transition(ss[0], new TransducerRelation("a", "b"), ss[1])); t.addTransition(new Transition(ss[1], new TransducerRelation("c", "d"), ss[2])); t.addTransition(new Transition(ss[2], new TransducerRelation("z", "b"), ss[4])); t.addTransition(new Transition(ss[4], new TransducerRelation("a", "b"), ss[0])); t.addTransition(new Transition(ss[1], new TransducerRelation("a", "f"), ss[3])); t.addTransition(new Transition(ss[3], new TransducerRelation("z", "b"), ss[5])); t.addTransition(new Transition(ss[5], new TransducerRelation("x", "d"), ss[6])); t.addTransition(new Transition(ss[6], new TransducerRelation("a", "f"), ss[1])); Map m = t.makeUIOSet(); System.err.println("UIO Set " + m); assertTrue(t.verifyUIO(m)); }
/* * example from "An optimization technique for protocole conformance test * generation based on UIO sequences and rural chinese postman tour", Aho, * Dahbura, Lee and Uyar, 1991 */ public void testUIO2() throws NoSuchStateException, TransductionException { DeterministicTransducer t = new DeterministicTransducer(); State[] ss = new State[5]; for (int i = 0; i < 5; i++) ss[i] = t.addState(i == 0 ? true : false, true); t.addTransition(new Transition(ss[0], new TransducerRelation("a", "x"), ss[0])); t.addTransition(new Transition(ss[0], new TransducerRelation("b", "x"), ss[1])); t.addTransition(new Transition(ss[0], new TransducerRelation("c", "y"), ss[3])); t.addTransition(new Transition(ss[1], new TransducerRelation("b", "y"), ss[2])); t.addTransition(new Transition(ss[1], new TransducerRelation("a", "x"), ss[4])); t.addTransition(new Transition(ss[2], new TransducerRelation("b", "x"), ss[4])); t.addTransition(new Transition(ss[2], new TransducerRelation("c", "y"), ss[4])); t.addTransition(new Transition(ss[3], new TransducerRelation("b", "x"), ss[2])); t.addTransition(new Transition(ss[3], new TransducerRelation("a", "x"), ss[4])); t.addTransition(new Transition(ss[4], new TransducerRelation("a", "z"), ss[3])); t.addTransition(new Transition(ss[4], new TransducerRelation("c", "z"), ss[0])); Map m = t.makeUIOSet(); assertTrue(t.verifyUIO(m)); }