### Question:
BranchNormalizedVisitor implements FilterVisitor { public static String getNormalizedFilter( SchemaManager schemaManager, String filter ) throws ParseException { ExprNode originalNode = FilterParser.parse( schemaManager, filter ); return getNormalizedFilter( originalNode ); }  @Override Object visit( ExprNode node ); @Override boolean canVisit( ExprNode node ); @Override boolean isPrefix(); @Override List<ExprNode> getOrder( BranchNode node, List<ExprNode> children ); static String getNormalizedFilter( SchemaManager schemaManager, String filter ); static String getNormalizedFilter( ExprNode filter );  }### Answer:
@Test public void testBranchNormalizedComplex() throws Exception { String filter1 = "(&(a=A)(|(b=B)(c=C)))"; String filter2 = "(&(a=A)(|(c=C)(b=B)))"; String normalizedFilter1 = BranchNormalizedVisitor.getNormalizedFilter( null, filter1 ); String normalizedFilter2 = BranchNormalizedVisitor.getNormalizedFilter( null, filter2 ); assertEquals( normalizedFilter1, normalizedFilter2 ); }