package de.urszeidler.eclipse.shr5.util;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import junit.framework.TestCase;
import org.junit.Assert;
import de.urszeidler.eclipse.shr5.Fertigkeit;
import de.urszeidler.eclipse.shr5.FertigkeitsGruppe;
import de.urszeidler.eclipse.shr5.SchadensTyp;
import de.urszeidler.eclipse.shr5.Shr5Factory;
import de.urszeidler.eclipse.shr5.Shr5Package;
import de.urszeidler.eclipse.shr5.util.ShadowrunTools.DamageCode;
public class ShadowrunToolsTest extends TestCase {
public void testParseDamagecode() {
DamageCode damageCode = ShadowrunTools.parseDamageCode("9P");
assertEquals(damageCode.getPower(),9);
assertEquals(damageCode.getType(),SchadensTyp.KOERPERLICH);
damageCode = ShadowrunTools.parseDamageCode("9M");
assertEquals(damageCode.getPower(),9);
assertEquals(damageCode.getType(),SchadensTyp.GEISTIG);
}
public void testParseDamagecode_1() {
DamageCode damageCode = ShadowrunTools.parseDamageCode("(STR+1)P");
assertEquals(damageCode.getPower(),1);
assertEquals(damageCode.getType(),SchadensTyp.KOERPERLICH);
damageCode = ShadowrunTools.parseDamageCode("(STR+1)M");
assertEquals(damageCode.getPower(),1);
assertEquals(damageCode.getType(),SchadensTyp.GEISTIG);
}
public void testFilterSkillGroups() {
ArrayList<FertigkeitsGruppe> arrayList = new ArrayList<FertigkeitsGruppe>();
FertigkeitsGruppe fertigkeitsGruppe = Shr5Factory.eINSTANCE.createFertigkeitsGruppe();
Fertigkeit fertigkeit = Shr5Factory.eINSTANCE.createFertigkeit();
fertigkeit.setAttribut(Shr5Package.Literals.BASE_MAGISCHE_PERSONA__MAGIE);
fertigkeitsGruppe.getFertigkeiten().add(fertigkeit);
fertigkeit = Shr5Factory.eINSTANCE.createFertigkeit();
fertigkeit.setAttribut(Shr5Package.Literals.BASE_MAGISCHE_PERSONA__MAGIE);
fertigkeitsGruppe.getFertigkeiten().add(fertigkeit);
fertigkeit = Shr5Factory.eINSTANCE.createFertigkeit();
fertigkeit.setAttribut(Shr5Package.Literals.BASE_MAGISCHE_PERSONA__MAGIE);
fertigkeitsGruppe.getFertigkeiten().add(fertigkeit);
arrayList.add(fertigkeitsGruppe);
fertigkeitsGruppe = Shr5Factory.eINSTANCE.createFertigkeitsGruppe();
fertigkeit = Shr5Factory.eINSTANCE.createFertigkeit();
fertigkeit.setAttribut(Shr5Package.Literals.BASE_MAGISCHE_PERSONA__MAGIE);
fertigkeitsGruppe.getFertigkeiten().add(fertigkeit);
fertigkeit = Shr5Factory.eINSTANCE.createFertigkeit();
fertigkeit.setAttribut(Shr5Package.Literals.BASE_MAGISCHE_PERSONA__MAGIE);
fertigkeitsGruppe.getFertigkeiten().add(fertigkeit);
fertigkeit = Shr5Factory.eINSTANCE.createFertigkeit();
fertigkeit.setAttribut(Shr5Package.Literals.BASE_MAGISCHE_PERSONA__MAGIE);
fertigkeitsGruppe.getFertigkeiten().add(fertigkeit);
arrayList.add(fertigkeitsGruppe);
fertigkeitsGruppe = Shr5Factory.eINSTANCE.createFertigkeitsGruppe();
fertigkeit = Shr5Factory.eINSTANCE.createFertigkeit();
fertigkeit.setAttribut(Shr5Package.Literals.BASE_MAGISCHE_PERSONA__MAGIE);
fertigkeitsGruppe.getFertigkeiten().add(fertigkeit);
fertigkeit = Shr5Factory.eINSTANCE.createFertigkeit();
fertigkeit.setAttribut(Shr5Package.Literals.BASE_MAGISCHE_PERSONA__MAGIE);
fertigkeitsGruppe.getFertigkeiten().add(fertigkeit);
fertigkeit = Shr5Factory.eINSTANCE.createFertigkeit();
fertigkeit.setAttribut(Shr5Package.Literals.KOERPERLICHE_ATTRIBUTE__KONSTITUTION);
fertigkeitsGruppe.getFertigkeiten().add(fertigkeit);
arrayList.add(fertigkeitsGruppe);
ArrayList<FertigkeitsGruppe> filterSkillGroups = ShadowrunTools.filterSkillGroups(Shr5Package.Literals.BASE_MAGISCHE_PERSONA__MAGIE, arrayList);
assertEquals("",2, filterSkillGroups.size());
}
public void testPermutation() {
ArrayList<Integer> prefix = new ArrayList<Integer>();
ArrayList<Integer> src = new ArrayList<Integer>();
Set<List<Integer>> target = new HashSet<List<Integer>>();
src.add(1);
src.add(2);
src.add(3);
src.add(4);
ShadowrunTools.permutation(prefix, src, target);
Assert.assertEquals(24, target.size());
System.out.println(target.size() +" "+target);
//ShadowrunTools.permutation("", "1234");
}
public void testPermutation1() {
ArrayList<Integer> prefix = new ArrayList<Integer>();
ArrayList<Integer> src = new ArrayList<Integer>();
Set<List<Integer>> target = new HashSet<List<Integer>>();
src.add(1);
src.add(2);
src.add(2);
src.add(4);
ShadowrunTools.permutation(prefix, src, target);
Assert.assertEquals(12, target.size());
System.out.println(target.size() +" "+target);
//ShadowrunTools.permutation("", "1234");
}
}