{
PTASequenceEngine engine = coregraph.learnerCache.getQuestionsPTA();
if (engine == null)
throw new IllegalArgumentException("questions PTA has not been computed yet");
NonExistingPaths nonExisting = (NonExistingPaths) engine.getFSM();
Map<CmpVertex,Map<String,CmpVertex>> nonexistingMatrix = nonExisting.getNonExistingTransitionMatrix();
CmpVertex currentState = coregraph.getInit();
nonExisting.getNonExistingVertices().remove(currentState);
for(String label:question)
{
Map<String,CmpVertex> graphTargets = nonexistingMatrix.get(currentState);
if (graphTargets == null) // the current state is normal rather than partially or completely non-existent.
graphTargets = coregraph.transitionMatrix.get(currentState);
currentState = graphTargets.get(label);
assert currentState != null;
nonExisting.getNonExistingVertices().remove(currentState);
}
return currentState.isAccept() == accept;
}