package player; import player.PlayerI.DeliverAgentI; import player.PlayerI.FinishAgentI; import java.text.DecimalFormat; import gen.*; import edu.neu.ccs.demeterf.demfgen.lib.List; public class Test { static DecimalFormat formLong = new DecimalFormat("0.00000"), formShort = new DecimalFormat("0.00"); /** Shorter Print Method */ static void p(String s){ System.out.println(s.replace("\n", "\n ")); } /** Connection to the outside world... */ public static void main(String[] args) throws ParseException{ long start = System.currentTimeMillis(); //testCoinFlip //testFinish(); //testDeliver(); testQuality(); //testPrint(); p(done(System.currentTimeMillis()-start)); } /** Return the timing results when done */ static String done(long time){ return " Done: "+formShort.format(time/1000.0)+" sec."; } /** Test the random coin flip Util Methods... */ static void testCoinFlip(){ final int MAX = 100000; final double BIAS = .12345; int count = 0; for(int i = 0; i < MAX; i++) if(Util.coinFlip(BIAS))count++; p(" * Bias of : "+BIAS); p(" * Result : "+formLong.format(count/(double)MAX)); p(" * Diff of : "+formLong.format(Math.abs(BIAS-(count/(double)MAX)))); } /** Examples for testing... */ static final String undelivered = "deriv[\"GenericPlayer_undeliv\" 2 1 0.5" + " type classic [27 43]"+ "]", unfinished = "deriv[\"GenericPlayer_unfin\" 2 1 0.25" + " type classic [27 ]"+ " rm[ 1: 27 a b c"+ " 1: 27 d e f"+ " 1: 27 f b d ]"+ "]", finished = "deriv[\"Test\" 6 5 0.14 type classic [8 10 14 30 62 126 254 ]"+ " rm[ 3: 8 a b c 10: 8 a b d 4: 8 a b e 5: 8 a c d 10: 8 a c e"+ " 6: 8 a d e 6: 8 b c d 2: 8 b c e 2: 8 b d e ]"+ " finish[(assignment:[ c b a ! e ! d ]) 0.7708333333333334]]", emptyRM = "deriv[\"Test\" 6 1 0.6361147107979463 type classic [20 66 ] rm[]]"; /** Test the Generic Finish Agent */ static void testFinish() throws ParseException{ FinishAgentI finner = new GenericPlayer().getFinishAgent(); Derivative what = Derivative.parse(emptyRM);//unfinished); FinishedProduct fin = finner.finishDerivative(what); p(" What : "+what); p(" Fin : "+fin); } /** Test the Generic Deliver Agent */ static void testDeliver() throws ParseException{ DeliverAgentI deller = new GenericPlayer().getDeliverAgent(); Derivative what = Derivative.parse(undelivered); Derivative del = deller.deliverRawMaterial(what); p(" What : "+what); p(" Del : "+del.optraw.inner()); } /** Test the Quality */ static void testQuality() throws ParseException{ Derivative what = Derivative.parse(finished); double qual = hidden.Tools.quality(what.optraw.inner().instance, what.optfinished.inner().ip.assignment); p(" What : "+what); p(" Qual : "+qual); } static void testPrint(){ long start = System.currentTimeMillis(); RawMaterialInstance rm = new RawMaterialInstance(hidden.Tools.symmetric(List.create(new RelationNr(5)),50,3)); //String p = new InlineHeapPrintHeap(new PrintHeap()).traverse(rm).toString(); //String p = new InlinePrintHeap(new PrintHeap()).traverse(rm).toString(); //String s = rm.print(); p(done(System.currentTimeMillis()-start)); } }