@Override
  public boolean equals(Object o) {
    if (this == o) return true;
    if (o == null || getClass() != o.getClass()) return false;
    AngularObject<?> that = (AngularObject<?>) o;
    return Objects.equals(name, that.name) &&
            Objects.equals(noteId, that.noteId) &&
            Objects.equals(paragraphId, that.paragraphId);
  }
@Test
  void testEquals() {
    assertEquals(
        new AngularObject("name", "value", "note1", null, null),
        new AngularObject("name", "value", "note1", null, null)
    );

    assertEquals(
        new AngularObject("name", "value", "note1", "paragraph1", null),
        new AngularObject("name", "value", "note1", "paragraph1", null)
    );

    assertEquals(
        new AngularObject("name", "value", null, null, null),
        new AngularObject("name", "value", null, null, null)
    );

    assertEquals(
        new AngularObject("name", "value1", null, null, null),
        new AngularObject("name", "value2", null, null, null)
    );

    assertNotSame(
        new AngularObject("name1", "value", null, null, null),
        new AngularObject("name2", "value", null, null, null)
    );

    assertNotSame(
        new AngularObject("name1", "value", "note1", null, null),
        new AngularObject("name2", "value", "note2", null, null)
    );

    assertNotSame(
        new AngularObject("name1", "value", "note", null, null),
        new AngularObject("name2", "value", null, null, null)
    );

    assertNotSame(
        new AngularObject("name", "value", "note", "paragraph1", null),
        new AngularObject("name", "value", "note", "paragraph2", null)
    );

    assertNotSame(
        new AngularObject("name", "value", "note1", null, null),
        new AngularObject("name", "value", "note1", "paragraph1", null)
    );


  }