
testgroup ExitState for statechart ExitState {
	
	/* An exit through an unnamed exit point must be taken by the transition without exit point spec (it must also be unguarded). */
	test defaultExit { 
		enter
		assert active(ExitState.r.A)
		
		raise e
		cycle
		assert active(ExitState.r.E) 
	} 

	/* An exit through an named exit point must be taken by the transition with the matching exit point spec if it exists. */
	test namedExitThroughNamedTransition { 
		enter
		assert active(ExitState.r.A)
		
		raise f
		cycle
		assert active(ExitState.r.F) 
	} 

	/* An exit through an named exit point must be taken by the default transition if no transition for this exit point exists.  */
	test namedExitThroughDefaultTransition { 
		enter
		assert active(ExitState.r.A)
		
		raise g
		cycle
		assert active(ExitState.r.E) 
	} 


	/* If no event is raised then the statechart must remain in state A.  */
	test remainInA { 
		enter
		assert active(ExitState.r.A)
		
		cycle
		assert active(ExitState.r.A) 
	} 

}
	