Program: 11923
Project: 11923
Buggy source:
public void testRead(){
  String content=TestUtil.readFile(CLASS_FILE);
  ASTParser astParser=ASTParser.newParser(AST.JLS3);
  astParser.setSource(content.toCharArray());
  CompilationUnit compilationUnit=(CompilationUnit)astParser.createAST(null);
  PackageDeclaration packageDeclaration=compilationUnit.getPackage();
  assertNotNull(packageDeclaration);
  assertTrue(packageDeclaration.getName().isQualifiedName());
  assertEquals("String_Node_Str",packageDeclaration.getName().getFullyQualifiedName());
  List importDeclarations=compilationUnit.imports();
  assertEquals(5,importDeclarations.size());
  assertEquals("String_Node_Str",((ImportDeclaration)importDeclarations.get(0)).getName().getFullyQualifiedName());
  assertEquals("String_Node_Str",((ImportDeclaration)importDeclarations.get(1)).getName().getFullyQualifiedName());
  assertEquals("String_Node_Str",((ImportDeclaration)importDeclarations.get(2)).getName().getFullyQualifiedName());
  assertEquals("String_Node_Str",((ImportDeclaration)importDeclarations.get(3)).getName().getFullyQualifiedName());
  assertEquals("String_Node_Str",((ImportDeclaration)importDeclarations.get(4)).getName().getFullyQualifiedName());
  List typeDeclarations=(List)compilationUnit.types();
  assertEquals(2,typeDeclarations.size());
  TypeDeclaration exampleClass=(TypeDeclaration)typeDeclarations.get(1);
  assertEquals("String_Node_Str",exampleClass.getName().getFullyQualifiedName());
  assertFalse(exampleClass.isInterface());
{
    Javadoc typeJavadoc=exampleClass.getJavadoc();
    assertEquals(4,typeJavadoc.tags().size());
    TagElement[] tagElements=(TagElement[])typeJavadoc.tags().toArray(new TagElement[typeJavadoc.tags().size()]);
    assertNull(tagElements[0].getTagName());
    assertEquals(2,tagElements[0].fragments().size());
    assertEquals("String_Node_Str",((TextElement)tagElements[0].fragments().get(0)).getText());
    assertEquals("String_Node_Str",((TextElement)tagElements[0].fragments().get(1)).getText());
    assertEquals("String_Node_Str",tagElements[1].getTagName());
    assertEquals(1,tagElements[1].fragments().size());
    assertEquals("String_Node_Str",((TextElement)tagElements[1].fragments().get(0)).getText());
    assertEquals("String_Node_Str",tagElements[2].getTagName());
    assertTrue(tagElements[2].fragments().isEmpty());
    assertEquals("String_Node_Str",tagElements[3].getTagName());
    assertEquals(1,tagElements[3].fragments().size());
    assertEquals("String_Node_Str",((TextElement)tagElements[3].fragments().get(0)).getText());
  }
  assertTrue(exampleClass.getSuperclassType().isSimpleType());
  assertEquals("String_Node_Str",((SimpleType)exampleClass.getSuperclassType()).getName().getFullyQualifiedName());
  assertTrue(exampleClass.superInterfaceTypes().isEmpty());
  assertEquals(Modifier.PUBLIC,exampleClass.getModifiers());
  assertEquals(12,exampleClass.bodyDeclarations().size());
  assertEquals(2,exampleClass.getTypes().length);
  assertEquals(5,exampleClass.getFields().length);
  assertEquals(5,exampleClass.getMethods().length);
  TypeDeclaration innerClass=exampleClass.getTypes()[0];
  assertFalse(innerClass.isInterface());
  assertTrue(innerClass.bodyDeclarations().isEmpty());
  assertEquals(Modifier.PUBLIC | Modifier.ABSTRACT,innerClass.getModifiers());
  assertNull(innerClass.getSuperclassType());
  assertEquals(2,innerClass.superInterfaceTypes().size());
  assertTrue(((Type)innerClass.superInterfaceTypes().get(0)).isSimpleType());
  assertEquals("String_Node_Str",((SimpleType)innerClass.superInterfaceTypes().get(0)).getName().getFullyQualifiedName());
  assertTrue(((Type)innerClass.superInterfaceTypes().get(1)).isSimpleType());
  assertEquals("String_Node_Str",((SimpleType)innerClass.superInterfaceTypes().get(1)).getName().getFullyQualifiedName());
  assertNull(innerClass.getJavadoc());
  TypeDeclaration innerInterface=exampleClass.getTypes()[1];
  assertTrue(innerInterface.isInterface());
  assertTrue(innerInterface.bodyDeclarations().isEmpty());
  assertEquals(Modifier.PRIVATE | Modifier.STATIC,innerInterface.getModifiers());
  assertNull(innerInterface.getSuperclassType());
  assertEquals(1,innerInterface.superInterfaceTypes().size());
  assertTrue(((Type)innerInterface.superInterfaceTypes().get(0)).isSimpleType());
  assertEquals("String_Node_Str",((SimpleType)innerInterface.superInterfaceTypes().get(0)).getName().getFullyQualifiedName());
  assertNull(innerClass.getJavadoc());
  FieldDeclaration[] fieldDeclarations=exampleClass.getFields();
{
    Javadoc javadoc=fieldDeclarations[0].getJavadoc();
    assertEquals(1,javadoc.tags().size());
    assertEquals(1,((TagElement)javadoc.tags().get(0)).fragments().size());
    assertEquals("String_Node_Str",((TextElement)((TagElement)javadoc.tags().get(0)).fragments().get(0)).getText());
    assertEquals(Modifier.PUBLIC | Modifier.STATIC | Modifier.FINAL,fieldDeclarations[0].getModifiers());
    assertTrue(fieldDeclarations[0].getType().isSimpleType());
    assertEquals("String_Node_Str",((SimpleType)fieldDeclarations[0].getType()).getName().getFullyQualifiedName());
    assertEquals(1,fieldDeclarations[0].fragments().size());
    VariableDeclarationFragment[] variableDeclarationFragments=(VariableDeclarationFragment[])fieldDeclarations[0].fragments().toArray(new VariableDeclarationFragment[fieldDeclarations[0].fragments().size()]);
    assertEquals(0,variableDeclarationFragments[0].getExtraDimensions());
    assertEquals("String_Node_Str",variableDeclarationFragments[0].getName().getFullyQualifiedName());
    assertNotNull(variableDeclarationFragments[0].getInitializer());
    assertTrue(variableDeclarationFragments[0].getInitializer() instanceof StringLiteral);
    assertEquals("String_Node_Str",((StringLiteral)variableDeclarationFragments[0].getInitializer()).getLiteralValue());
  }
{
    Javadoc javadoc=fieldDeclarations[1].getJavadoc();
    assertEquals(1,javadoc.tags().size());
    assertEquals(2,((TagElement)javadoc.tags().get(0)).fragments().size());
    assertEquals("String_Node_Str",((TextElement)((TagElement)javadoc.tags().get(0)).fragments().get(0)).getText());
    assertEquals("String_Node_Str",((TextElement)((TagElement)javadoc.tags().get(0)).fragments().get(1)).getText());
    assertEquals(Modifier.PROTECTED | Modifier.STATIC,fieldDeclarations[1].getModifiers());
    assertTrue(fieldDeclarations[1].getType().isPrimitiveType());
    assertEquals(PrimitiveType.LONG,((PrimitiveType)fieldDeclarations[1].getType()).getPrimitiveTypeCode());
    assertEquals(1,fieldDeclarations[1].fragments().size());
    VariableDeclarationFragment[] variableDeclarationFragments=(VariableDeclarationFragment[])fieldDeclarations[1].fragments().toArray(new VariableDeclarationFragment[fieldDeclarations[1].fragments().size()]);
    assertEquals(0,variableDeclarationFragments[0].getExtraDimensions());
    assertEquals("String_Node_Str",variableDeclarationFragments[0].getName().getFullyQualifiedName());
    assertNotNull(variableDeclarationFragments[0].getInitializer());
    assertTrue(variableDeclarationFragments[0].getInitializer() instanceof NumberLiteral);
    assertEquals("String_Node_Str",((NumberLiteral)variableDeclarationFragments[0].getInitializer()).getToken());
  }
{
    assertNull(fieldDeclarations[2].getJavadoc());
    assertEquals(0,fieldDeclarations[2].getModifiers());
    assertTrue(fieldDeclarations[2].getType().isSimpleType());
    assertEquals("String_Node_Str",((SimpleType)fieldDeclarations[2].getType()).getName().getFullyQualifiedName());
    assertEquals(1,fieldDeclarations[2].fragments().size());
    VariableDeclarationFragment[] variableDeclarationFragments=(VariableDeclarationFragment[])fieldDeclarations[2].fragments().toArray(new VariableDeclarationFragment[fieldDeclarations[2].fragments().size()]);
    assertEquals(0,variableDeclarationFragments[0].getExtraDimensions());
    assertEquals("String_Node_Str",variableDeclarationFragments[0].getName().getFullyQualifiedName());
    assertNull(variableDeclarationFragments[0].getInitializer());
  }
{
    assertNull(fieldDeclarations[3].getJavadoc());
    assertEquals(Modifier.PRIVATE,fieldDeclarations[3].getModifiers());
    assertTrue(fieldDeclarations[3].getType().isSimpleType());
    assertEquals("String_Node_Str",((SimpleType)fieldDeclarations[3].getType()).getName().getFullyQualifiedName());
    assertEquals(1,fieldDeclarations[3].fragments().size());
    VariableDeclarationFragment[] variableDeclarationFragments=(VariableDeclarationFragment[])fieldDeclarations[3].fragments().toArray(new VariableDeclarationFragment[fieldDeclarations[3].fragments().size()]);
    assertEquals(0,variableDeclarationFragments[0].getExtraDimensions());
    assertEquals("String_Node_Str",variableDeclarationFragments[0].getName().getFullyQualifiedName());
    assertNull(variableDeclarationFragments[0].getInitializer());
  }
{
    assertNull(fieldDeclarations[4].getJavadoc());
    assertEquals(Modifier.PRIVATE,fieldDeclarations[4].getModifiers());
    assertTrue(fieldDeclarations[4].getType().isArrayType());
    assertEquals(2,((ArrayType)fieldDeclarations[4].getType()).getDimensions());
    assertTrue(((ArrayType)fieldDeclarations[4].getType()).getElementType().isPrimitiveType());
    assertEquals(PrimitiveType.INT,((PrimitiveType)((ArrayType)fieldDeclarations[4].getType()).getElementType()).getPrimitiveTypeCode());
    assertEquals(1,fieldDeclarations[4].fragments().size());
    VariableDeclarationFragment[] variableDeclarationFragments=(VariableDeclarationFragment[])fieldDeclarations[4].fragments().toArray(new VariableDeclarationFragment[fieldDeclarations[4].fragments().size()]);
    assertEquals(0,variableDeclarationFragments[0].getExtraDimensions());
    assertEquals("String_Node_Str",variableDeclarationFragments[0].getName().getFullyQualifiedName());
    assertNotNull(variableDeclarationFragments[0].getInitializer());
    assertTrue(variableDeclarationFragments[0].getInitializer() instanceof ArrayCreation);
    ArrayCreation arrayCreation=(ArrayCreation)variableDeclarationFragments[0].getInitializer();
    assertEquals(2,arrayCreation.dimensions().size());
    assertEquals("String_Node_Str",((NumberLiteral)arrayCreation.dimensions().get(0)).getToken());
    assertEquals("String_Node_Str",((NumberLiteral)arrayCreation.dimensions().get(1)).getToken());
  }
  MethodDeclaration[] methodDeclarations=exampleClass.getMethods();
{
    Javadoc javadoc=methodDeclarations[0].getJavadoc();
    assertEquals(1,javadoc.tags().size());
    assertEquals(1,((TagElement)javadoc.tags().get(0)).fragments().size());
    assertEquals("String_Node_Str",((TextElement)((TagElement)javadoc.tags().get(0)).fragments().get(0)).getText());
    assertTrue(methodDeclarations[0].isConstructor());
    assertEquals(Modifier.PUBLIC,methodDeclarations[0].getModifiers());
    assertNull(methodDeclarations[0].getReturnType2());
    assertEquals("String_Node_Str",methodDeclarations[0].getName().getFullyQualifiedName());
    assertTrue(methodDeclarations[0].parameters().isEmpty());
    assertNotNull(methodDeclarations[0].getBody());
    assertEquals(1,methodDeclarations[0].getBody().statements().size());
    Statement statement=(Statement)methodDeclarations[0].getBody().statements().get(0);
    assertEquals(ASTNode.SUPER_CONSTRUCTOR_INVOCATION,statement.getNodeType());
    assertTrue(((SuperConstructorInvocation)statement).arguments().isEmpty());
  }
{
    Javadoc javadoc=methodDeclarations[1].getJavadoc();
    assertEquals(3,javadoc.tags().size());
    assertNull(((TagElement)javadoc.tags().get(0)).getTagName());
    assertEquals(1,((TagElement)javadoc.tags().get(0)).fragments().size());
    assertEquals("String_Node_Str",((TextElement)((TagElement)javadoc.tags().get(0)).fragments().get(0)).getText());
    assertEquals("String_Node_Str",((TagElement)javadoc.tags().get(1)).getTagName());
    assertEquals(1,((TagElement)javadoc.tags().get(0)).fragments().size());
    assertEquals("String_Node_Str",((SimpleName)((TagElement)javadoc.tags().get(1)).fragments().get(0)).getFullyQualifiedName());
    assertEquals("String_Node_Str",((TagElement)javadoc.tags().get(2)).getTagName());
    assertTrue(((TagElement)javadoc.tags().get(2)).fragments().isEmpty());
    assertFalse(methodDeclarations[1].isConstructor());
    assertEquals(Modifier.PUBLIC,methodDeclarations[1].getModifiers());
    assertNotNull(methodDeclarations[1].getReturnType2());
    assertTrue(methodDeclarations[1].getReturnType2().isPrimitiveType());
    assertEquals(PrimitiveType.VOID,((PrimitiveType)methodDeclarations[1].getReturnType2()).getPrimitiveTypeCode());
    assertEquals("String_Node_Str",methodDeclarations[1].getName().getFullyQualifiedName());
    assertEquals(1,methodDeclarations[1].parameters().size());
    assertTrue(((SingleVariableDeclaration)methodDeclarations[1].parameters().get(0)).getType().isSimpleType());
    assertEquals("String_Node_Str",((SimpleType)((SingleVariableDeclaration)methodDeclarations[1].parameters().get(0)).getType()).getName().getFullyQualifiedName());
    assertEquals("String_Node_Str",((SingleVariableDeclaration)methodDeclarations[1].parameters().get(0)).getName().getFullyQualifiedName());
    assertNotNull(methodDeclarations[1].getBody());
    assertEquals(1,methodDeclarations[1].getBody().statements().size());
  }
}

Fixed version (ground truth):
public void testRead(){
  String content=TestUtil.readFile(CLASS_FILE,false);
  ASTParser astParser=ASTParser.newParser(AST.JLS3);
  astParser.setSource(content.toCharArray());
  CompilationUnit compilationUnit=(CompilationUnit)astParser.createAST(null);
  PackageDeclaration packageDeclaration=compilationUnit.getPackage();
  assertNotNull(packageDeclaration);
  assertTrue(packageDeclaration.getName().isQualifiedName());
  assertEquals("String_Node_Str",packageDeclaration.getName().getFullyQualifiedName());
  List importDeclarations=compilationUnit.imports();
  assertEquals(5,importDeclarations.size());
  assertEquals("String_Node_Str",((ImportDeclaration)importDeclarations.get(0)).getName().getFullyQualifiedName());
  assertEquals("String_Node_Str",((ImportDeclaration)importDeclarations.get(1)).getName().getFullyQualifiedName());
  assertEquals("String_Node_Str",((ImportDeclaration)importDeclarations.get(2)).getName().getFullyQualifiedName());
  assertEquals("String_Node_Str",((ImportDeclaration)importDeclarations.get(3)).getName().getFullyQualifiedName());
  assertEquals("String_Node_Str",((ImportDeclaration)importDeclarations.get(4)).getName().getFullyQualifiedName());
  List typeDeclarations=(List)compilationUnit.types();
  assertEquals(2,typeDeclarations.size());
  TypeDeclaration exampleClass=(TypeDeclaration)typeDeclarations.get(1);
  assertEquals("String_Node_Str",exampleClass.getName().getFullyQualifiedName());
  assertFalse(exampleClass.isInterface());
{
    Javadoc typeJavadoc=exampleClass.getJavadoc();
    assertEquals(4,typeJavadoc.tags().size());
    TagElement[] tagElements=(TagElement[])typeJavadoc.tags().toArray(new TagElement[typeJavadoc.tags().size()]);
    assertNull(tagElements[0].getTagName());
    assertEquals(2,tagElements[0].fragments().size());
    assertEquals("String_Node_Str",((TextElement)tagElements[0].fragments().get(0)).getText());
    assertEquals("String_Node_Str",((TextElement)tagElements[0].fragments().get(1)).getText());
    assertEquals("String_Node_Str",tagElements[1].getTagName());
    assertEquals(1,tagElements[1].fragments().size());
    assertEquals("String_Node_Str",((TextElement)tagElements[1].fragments().get(0)).getText());
    assertEquals("String_Node_Str",tagElements[2].getTagName());
    assertTrue(tagElements[2].fragments().isEmpty());
    assertEquals("String_Node_Str",tagElements[3].getTagName());
    assertEquals(1,tagElements[3].fragments().size());
    assertEquals("String_Node_Str",((TextElement)tagElements[3].fragments().get(0)).getText());
  }
  assertTrue(exampleClass.getSuperclassType().isSimpleType());
  assertEquals("String_Node_Str",((SimpleType)exampleClass.getSuperclassType()).getName().getFullyQualifiedName());
  assertTrue(exampleClass.superInterfaceTypes().isEmpty());
  assertEquals(Modifier.PUBLIC,exampleClass.getModifiers());
  assertEquals(12,exampleClass.bodyDeclarations().size());
  assertEquals(2,exampleClass.getTypes().length);
  assertEquals(5,exampleClass.getFields().length);
  assertEquals(5,exampleClass.getMethods().length);
  TypeDeclaration innerClass=exampleClass.getTypes()[0];
  assertFalse(innerClass.isInterface());
  assertTrue(innerClass.bodyDeclarations().isEmpty());
  assertEquals(Modifier.PUBLIC | Modifier.ABSTRACT,innerClass.getModifiers());
  assertNull(innerClass.getSuperclassType());
  assertEquals(2,innerClass.superInterfaceTypes().size());
  assertTrue(((Type)innerClass.superInterfaceTypes().get(0)).isSimpleType());
  assertEquals("String_Node_Str",((SimpleType)innerClass.superInterfaceTypes().get(0)).getName().getFullyQualifiedName());
  assertTrue(((Type)innerClass.superInterfaceTypes().get(1)).isSimpleType());
  assertEquals("String_Node_Str",((SimpleType)innerClass.superInterfaceTypes().get(1)).getName().getFullyQualifiedName());
  assertNull(innerClass.getJavadoc());
  TypeDeclaration innerInterface=exampleClass.getTypes()[1];
  assertTrue(innerInterface.isInterface());
  assertTrue(innerInterface.bodyDeclarations().isEmpty());
  assertEquals(Modifier.PRIVATE | Modifier.STATIC,innerInterface.getModifiers());
  assertNull(innerInterface.getSuperclassType());
  assertEquals(1,innerInterface.superInterfaceTypes().size());
  assertTrue(((Type)innerInterface.superInterfaceTypes().get(0)).isSimpleType());
  assertEquals("String_Node_Str",((SimpleType)innerInterface.superInterfaceTypes().get(0)).getName().getFullyQualifiedName());
  assertNull(innerClass.getJavadoc());
  FieldDeclaration[] fieldDeclarations=exampleClass.getFields();
{
    Javadoc javadoc=fieldDeclarations[0].getJavadoc();
    assertEquals(1,javadoc.tags().size());
    assertEquals(1,((TagElement)javadoc.tags().get(0)).fragments().size());
    assertEquals("String_Node_Str",((TextElement)((TagElement)javadoc.tags().get(0)).fragments().get(0)).getText());
    assertEquals(Modifier.PUBLIC | Modifier.STATIC | Modifier.FINAL,fieldDeclarations[0].getModifiers());
    assertTrue(fieldDeclarations[0].getType().isSimpleType());
    assertEquals("String_Node_Str",((SimpleType)fieldDeclarations[0].getType()).getName().getFullyQualifiedName());
    assertEquals(1,fieldDeclarations[0].fragments().size());
    VariableDeclarationFragment[] variableDeclarationFragments=(VariableDeclarationFragment[])fieldDeclarations[0].fragments().toArray(new VariableDeclarationFragment[fieldDeclarations[0].fragments().size()]);
    assertEquals(0,variableDeclarationFragments[0].getExtraDimensions());
    assertEquals("String_Node_Str",variableDeclarationFragments[0].getName().getFullyQualifiedName());
    assertNotNull(variableDeclarationFragments[0].getInitializer());
    assertTrue(variableDeclarationFragments[0].getInitializer() instanceof StringLiteral);
    assertEquals("String_Node_Str",((StringLiteral)variableDeclarationFragments[0].getInitializer()).getLiteralValue());
  }
{
    Javadoc javadoc=fieldDeclarations[1].getJavadoc();
    assertEquals(1,javadoc.tags().size());
    assertEquals(2,((TagElement)javadoc.tags().get(0)).fragments().size());
    assertEquals("String_Node_Str",((TextElement)((TagElement)javadoc.tags().get(0)).fragments().get(0)).getText());
    assertEquals("String_Node_Str",((TextElement)((TagElement)javadoc.tags().get(0)).fragments().get(1)).getText());
    assertEquals(Modifier.PROTECTED | Modifier.STATIC,fieldDeclarations[1].getModifiers());
    assertTrue(fieldDeclarations[1].getType().isPrimitiveType());
    assertEquals(PrimitiveType.LONG,((PrimitiveType)fieldDeclarations[1].getType()).getPrimitiveTypeCode());
    assertEquals(1,fieldDeclarations[1].fragments().size());
    VariableDeclarationFragment[] variableDeclarationFragments=(VariableDeclarationFragment[])fieldDeclarations[1].fragments().toArray(new VariableDeclarationFragment[fieldDeclarations[1].fragments().size()]);
    assertEquals(0,variableDeclarationFragments[0].getExtraDimensions());
    assertEquals("String_Node_Str",variableDeclarationFragments[0].getName().getFullyQualifiedName());
    assertNotNull(variableDeclarationFragments[0].getInitializer());
    assertTrue(variableDeclarationFragments[0].getInitializer() instanceof NumberLiteral);
    assertEquals("String_Node_Str",((NumberLiteral)variableDeclarationFragments[0].getInitializer()).getToken());
  }
{
    assertNull(fieldDeclarations[2].getJavadoc());
    assertEquals(0,fieldDeclarations[2].getModifiers());
    assertTrue(fieldDeclarations[2].getType().isSimpleType());
    assertEquals("String_Node_Str",((SimpleType)fieldDeclarations[2].getType()).getName().getFullyQualifiedName());
    assertEquals(1,fieldDeclarations[2].fragments().size());
    VariableDeclarationFragment[] variableDeclarationFragments=(VariableDeclarationFragment[])fieldDeclarations[2].fragments().toArray(new VariableDeclarationFragment[fieldDeclarations[2].fragments().size()]);
    assertEquals(0,variableDeclarationFragments[0].getExtraDimensions());
    assertEquals("String_Node_Str",variableDeclarationFragments[0].getName().getFullyQualifiedName());
    assertNull(variableDeclarationFragments[0].getInitializer());
  }
{
    assertNull(fieldDeclarations[3].getJavadoc());
    assertEquals(Modifier.PRIVATE,fieldDeclarations[3].getModifiers());
    assertTrue(fieldDeclarations[3].getType().isSimpleType());
    assertEquals("String_Node_Str",((SimpleType)fieldDeclarations[3].getType()).getName().getFullyQualifiedName());
    assertEquals(1,fieldDeclarations[3].fragments().size());
    VariableDeclarationFragment[] variableDeclarationFragments=(VariableDeclarationFragment[])fieldDeclarations[3].fragments().toArray(new VariableDeclarationFragment[fieldDeclarations[3].fragments().size()]);
    assertEquals(0,variableDeclarationFragments[0].getExtraDimensions());
    assertEquals("String_Node_Str",variableDeclarationFragments[0].getName().getFullyQualifiedName());
    assertNull(variableDeclarationFragments[0].getInitializer());
  }
{
    assertNull(fieldDeclarations[4].getJavadoc());
    assertEquals(Modifier.PRIVATE,fieldDeclarations[4].getModifiers());
    assertTrue(fieldDeclarations[4].getType().isArrayType());
    assertEquals(2,((ArrayType)fieldDeclarations[4].getType()).getDimensions());
    assertTrue(((ArrayType)fieldDeclarations[4].getType()).getElementType().isPrimitiveType());
    assertEquals(PrimitiveType.INT,((PrimitiveType)((ArrayType)fieldDeclarations[4].getType()).getElementType()).getPrimitiveTypeCode());
    assertEquals(1,fieldDeclarations[4].fragments().size());
    VariableDeclarationFragment[] variableDeclarationFragments=(VariableDeclarationFragment[])fieldDeclarations[4].fragments().toArray(new VariableDeclarationFragment[fieldDeclarations[4].fragments().size()]);
    assertEquals(0,variableDeclarationFragments[0].getExtraDimensions());
    assertEquals("String_Node_Str",variableDeclarationFragments[0].getName().getFullyQualifiedName());
    assertNotNull(variableDeclarationFragments[0].getInitializer());
    assertTrue(variableDeclarationFragments[0].getInitializer() instanceof ArrayCreation);
    ArrayCreation arrayCreation=(ArrayCreation)variableDeclarationFragments[0].getInitializer();
    assertEquals(2,arrayCreation.dimensions().size());
    assertEquals("String_Node_Str",((NumberLiteral)arrayCreation.dimensions().get(0)).getToken());
    assertEquals("String_Node_Str",((NumberLiteral)arrayCreation.dimensions().get(1)).getToken());
  }
  MethodDeclaration[] methodDeclarations=exampleClass.getMethods();
{
    Javadoc javadoc=methodDeclarations[0].getJavadoc();
    assertEquals(1,javadoc.tags().size());
    assertEquals(1,((TagElement)javadoc.tags().get(0)).fragments().size());
    assertEquals("String_Node_Str",((TextElement)((TagElement)javadoc.tags().get(0)).fragments().get(0)).getText());
    assertTrue(methodDeclarations[0].isConstructor());
    assertEquals(Modifier.PUBLIC,methodDeclarations[0].getModifiers());
    assertNull(methodDeclarations[0].getReturnType2());
    assertEquals("String_Node_Str",methodDeclarations[0].getName().getFullyQualifiedName());
    assertTrue(methodDeclarations[0].parameters().isEmpty());
    assertNotNull(methodDeclarations[0].getBody());
    assertEquals(1,methodDeclarations[0].getBody().statements().size());
    Statement statement=(Statement)methodDeclarations[0].getBody().statements().get(0);
    assertEquals(ASTNode.SUPER_CONSTRUCTOR_INVOCATION,statement.getNodeType());
    assertTrue(((SuperConstructorInvocation)statement).arguments().isEmpty());
  }
{
    Javadoc javadoc=methodDeclarations[1].getJavadoc();
    assertEquals(3,javadoc.tags().size());
    assertNull(((TagElement)javadoc.tags().get(0)).getTagName());
    assertEquals(1,((TagElement)javadoc.tags().get(0)).fragments().size());
    assertEquals("String_Node_Str",((TextElement)((TagElement)javadoc.tags().get(0)).fragments().get(0)).getText());
    assertEquals("String_Node_Str",((TagElement)javadoc.tags().get(1)).getTagName());
    assertEquals(1,((TagElement)javadoc.tags().get(0)).fragments().size());
    assertEquals("String_Node_Str",((SimpleName)((TagElement)javadoc.tags().get(1)).fragments().get(0)).getFullyQualifiedName());
    assertEquals("String_Node_Str",((TagElement)javadoc.tags().get(2)).getTagName());
    assertTrue(((TagElement)javadoc.tags().get(2)).fragments().isEmpty());
    assertFalse(methodDeclarations[1].isConstructor());
    assertEquals(Modifier.PUBLIC,methodDeclarations[1].getModifiers());
    assertNotNull(methodDeclarations[1].getReturnType2());
    assertTrue(methodDeclarations[1].getReturnType2().isPrimitiveType());
    assertEquals(PrimitiveType.VOID,((PrimitiveType)methodDeclarations[1].getReturnType2()).getPrimitiveTypeCode());
    assertEquals("String_Node_Str",methodDeclarations[1].getName().getFullyQualifiedName());
    assertEquals(1,methodDeclarations[1].parameters().size());
    assertTrue(((SingleVariableDeclaration)methodDeclarations[1].parameters().get(0)).getType().isSimpleType());
    assertEquals("String_Node_Str",((SimpleType)((SingleVariableDeclaration)methodDeclarations[1].parameters().get(0)).getType()).getName().getFullyQualifiedName());
    assertEquals("String_Node_Str",((SingleVariableDeclaration)methodDeclarations[1].parameters().get(0)).getName().getFullyQualifiedName());
    assertNotNull(methodDeclarations[1].getBody());
    assertEquals(1,methodDeclarations[1].getBody().statements().size());
  }
}