code: package com.quui.tm2.agents.classifier;
  
  import java.util.ArrayList;
  import java.util.Arrays;
  import java.util.HashMap;
  import java.util.List;
  import java.util.Map;
  
  import org.junit.Test;
  
  import com.quui.tm2.agents.classifier.console.WSD;
  
  public class WSDMiniTests {
  	@Test
  	public void testWSDMiniHash() {
  		System.out.println("AAA".hashCode());
  		System.out.println("zzz".hashCode());
  		System.out.println("zzz".hashCode() - "AAA".hashCode());
  		System.out.println("ded".hashCode());
  	}
  
  	@Test
  	public void testWSDMini0() {
  		String split = "[^a-zA-Z0-9:;]";
  		String trainingCorpus = "Ich hole Geld bei der Bank:S0 ab das tu ich gern."
  				+ "Leider war die eine Bank:S0 schon zu gewesen gestern."
  				+ "Sie sitzen auf einer Bank:S1 im Garten am Mittelmeer."
  				+ "Es ist eine gruene Bank:S1 aus Spanien im Mittelmeer.";
  
  		String classificationCorpus = "Ich hole Geld bei der Bank:S0 ab das tu ich gern."
  				+ "Leider war die eine Bank:S0 schon zu gewesen gestern."
  				+ "Sie sitzen auf einer Bank:S1 im Garten am Mittelmeer."
  				+ "Es ist eine gruene Bank:S1 aus Spanien im Mittelmeer.";
  		List<String> vocabulary = new ArrayList<String>(Arrays
  				.asList((trainingCorpus + " " + classificationCorpus)
  						.split(split)));
  		List<String> s = Arrays.asList(new String[] { "S0", "S1" });
  		Map<String, List<String>> senses = new HashMap<String, List<String>>();
  		senses.put("Bank", s);
  		WSD wsd = new WSD(vocabulary, new int[] { 8,4 }, 0.25f, senses, "word", 4);
  		wsd.trainText(Arrays.asList(trainingCorpus.split(split)));
  		wsd.disambiguateText(Arrays.asList(classificationCorpus.split(split)));
  	}
  
  	@Test
  	public void testWSDMini1() {
  		String split = "[^a-zA-Z0-9:;]";
  		String trainingCorpus = "Der nagelneue rot gestreifte Apache:S0 flog ueber Kabul hinueber."
  				+ "Bereits der zehnte der Apache:S0 wurde am Montag in Kabul abgeschossen."
  				+ "Auf der anderen Seite ist es aber auch so, dass auch der Webserver der Apache:S1 Software Foundation abstuerzen kann."
  				+ "Zudem gibt es von der Apache:S1 Software Foundation auch andere Programme."
  				+ "In anderem Zusammenhang ist ein Apache:S2 ein Mitglied eines nordamerikanisches Indianervolkes."
  				+ "Dieser bekannte und beruehmte Apache:S2 ist ein gefuerchteter Krieger. ";
  
  		String classificationCorpus = "Es sass eimal ein Apache:S2 im Gras am Meer."
  				+ "Der neue schnelle rote teure Apache:S0 flog an uns vorbei.";
  
  		List<String> vocabulary = new ArrayList<String>(Arrays
  				.asList((trainingCorpus + " " + classificationCorpus)
  						.split(split)));
  		List<String> s = Arrays.asList(new String[] { "S0", "S1", "S2" });
  		Map<String, List<String>> senses = new HashMap<String, List<String>>();
  		senses.put("Apache", s);
  		WSD wsd = new WSD(vocabulary, new int[] { 4, 2 }, 1, senses, "word", 4);
  		wsd.trainText(Arrays.asList(trainingCorpus.split(split)));
  		wsd.disambiguateText(Arrays.asList(classificationCorpus.split(split)));
  	}
  
  	@Test
  	public void testWSDMini3() {
  		String split = "[^a-zA-Z0-9:;]";
  		String trainingCorpus = "Ich hole Geld bei der Bank:S0 ab das tu ich gern."
  				+ "Leider war die eine Bank:S0 schon zu gewesen gestern."
  				+ "Sie sitzen auf einer Bank:S1 im Garten am Mittelmeer."
  				+ "Es ist eine gruene Bank:S1 aus Spanien im Mittelmeer.";
  
  		String classificationCorpus = "Leider war die andere Bank:S0 schon geschlossen gewesen heute."
  				+ "Ich war bei tolle Bank:S0 ab zu geschlossen gewesen."
  				+ "Es war die gruene Bank:S1 aus Spanien im Mittelmeer."
  				+ "Hier war eine eine Bank:S1 aus Holland am rumstehen.";
  
  		List<String> vocabulary = new ArrayList<String>(Arrays
  				.asList((trainingCorpus + " " + classificationCorpus)
  						.split(split)));
  		List<String> s = Arrays.asList(new String[] { "S0", "S1" });
  		Map<String, List<String>> senses = new HashMap<String, List<String>>();
  		senses.put("Bank", s);
  		WSD wsd = new WSD(vocabulary, new int[] { 2, 4 }, 1, senses, "word", 4);
  		wsd.trainText(Arrays.asList(trainingCorpus.split(split)));
  		wsd.disambiguateText(Arrays.asList(classificationCorpus.split(split)));
  	}
  
  	@Test
  	public void testWSDMini4() {
  		String split = "[^a-zA-Z0-9:;]";
  		String trainingCorpus = "Meet me at the bank:S0 of the beautiful river. "
  				+ "That night by the river bank:S0 we saw the stranger. "
  				+ "He had always dreamed of working in the bank:S1 where his father had worked his entire life. "
  				+ "He was saving in a piggy bank:S1 for that red bicycle.";
  
  		String classificationCorpus = "We played some volleyball on the bank:S0 of the river that day. " +
  				"The water had flooded the bank:S0 completely on the whole western part of the area. " +
  				"In all the area, every bank:S1 was closed at four already. " +
  				"When he entered the bank:S1 he immedeately saw her standing across the hall.";
  
  		List<String> vocabulary = new ArrayList<String>(Arrays
  				.asList((trainingCorpus + " " + classificationCorpus)
  						.split(split)));
  		List<String> s = Arrays.asList(new String[] { "S0", "S1" });
  		Map<String, List<String>> senses = new HashMap<String, List<String>>();
  		senses.put("bank", s);
  		WSD wsd = new WSD(vocabulary, new int[] { 4,2 }, 1, senses, "3-gram", 4);
  		wsd.trainText(Arrays.asList(trainingCorpus.split(split)));
  		wsd.disambiguateText(Arrays.asList(classificationCorpus.split(split)));
  	}
  
  }
  