예제 #1
0
파일: TestAnchor.java 프로젝트: nzilbb/ag
 @Test
 public void extendedAttributes() {
   Anchor a = new Anchor();
   a.setId("123");
   a.setOffset(456.789);
   a.put("alignmentStatus", 50);
   assertEquals(new Integer(50), a.get("alignmentStatus"));
 }
예제 #2
0
파일: TestAnchor.java 프로젝트: nzilbb/ag
  @Test
  public void copyConstructor() {
    Anchor a = new Anchor("123", 456.789);
    // change offset to generate tracked original
    a.setOffset(123.456);
    // set copiable attribute
    a.put("copy", Boolean.TRUE);
    // set transient attribute
    a.put("@dontCopy", Boolean.TRUE);

    Anchor newA = new Anchor(a);
    assertNull("id not copied", newA.getId());
    assertEquals("offset copied", new Double(123.456), newA.getOffset());
    assertNull("originalOffset not copied", newA.get("originalOffset"));
    assertEquals("originalOffset not copied", new Double(123.456), newA.getOriginalOffset());
    assertEquals("other attribute copied", Boolean.TRUE, newA.get("copy"));
    assertNull("transient attribute not copied", newA.get("@dontCopy"));
  }
예제 #3
0
파일: TestAnchor.java 프로젝트: nzilbb/ag
 @Test
 public void cloning() {
   Anchor a = new Anchor("123", 99.0, Constants.CONFIDENCE, Constants.CONFIDENCE_AUTOMATIC);
   a.put("foo", "foo");
   Anchor c = (Anchor) a.clone();
   assertEquals("123", c.getId());
   assertEquals(Constants.CONFIDENCE_AUTOMATIC, c.get(Constants.CONFIDENCE));
   assertEquals(new Double(99.0), c.getOffset());
   assertFalse(c.containsKey("foo"));
 }
예제 #4
0
파일: TestAnchor.java 프로젝트: nzilbb/ag
  @Test
  public void basicAttributes() {
    // Default constructor
    Anchor a = new Anchor();
    a.setId("123");
    a.setOffset(456.789);
    assertEquals("123", a.getId());
    assertEquals("123", a.get("id"));
    assertEquals(new Double(456.789), a.getOffset());
    assertEquals(new Double(456.789), a.get("offset"));
    assertEquals("456.789", a.toString());

    // Basic constructor
    a = new Anchor("123", 456.789);
    assertEquals("123", a.getId());
    assertEquals("123", a.get("id"));
    assertEquals(new Double(456.789), a.getOffset());
    assertEquals(new Double(456.789), a.get("offset"));
    assertEquals("456.789", a.toString());
  }
예제 #5
0
파일: TestAnchor.java 프로젝트: nzilbb/ag
  @Test
  public void changeTracking() {
    Anchor a = new Anchor();
    a.setId("123");
    a.setOffset(456.789);
    a.put("foo", "bar");
    assertEquals(new Double(456.789), a.getOffset());
    assertEquals("Offset and original are the same", a.getOriginalOffset(), a.getOffset());
    assertEquals(Change.Operation.NoChange, a.getChange());

    a.put("foo", "foo");
    assertEquals("Only offset affects change:", Change.Operation.NoChange, a.getChange());

    a.setOffset(123.456);
    assertEquals(new Double(123.456), a.getOffset());
    assertEquals(
        "Original offset remembers first offset:", new Double(456.789), a.get("originalOffset"));
    assertEquals(
        "Original offset remembers first offset:", new Double(456.789), a.getOriginalOffset());
    assertEquals(Change.Operation.Update, a.getChange());

    a.setOffset(456.123);
    assertEquals(new Double(456.123), a.getOffset());
    assertEquals("Original offset only set once:", new Double(456.789), a.getOriginalOffset());
    assertEquals(Change.Operation.Update, a.getChange());

    a.rollback();
    assertEquals(new Double(456.789), a.getOffset());
    assertEquals("Offset and original are the same", a.getOriginalOffset(), a.getOffset());
    assertEquals(Change.Operation.NoChange, a.getChange());

    a.destroy();
    assertEquals(Change.Operation.Destroy, a.getChange());
    a.rollback();
    assertEquals(Change.Operation.NoChange, a.getChange());

    a.create();
    assertEquals(Change.Operation.Create, a.getChange());
    a.rollback();
    assertEquals("Create cannot be rolled back:", Change.Operation.Create, a.getChange());
  }