@Test
 public void testJavadoc() throws Exception {
   String source = Helper.readClass("JavadocTestClass");
   CompilationUnit cu1 = Helper.parserString(source);
   CompilationUnit cu2 = Helper.parserString(source);
   assertEqualsAndHashCode(cu1, cu2);
 }
  @Test
  public void testCommentsEquals() throws Exception {

    CompilationUnit cu1 = Helper.parserString(source_with_comment);
    CompilationUnit cu2 = Helper.parserString(source_with_comment);

    assertEqualsAndHashCode(cu1, cu2);
  }
  @Test
  public void tesCompilationUnitNotEqual() throws Exception {
    String source = Helper.readClass("DumperTestClass");
    CompilationUnit cu1 = Helper.parserString(source);
    CompilationUnit cu2 = Helper.parserString(source);

    cu2.setPackage(new PackageDeclaration(new NameExpr("diff_package")));
    assertNotEqualsAndHashCode(cu1, cu2);
  }
  @Test
  public void testCommentsDiff() throws Exception {

    CompilationUnit cu1 = Helper.parserString(source_with_comment);
    CompilationUnit cu2 = Helper.parserString(source_without_comment);

    // hashcode can be the same, equals() shall return false
    assertNotEquals(cu1, cu2);
  }
  @Test
  public void testDiffClasses() throws Exception {
    final String source_with_comment = //
        "package japa.parser.javacc; "
            + //
            "public class Teste {}";
    final String source_without_comment = //
        "package japa.parser.javacc; "
            + //
            "public enum Teste {}";

    CompilationUnit cu1 = Helper.parserString(source_with_comment);
    CompilationUnit cu2 = Helper.parserString(source_without_comment);

    assertNotEqualsAndHashCode(cu1, cu2);
  }