blob: a0080ab3001adeeddb9af8f19d2f478c9aa28d99 [file] [log] [blame]
package de.ids_mannheim.korap.index;
import java.util.*;
import java.io.*;
import static org.junit.Assert.*;
import org.junit.Test;
import org.junit.Ignore;
import org.junit.runner.RunWith;
import org.junit.runners.JUnit4;
import de.ids_mannheim.korap.index.TermInfo;
import java.nio.ByteBuffer;
@RunWith(JUnit4.class)
public class TestTermInfo {
@Test
public void termExample1 () throws IOException {
byte[] b = new byte[16];
ByteBuffer bb = ByteBuffer.allocate(16);
bb.put((byte) 64); // span PTI
bb.putInt(20); // startOffset
bb.putInt(25); // endOffset
bb.putInt(7); // endPos
bb.put((byte) 4); // depth
TermInfo term = new TermInfo("<>:mate/p:NN", 4, bb).analyze();
assertEquals("type", term.getType(), "span");
assertEquals("value", term.getValue(), "NN");
assertEquals("foundry", term.getFoundry(), "mate");
assertEquals("layer", term.getLayer(), "p");
assertEquals("startPos", term.getStartPos(), 4);
assertEquals("endPos", term.getEndPos(), 6);
assertEquals("startChar", term.getStartChar(), 20);
assertEquals("endChar", term.getEndChar(), 25);
assertEquals("depth", term.getDepth(), (byte) 4);
bb.clear();
term = new TermInfo("mate/p:NN", 9, bb).analyze();
assertEquals("type", term.getType(), "term");
assertEquals("value", term.getValue(), "NN");
assertEquals("foundry", term.getFoundry(), "mate");
assertEquals("layer", term.getLayer(), "p");
assertEquals("startPos", term.getStartPos(), 9);
assertEquals("endPos", term.getEndPos(), 9);
assertEquals("startChar", term.getStartChar(), -1);
assertEquals("endChar", term.getEndChar(), -1);
assertEquals("depth", term.getDepth(), 0);
bb.clear();
bb.put((byte) 32); // term-to-term
bb.putInt(17); // right-part-token-position
bb.putShort((short) 1); // left-part-tui
bb.putShort((short) 1); // right-part-tui
term = new TermInfo(">:xip/p:ADJ", 11, bb).analyze();
assertEquals("type", term.getType(), "relSrc");
assertEquals("value", term.getValue(), "ADJ");
assertEquals("foundry", term.getFoundry(), "xip");
assertEquals("layer", term.getLayer(), "p");
assertEquals("startPos", term.getStartPos(), 11);
assertEquals("targetStartPos", term.getTargetStartPos(), 17);
assertEquals("startChar", term.getStartChar(), -1);
assertEquals("endChar", term.getEndChar(), -1);
assertEquals("depth", term.getDepth(), 0);
bb.clear();
bb.put((byte) 32); // term-to-term
bb.putInt(24);
term = new TermInfo("<:xip/m:number:pl", 40, bb).analyze();
assertEquals("type", term.getType(), "relTarget");
assertEquals("value", term.getValue(), "number:pl");
assertEquals("foundry", term.getFoundry(), "xip");
assertEquals("layer", term.getLayer(), "m");
assertEquals("startPos", term.getStartPos(), 23);
assertEquals("endPos", term.getEndPos(), 40);
assertEquals("startChar", term.getStartChar(), -1);
assertEquals("endChar", term.getEndChar(), -1);
assertEquals("depth", term.getDepth(), 0);
bb.clear();
bb.putInt(240).putInt(400);
term = new TermInfo("_30", 30, bb).analyze();
assertEquals("type", term.getType(), "pos");
assertEquals("value", term.getValue(), "30");
assertNull("foundry", term.getFoundry());
assertNull("layer", term.getLayer());
assertEquals("startPos", term.getStartPos(), 30);
assertEquals("endPos", term.getEndPos(), 30);
assertEquals("startChar", term.getStartChar(), 240);
assertEquals("endChar", term.getEndChar(), 400);
assertEquals("depth", term.getDepth(), 0);
bb.clear();
bb.put((byte) 64); // span PTI
bb.putInt(20); // startOffset
bb.putInt(25); // endOffset
bb.putInt(24); // endPos
term = new TermInfo("<>:s", 20, bb).analyze();
assertEquals("type", term.getType(), "span");
assertNull("value", term.getValue());
assertEquals("foundry", term.getFoundry(), "base");
assertEquals("layer", term.getLayer(), "s");
assertEquals("startPos", term.getStartPos(), 20);
assertEquals("endPos", term.getEndPos(), 23);
assertEquals("startChar", term.getStartChar(), 20);
assertEquals("endChar", term.getEndChar(), 25);
assertEquals("depth", term.getDepth(), 0);
bb.clear();
bb.put((byte) 64); // span PTI
bb.putInt(20); // startOffset
bb.putInt(25); // endOffset
bb.putInt(24); // endPos
term = new TermInfo("<>:tag/x", 20, bb).analyze();
assertEquals("type", term.getType(), "span");
assertNull("value", term.getValue());
assertEquals("foundry", term.getFoundry(), "tag");
assertEquals("layer", term.getLayer(), "x");
assertEquals("startPos", term.getStartPos(), 20);
assertEquals("endPos", term.getEndPos(), 23);
assertEquals("startChar", term.getStartChar(), 20);
assertEquals("endChar", term.getEndChar(), 25);
assertEquals("depth", term.getDepth(), 0);
bb.clear();
bb.put((byte) 17); // att PTI
bb.putShort((short)1);
bb.putInt(25);
term = new TermInfo("@:dereko/s:mode:direct", 20, bb).analyze();
assertEquals("type", term.getType(), "attr");
assertEquals("value", term.getValue(), "mode:direct");
assertEquals("foundry", term.getFoundry(), "dereko");
assertEquals("layer", term.getLayer(), "s");
assertEquals("startPos", term.getStartPos(), 20);
assertEquals("endPos", term.getEndPos(), 20);
assertEquals("startChar", term.getStartChar(), -1);
assertEquals("endChar", term.getEndChar(), -1);
assertEquals("depth", term.getDepth(), 0);
};
};