@Test public void mixing_static_and_dynamic_operators_produce_redundance() { CCSProcess process = makeProcessWithMixtureOfOperators(); Assert.assertThat(process.toString(), is("(recX:(a!.tau.X))\\{b}")); Assert.assertThat(process.getNextStates().size(), is(1)); CCSProcessState firststate = process.getNextStates().get(0); Assert.assertThat(firststate.getAction().toString(), is("a!")); Assert.assertThat(firststate.getProcess().toString(), is("(recX:(a!.tau.X))\\{b}")); // first recursion... Assert.assertThat(firststate.getNextStates().size(), is(1)); firststate = process.getNextStates().get(0); Assert.assertThat(firststate.getAction().toString(), is("a!")); Assert.assertThat(firststate.getProcess().toString(), is("(recX:(a!.tau.X))\\{b}")); // ...second recursion... Assert.assertThat(firststate.getNextStates().size(), is(1)); firststate = process.getNextStates().get(0); Assert.assertThat(firststate.getAction().toString(), is("a!")); Assert.assertThat(firststate.getProcess().toString(), is("(recX:(a!.tau.X))\\{b}")); Assert.assertThat(firststate.getNextStates().size(), is(1)); // and the story repeat... }
@Test public void test() { CCSProcess recProcess = makeProcessUnderTest(); Assert.assertThat(recProcess.toString(), is("recX:((a!.tau + (b?.tau | c?.tau).X))")); }