/**
* Tests reverse interpretation of a NOT(NAME) expression.
*/
public void testNegatedNameCondition() throws Exception {
FlowScope blind = newScope();
Node a = createVar(blind, "a", createNullableType(STRING_TYPE));
Node condition = new Node(Token.NOT);
condition.addChildToBack(a);
// true outcome.
FlowScope informedTrue = interpreter.
getPreciserScopeKnowingConditionOutcome(condition, blind, true);
assertTypeEquals(createNullableType(STRING_TYPE),
getVarType(informedTrue, "a"));
// false outcome.
FlowScope informedFalse = interpreter.
getPreciserScopeKnowingConditionOutcome(condition, blind, false);
assertTypeEquals(STRING_TYPE, getVarType(informedFalse, "a"));
}