@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 check_next_states_with_two_complementary_action_prefixed_processes() { CCSProcess process = makeProcessUnderTest(); Assert.assertThat(process.getNextStates().size(), is(3)); CCSProcessState firststate = process.getNextStates().get(0); Assert.assertThat(firststate.getAction().toString(), is("a!")); Assert.assertThat(firststate.getProcess().toString(), is("tau")); Assert.assertThat(firststate.getNextStates().size(), is(0)); CCSProcessState secondState = process.getNextStates().get(1); Assert.assertThat(secondState.getAction().toString(), is("b?")); Assert.assertThat(secondState.getProcess().toString(), is("(tau | c?.tau).X")); Assert.assertThat(secondState.getNextStates().size(), is(1)); secondState = secondState.getNextStates().get(0); Assert.assertThat(secondState.getAction().toString(), is("c?")); Assert.assertThat( secondState.getProcess().toString(), is("recX:((a!.tau + (b?.tau | c?.tau).X))")); Assert.assertThat(secondState.getNextStates().size(), is(3)); // first recursion... secondState = process.getNextStates().get(1); Assert.assertThat(secondState.getAction().toString(), is("b?")); Assert.assertThat(secondState.getProcess().toString(), is("(tau | c?.tau).X")); Assert.assertThat(secondState.getNextStates().size(), is(1)); secondState = secondState.getNextStates().get(0); Assert.assertThat(secondState.getAction().toString(), is("c?")); Assert.assertThat( secondState.getProcess().toString(), is("recX:((a!.tau + (b?.tau | c?.tau).X))")); Assert.assertThat(secondState.getNextStates().size(), is(3)); // ...second recursion... secondState = process.getNextStates().get(1); Assert.assertThat(secondState.getAction().toString(), is("b?")); Assert.assertThat(secondState.getProcess().toString(), is("(tau | c?.tau).X")); Assert.assertThat(secondState.getNextStates().size(), is(1)); secondState = secondState.getNextStates().get(0); Assert.assertThat(secondState.getAction().toString(), is("c?")); Assert.assertThat( secondState.getProcess().toString(), is("recX:((a!.tau + (b?.tau | c?.tau).X))")); Assert.assertThat(secondState.getNextStates().size(), is(3)); // ...and the story repeat... }
@Test public void test() { CCSProcess recProcess = makeProcessUnderTest(); Assert.assertThat(recProcess.toString(), is("recX:((a!.tau + (b?.tau | c?.tau).X))")); }