/*
* Copyright 2012
* Ubiquitous Knowledge Processing (UKP) Lab and FG Language Technology
* Technische Universität Darmstadt
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package de.tudarmstadt.ukp.clarin.webanno.curation.casdiff;
import junit.framework.TestCase;
import org.apache.uima.cas.FeatureStructure;
import org.apache.uima.fit.factory.JCasBuilder;
import org.apache.uima.jcas.JCas;
import de.tudarmstadt.ukp.dkpro.core.api.lexmorph.type.pos.POS;
import de.tudarmstadt.ukp.dkpro.core.api.segmentation.type.Token;
public class TestCasDiff extends TestCase {
/* TODO correct test case
@Test
public void testDoDiff() throws Exception {
// generate two cases
JCas jCas1 = JCasFactory.createJCas();
JCasBuilder builder1 = new JCasBuilder(jCas1);
getCas1(builder1, jCas1);
JCas jCas2 = JCasFactory.createJCas();
JCasBuilder builder2 = new JCasBuilder(jCas2);
getCas2(builder2, jCas2);
Map<String, CAS> diffMap = new HashMap<String, CAS>();
diffMap.put("user1", jCas1.getCas());
diffMap.put("user2", jCas2.getCas());
Type entryType = CasUtil.getType(jCas1.getCas(), Token.class);
System.out.println(System.currentTimeMillis());
Map<String, Set<FeatureStructure>> result = CasDiff.doDiff(entryType, diffMap, 0, 0);
// check result
// assertEquals(result.get("user1").size(), 2);
for (FeatureStructure fs : result.get("user1")) {
assertTrue(hasPos(fs, "I"));
}
// assertEquals(result.get("user2").size(), 2);
for (FeatureStructure fs : result.get("user2")) {
assertTrue(hasPos(fs, "O"));
}
}
*/
@SuppressWarnings("unused")
private boolean hasPos(FeatureStructure fs, String posValue) {
if (fs instanceof POS) {
POS pos = (POS) fs;
if(pos.getPosValue().equals(posValue)) {
return true;
}
} else if (fs instanceof Token) {
Token token = (Token) fs;
if(token.getPos().getPosValue().equals(posValue)) {
return true;
}
}
return false;
}
public void testDoDiff2() throws Exception {
// TODO 1 Token mehr
}
@SuppressWarnings("unused")
private void getCas1(JCasBuilder aBuilder, JCas aJCas) {
Token token1 = aBuilder.add("Hallo",Token.class);
POS pos1 = new POS(aJCas, token1.getBegin(), token1.getEnd());
pos1.setPosValue("I");
pos1.addToIndexes();
token1.setPos(pos1);
Token token2 = aBuilder.add("Welt",Token.class);
POS pos2 = new POS(aJCas, token2.getBegin(), token2.getEnd());
pos2.setPosValue("N");
pos2.addToIndexes();
token2.setPos(pos2);
Token token3 = aBuilder.add("!",Token.class);
POS pos3 = new POS(aJCas, token3.getBegin(), token3.getEnd());
pos3.setPosValue("SENT");
token3.setPos(pos3);
pos3.addToIndexes();
}
@SuppressWarnings("unused")
private void getCas2(JCasBuilder aBuilder, JCas aJCas) {
Token token1 = aBuilder.add("Hallo",Token.class);
POS pos1 = new POS(aJCas, token1.getBegin(), token1.getEnd());
pos1.setPosValue("O");
pos1.addToIndexes();
token1.setPos(pos1);
Token token2 = aBuilder.add("Welt",Token.class);
POS pos2 = new POS(aJCas, token2.getBegin(), token2.getEnd());
pos2.setPosValue("N");
pos2.addToIndexes();
token2.setPos(pos2);
Token token3 = aBuilder.add("!",Token.class);
POS pos3 = new POS(aJCas, token3.getBegin(), token3.getEnd());
pos3.setPosValue("SENT");
token3.setPos(pos3);
pos3.addToIndexes();
}
}