Package edu.umd.hooka

Source Code of edu.umd.hooka.AlignmentTest

package edu.umd.hooka;


import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.FileInputStream;
import java.util.Iterator;

import edu.umd.hooka.alignment.aer.ReferenceAlignment;

import junit.framework.TestCase;

public class AlignmentTest extends TestCase {

  Alignment a;
  File temp;
  DataInputStream dis;
 
  public AlignmentTest()
  {
    super();
    a = new Alignment(6, 5);
    a.align(0, 0);
    a.align(2, 1);
    a.align(1, 2);
    a.align(5, 2);
    a.align(3, 3);
    a.align(4, 4);   
  }
 
  protected void createFiles() throws Exception {
    super.setUp();
    // gestern habe ich eine Kuh gesehen
    // yesterday i  saw  a   cow 
    File temp = File.createTempFile("align", null);
    temp.deleteOnExit();
    DataOutputStream dos = new DataOutputStream(
      new FileOutputStream(temp));
    a.write(dos);
    dos.close();
    dis = new DataInputStream(
        new FileInputStream(temp));
  }

  protected void deleteFiles() throws Exception {
    super.tearDown();
    dis.close();
  }

  public void testReadFields() {
    Alignment b = new Alignment();
    try {
      createFiles();
      b.readFields(dis);
      Alignment c= Alignment.union(a, b);
      assertTrue(b.equals(a));
      assertTrue(b.equals(c));
      Alignment d= Alignment.union(a, b);
      assertTrue(b.equals(d));
      deleteFiles();
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
 
  public void testEmptyAlignment() {
    Alignment c = new Alignment(4,4,"");
    assertFalse(c.aligned(0, 0));
    assertEquals(c.toString(), "");
  }
 
  public void testUnalignF() {
    Alignment b = (Alignment)a.clone();
    b.unalignF(1);
    assertTrue(a.aligned(1, 2));
    assertFalse(b.aligned(1, 2));
  }
 
  public void testAlignment() {
    Alignment c = new Alignment(2,2,"0-1 1-1");
    assertTrue(c.aligned(0, 1));
    assertTrue(c.aligned(1, 1));
    assertFalse(c.aligned(0, 0));
    assertFalse(c.aligned(1, 0));
    try {
      Alignment err = new Alignment(2,2,"1-2");
      System.err.println(err);
      assertTrue(false);
    } catch (Exception e) {
      assertTrue(true);
    }
  }

  public void testNeighborAligned() {
    assertFalse(a.neighborAligned(0, 0));
  }

  public void testLneighborAligned() {
    assertTrue(a.neighborAligned(3, 2));
  }

  public void testIterator() {
    Alignment b = new Alignment(10,10);
    assertFalse(b.iterator().hasNext());
   
    int sum = 0;
    for (Alignment.IntPair i : a) {
      sum += i.f;
    }
    assertEquals(sum, 15);
    Iterator<Alignment.IntPair> i = a.iterator();
    Alignment.IntPair first = i.next();
    assertEquals(first.f, 0);
    assertEquals(first.e, 0);
    Alignment.IntPair sec = i.next();
    assertEquals(sec.f, 2);
    assertEquals(i.next().f, 1);
    assertEquals(i.next().f, 5);
    assertEquals(i.next().f, 3);
    assertEquals(i.next().e, 4);
    assertFalse(i.hasNext());
  }

  public void testCountNeighbors() {
    assertEquals(a.countNeighbors(0, 1, Alignment.DIAG_NEIGHBORS), 2);
  }

  public void testGetELength() {
    assertEquals(a.getELength(), 5);
  }

  public void testGetFLength() {
    assertEquals(a.getFLength(), 6);
  }

  public void testAligned() {
    assertTrue(a.aligned(0, 0));
  }
 
  public void testMergeEnglishWords() {
    assertTrue(a.aligned(0, 0));
    Alignment x = a.mergeEnglishWords(1,2).mergeEnglishWords(2, 3);
    System.err.println(x.toStringVisual());
  }

  public void testSplitEnglishWords() {
    assertTrue(a.aligned(0, 0));
    Alignment x = a;
    System.err.println(x.toStringVisual());
    x = a.splitEnglishWords(0);
    System.err.println(x.toStringVisual());
  }
  public void testSplitForeignWords() {
    assertTrue(a.aligned(0, 0));
    System.err.println("FOREIGN");
    Alignment x = a;
    System.err.println(x.toStringVisual());
    x = a.splitForeignWords(0);
    System.err.println(x.toStringVisual());
  }

  public void testAlign() {
    Alignment b = (Alignment)a.clone();
    assertTrue(b.equals(a));
    b.align(0, 4);
    assertTrue(b.aligned(0, 4));
    Alignment c = Alignment.intersect(a, b);
    assertTrue(c.equals(a));
    assertFalse(c.equals(b));
  }

  public void testFromGiza() {
    String eline = "a la bruja -ja verde";
    String fline = "NULL ({ 1 }) the ({ 2 }) green ({ 5 }) witch ({ 3 })";
    Alignment b = Alignment.fromGiza(eline, fline, false);
    Alignment c = Alignment.fromGiza(eline, fline, true);
    assertTrue(c.getTranspose().equals(b));
    assertEquals(b.getELength(), 5);
    assertEquals(b.getFLength(), 3);
    assertEquals(c.getELength(), 3);
    assertEquals(c.getFLength(), 5);
    String eline2 = "the green witch";
    String fline2 = "NULL ({ }) a ({ }) la ({ 1 }) bruja ({ 3 }) -ja ({ 3 }) verde ({ 2 })";
    Alignment x = Alignment.fromGiza(eline2, fline2, false);
    Alignment union = Alignment.union(c, x);
    assertFalse(union.equals(c));
  }
 
  public void testGetTranspose() {
    Alignment b = a.getTranspose();
    assertEquals(a.getELength(), b.getFLength());
    assertEquals(b.getELength(), a.getFLength());
  }

  public void testToString() {
    assertEquals(a.toString(), "0-0 1-2 2-1 3-3 4-4 5-2");
  }

  public void testIntersect() {
    Alignment a = new Alignment(2,2);
    Alignment b = new Alignment(2,2);
    a.align(1, 1);
    a.align(0, 0);
    b.align(0, 1);
    b.align(1, 0);
    Alignment c = Alignment.intersect(a, b);
    Alignment d = new Alignment(2,2);
    assertTrue(d.equals(c));
    b.align(0, 0);
    c = Alignment.intersect(a, b);
    assertTrue(c.aligned(0, 0));
    assertFalse(c.aligned(0, 1));
    assertFalse(c.aligned(1, 1));
    assertFalse(c.aligned(1, 0));
  }

  public void testUnion() {
    Alignment a = new Alignment(2,2);
    Alignment b = new Alignment(2,2);
    a.align(1, 1);
    a.align(0, 0);
    b.align(0, 1);
    b.align(1, 0);
    Alignment c = Alignment.union(a, b);
    assertTrue(c.aligned(0, 0));
    assertTrue(c.aligned(1, 1));
    assertTrue(c.aligned(1, 0));
    assertTrue(c.aligned(0, 1));
  }
 
  public void testReference() {
    ReferenceAlignment ra = new ReferenceAlignment(4,5);
    ra.align(0, 0);
    ra.sureAlign(1, 1);
    ra.sureAlign(3, 4);
    ra.align(2, 4);
   
    Alignment a = new Alignment(4,5);
    a.align(0, 1);
    a.align(1, 1);
    a.align(2, 4);
    a.align(1, 4);
    assertEquals(1,ra.countSureHits(a));
   
//    Alignment b = new Alignment(3,4);
//    try {
//      ra.countProbableHits(b);
//      fail("Should fail");
//    } catch (RuntimeException f) {}
  }
}
TOP

Related Classes of edu.umd.hooka.AlignmentTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.