/* This file is part of the Joshua Machine Translation System.
*
* Joshua is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License as
* published by the Free Software Foundation; either version 2.1
* of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free
* Software Foundation, Inc., 59 Temple Place, Suite 330, Boston,
* MA 02111-1307 USA
*/
package joshua.corpus.alignment;
import java.io.IOException;
import joshua.corpus.alignment.AlignmentGrid;
import org.testng.Assert;
import org.testng.annotations.Test;
/**
* @author Lane Schwartz
* @version $LastChangedDate: 2009-05-08 16:34:32 -0500 (Fri, 08 May 2009) $
*/
public class AlignmentGridTest {
AlignmentGrid grid;
@Test
public void setup() throws IOException {
grid = new AlignmentGrid("0-0 0-1 1-1 2-1 3-1 0-2 0-3 5-4 4-5 6-5 8-6 8-7 7-8 10-9 12-10 11-11 12-11 13-12 14-13 15-13 16-13 16-14 17-15 18-16 19-17 19-18 19-19 19-20 19-21 20-22 21-24 22-24 25-29 24-31 26-32 27-33 28-34 30-35 31-36 29-37 30-37 31-37 31-38 32-39");
}
@Test(dependsOnMethods={"setup"})
public void testIndividualTargetPoints() {
int[] targetPoints;
targetPoints = grid.getTargetPoints(0, 1);
Assert.assertEquals(targetPoints.length, 4);
Assert.assertEquals(targetPoints[0], 0);
Assert.assertEquals(targetPoints[1], 1);
Assert.assertEquals(targetPoints[2], 2);
Assert.assertEquals(targetPoints[3], 3);
targetPoints = grid.getTargetPoints(1, 2);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 1);
targetPoints = grid.getTargetPoints(2, 3);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 1);
targetPoints = grid.getTargetPoints(3, 4);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 1);
targetPoints = grid.getTargetPoints(4, 5);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 5);
targetPoints = grid.getTargetPoints(5, 6);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 4);
targetPoints = grid.getTargetPoints(6, 7);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 5);
targetPoints = grid.getTargetPoints(7, 8);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 8);
targetPoints = grid.getTargetPoints(8, 9);
Assert.assertEquals(targetPoints.length, 2);
Assert.assertEquals(targetPoints[0], 6);
Assert.assertEquals(targetPoints[1], 7);
targetPoints = grid.getTargetPoints(9, 10);
Assert.assertEquals(targetPoints.length, 0);
targetPoints = grid.getTargetPoints(10, 11);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 9);
targetPoints = grid.getTargetPoints(11, 12);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 11);
targetPoints = grid.getTargetPoints(12, 13);
Assert.assertEquals(targetPoints.length, 2);
Assert.assertEquals(targetPoints[0], 10);
Assert.assertEquals(targetPoints[1], 11);
targetPoints = grid.getTargetPoints(13, 14);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 12);
targetPoints = grid.getTargetPoints(14, 15);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 13);
targetPoints = grid.getTargetPoints(15, 16);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 13);
targetPoints = grid.getTargetPoints(16, 17);
Assert.assertEquals(targetPoints.length, 2);
Assert.assertEquals(targetPoints[0], 13);
Assert.assertEquals(targetPoints[1], 14);
targetPoints = grid.getTargetPoints(17, 18);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 15);
targetPoints = grid.getTargetPoints(18, 19);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 16);
targetPoints = grid.getTargetPoints(19, 20);
Assert.assertEquals(targetPoints.length, 5);
Assert.assertEquals(targetPoints[0], 17);
Assert.assertEquals(targetPoints[1], 18);
Assert.assertEquals(targetPoints[2], 19);
Assert.assertEquals(targetPoints[3], 20);
Assert.assertEquals(targetPoints[4], 21);
targetPoints = grid.getTargetPoints(20, 21);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 22);
targetPoints = grid.getTargetPoints(21, 22);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 24);
targetPoints = grid.getTargetPoints(22, 23);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 24);
targetPoints = grid.getTargetPoints(23, 24);
Assert.assertEquals(targetPoints.length, 0);
targetPoints = grid.getTargetPoints(24, 25);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 31);
targetPoints = grid.getTargetPoints(25, 26);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 29);
targetPoints = grid.getTargetPoints(26, 27);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 32);
targetPoints = grid.getTargetPoints(27, 28);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 33);
targetPoints = grid.getTargetPoints(28, 29);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 34);
targetPoints = grid.getTargetPoints(29, 30);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 37);
targetPoints = grid.getTargetPoints(30, 31);
Assert.assertEquals(targetPoints.length, 2);
Assert.assertEquals(targetPoints[0], 35);
Assert.assertEquals(targetPoints[1], 37);
targetPoints = grid.getTargetPoints(31, 32);
Assert.assertEquals(targetPoints.length, 3);
Assert.assertEquals(targetPoints[0], 36);
Assert.assertEquals(targetPoints[1], 37);
Assert.assertEquals(targetPoints[2], 38);
targetPoints = grid.getTargetPoints(32, 33);
Assert.assertEquals(targetPoints.length, 1);
Assert.assertEquals(targetPoints[0], 39);
}
// @Test(dependsOnMethods={"setup"})
// public void testTargetPoints() {
//
// int[] rowPoints;
//
// rowPoints = grid.getTargetPoints(0, 2);
// System.out.println(Arrays.toString(rowPoints));
// Assert.assertEquals(rowPoints.length, 4);
// Assert.assertEquals(rowPoints[0], 0);
// Assert.assertEquals(rowPoints[1], 1);
// Assert.assertEquals(rowPoints[2], 2);
// Assert.assertEquals(rowPoints[3], 3);
//
// rowPoints = grid.getTargetPoints(1, 3);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 1);
//
// rowPoints = grid.getTargetPoints(2, 4);
// Assert.assertEquals(rowPoints.length, 1);
// Assert.assertEquals(rowPoints[0], 1);
//
// rowPoints = grid.getTargetPoints(3, 5);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 1);
// Assert.assertEquals(rowPoints[1], 5);
//
// rowPoints = grid.getTargetPoints(4, 6);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 4);
// Assert.assertEquals(rowPoints[1], 5);
//
// rowPoints = grid.getTargetPoints(5, 7);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 4);
// Assert.assertEquals(rowPoints[1], 5);
//
// rowPoints = grid.getTargetPoints(6, 8);
// Assert.assertEquals(rowPoints.length, 1);
// Assert.assertEquals(rowPoints[0], 5);
// Assert.assertEquals(rowPoints[1], 8);
//
// rowPoints = grid.getTargetPoints(7, 9);
// Assert.assertEquals(rowPoints.length, 1);
// Assert.assertEquals(rowPoints[0], 8);
//
// rowPoints = grid.getTargetPoints(8, 10);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 6);
// Assert.assertEquals(rowPoints[1], 7);
//
// rowPoints = grid.getTargetPoints(9, 11);
// Assert.assertEquals(rowPoints.length, 1);
// Assert.assertEquals(rowPoints[0], 9);
//
// rowPoints = grid.getTargetPoints(10, 12);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 9);
// Assert.assertEquals(rowPoints[1], 11);
//
// rowPoints = grid.getTargetPoints(11, 13);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 10);
// Assert.assertEquals(rowPoints[1], 11);
//
// rowPoints = grid.getTargetPoints(12, 14);
// Assert.assertEquals(rowPoints.length, 3);
// Assert.assertEquals(rowPoints[0], 10);
// Assert.assertEquals(rowPoints[1], 11);
// Assert.assertEquals(rowPoints[2], 12);
//
// rowPoints = grid.getTargetPoints(13, 15);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 12);
// Assert.assertEquals(rowPoints[1], 13);
//
// rowPoints = grid.getTargetPoints(14, 16);
// Assert.assertEquals(rowPoints.length, 1);
// Assert.assertEquals(rowPoints[0], 13);
//
// rowPoints = grid.getTargetPoints(15, 17);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 13);
// Assert.assertEquals(rowPoints[1], 14);
//
// rowPoints = grid.getTargetPoints(16, 18);
// Assert.assertEquals(rowPoints.length, 3);
// Assert.assertEquals(rowPoints[0], 13);
// Assert.assertEquals(rowPoints[1], 14);
// Assert.assertEquals(rowPoints[2], 15);
//
// rowPoints = grid.getTargetPoints(17, 19);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 15);
// Assert.assertEquals(rowPoints[1], 16);
//
// rowPoints = grid.getTargetPoints(18, 20);
// Assert.assertEquals(rowPoints.length, 6);
// Assert.assertEquals(rowPoints[0], 16);
// Assert.assertEquals(rowPoints[1], 17);
// Assert.assertEquals(rowPoints[2], 18);
// Assert.assertEquals(rowPoints[3], 19);
// Assert.assertEquals(rowPoints[4], 20);
// Assert.assertEquals(rowPoints[5], 21);
//
//
// rowPoints = grid.getTargetPoints(19, 21);
// Assert.assertEquals(rowPoints.length, 6);
// Assert.assertEquals(rowPoints[0], 17);
// Assert.assertEquals(rowPoints[1], 18);
// Assert.assertEquals(rowPoints[2], 19);
// Assert.assertEquals(rowPoints[3], 20);
// Assert.assertEquals(rowPoints[4], 21);
// Assert.assertEquals(rowPoints[5], 22);
//
// rowPoints = grid.getTargetPoints(20, 22);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 22);
// Assert.assertEquals(rowPoints[1], 24);
//
// rowPoints = grid.getTargetPoints(21, 23);
// Assert.assertEquals(rowPoints.length, 1);
// Assert.assertEquals(rowPoints[0], 24);
//
// rowPoints = grid.getTargetPoints(22, 24);
// Assert.assertEquals(rowPoints.length, 1);
// Assert.assertEquals(rowPoints[0], 24);
//
// rowPoints = grid.getTargetPoints(23, 25);
// Assert.assertEquals(rowPoints.length, 1);
// Assert.assertEquals(rowPoints[0], 31);
//
// rowPoints = grid.getTargetPoints(24, 26);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 29);
// Assert.assertEquals(rowPoints[1], 31);
//
// rowPoints = grid.getTargetPoints(25, 27);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 29);
// Assert.assertEquals(rowPoints[1], 32);
//
// rowPoints = grid.getTargetPoints(26, 28);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 32);
// Assert.assertEquals(rowPoints[1], 33);
//
// rowPoints = grid.getTargetPoints(27, 29);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 33);
// Assert.assertEquals(rowPoints[1], 34);
//
// rowPoints = grid.getTargetPoints(28, 30);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 34);
// Assert.assertEquals(rowPoints[1], 37);
//
// rowPoints = grid.getTargetPoints(29, 31);
// Assert.assertEquals(rowPoints.length, 2);
// Assert.assertEquals(rowPoints[0], 35);
// Assert.assertEquals(rowPoints[1], 37);
//
// rowPoints = grid.getTargetPoints(30, 32);
// Assert.assertEquals(rowPoints.length, 4);
// Assert.assertEquals(rowPoints[0], 35);
// Assert.assertEquals(rowPoints[1], 36);
// Assert.assertEquals(rowPoints[2], 37);
// Assert.assertEquals(rowPoints[3], 38);
//
// rowPoints = grid.getTargetPoints(31, 33);
// Assert.assertEquals(rowPoints.length, 4);
// Assert.assertEquals(rowPoints[0], 36);
// Assert.assertEquals(rowPoints[1], 37);
// Assert.assertEquals(rowPoints[2], 38);
// Assert.assertEquals(rowPoints[3], 39);
// }
}