From: <mwl...@us...> - 2007-09-12 18:01:54
|
Revision: 518 http://cishell.svn.sourceforge.net/cishell/?rev=518&view=rev Author: mwlinnem Date: 2007-09-12 11:01:51 -0700 (Wed, 12 Sep 2007) Log Message: ----------- Lots of small changes. New converters (pajek MAT and isi) now work with the converter tester. Modified Paths: -------------- trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/converter/graph/ConverterGraph.java trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/DefaultTestRunner.java trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/TestFileKeeper.java trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/allconvs/AllConvsReportGenerator.java trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/allconvs/ConvReportSubGenerator.java trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/allerrors/AllErrorReportGenerator.java trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/alltests/FilePassSubGenerator.java trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/alltests/TestReportSubGenerator.java trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/results/FilePassResult.java trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/results/TestResult.java Added Paths: ----------- trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/util/FormatUtil.java Modified: trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/converter/graph/ConverterGraph.java =================================================================== --- trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/converter/graph/ConverterGraph.java 2007-09-12 18:00:09 UTC (rev 517) +++ trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/converter/graph/ConverterGraph.java 2007-09-12 18:01:51 UTC (rev 518) @@ -6,8 +6,11 @@ import java.io.IOException; import java.util.ArrayList; import java.util.HashMap; +import java.util.HashSet; +import java.util.Iterator; import java.util.List; import java.util.Map; +import java.util.Set; import java.util.TreeSet; import java.util.concurrent.ConcurrentHashMap; @@ -17,7 +20,9 @@ public class ConverterGraph { private prefuse.data.Graph converterGraph; + private Set dataFormats; private Map inDataToConverters; + private Map outDataToConverters; private Map fileExtensionTestConverters; private Map fileExtensionCompareConverters; private Converter[] converters; @@ -33,13 +38,18 @@ this.converters = createConverters(converterRefs); inDataToConverters = - new HashMap();//<String, List<Convertere>>(); + new HashMap();//<String, List<Converter>>(); + outDataToConverters = + new HashMap();//<String, List<Converter>>(); + dataFormats = + new HashSet();//<String> fileExtensionTestConverters = new ConcurrentHashMap();//<String, List<ConverterPath>>(); fileExtensionCompareConverters = new ConcurrentHashMap();//<String, ConverterPath>(); - associateConverters(this.converters, this.inDataToConverters); + deriveDataFormats(this.converters, this.dataFormats); + associateConverters(this.converters, this.inDataToConverters, this.outDataToConverters); createConverterPaths(this.inDataToConverters, this.fileExtensionTestConverters, this.fileExtensionCompareConverters); } @@ -54,20 +64,28 @@ return (Converter[]) converters.toArray(new Converter[0]); } - private void associateConverters(Converter[] cs, Map hm){ + private void deriveDataFormats(Converter[] cs, Set dataFormats) { + for (int ii = 0; ii < cs.length; ii++) { + Converter c = cs[ii]; + + String inDataFormat = c.getInData(); + dataFormats.add(inDataFormat); + + String outDataFormat = c.getOutData(); + dataFormats.add(outDataFormat); + } + } + + private void associateConverters(Converter[] cs, + Map inDataToConvs, Map outDataToConvs){ for (int i = 0; i < cs.length; i++){ Converter c = cs[i]; - String s = c.getInData(); + String inDataFormat = c.getInData(); + addValueToListAssociatedWithKey(inDataToConvs, inDataFormat, c); - if(hm.get(s) == null){ - List l = new ArrayList(); - l.add(c); - hm.put(s, l); - } - else{ - ((List)hm.get(s)).add(c); - } + String outDataFormat = c.getOutData(); + addValueToListAssociatedWithKey(outDataToConvs, outDataFormat, c); } } @@ -142,7 +160,14 @@ } private static List removeReferences(List al, ConverterPath cp){ - List cs = new ArrayList(al); + List cs; + + if (al != null) { + cs = new ArrayList(al); + } else { + cs = new ArrayList(); + } + cs.removeAll(cp.getPath()); List forbidden = new ArrayList(); for(int i = 0; i < cs.size(); i++){ @@ -345,25 +370,32 @@ Map nodesToInt = new ConcurrentHashMap(); - String[] inDatas = new String[this.inDataToConverters.keySet().size()]; - inDatas = (String[])this.inDataToConverters.keySet().toArray(inDatas); - TreeSet nodeNameList = new TreeSet(); - //for each unique in_data... - for(int i = 0; i < inDatas.length; i++){ - String inData = inDatas[i]; + //for each unique data format + Iterator formatIter = this.dataFormats.iterator(); + while (formatIter.hasNext()) { + String dataFormat = (String) formatIter.next(); - //add the in_data string to our list of node names - nodeNameList.add(inData); + //add the data format string to our list of node names + nodeNameList.add(dataFormat); - List convsList = (List)this.inDataToConverters.get(inData); - Converter[] convs = new Converter[convsList.size()]; - convs = (Converter[])convsList.toArray(convs); + List inConvs = (List)this.inDataToConverters.get(dataFormat); + List outConvs = (List) this.outDataToConverters.get(dataFormat); - //for each converter associated with each in_data... - for(int j = 0; j < convs.length; j++){ - Converter c = convs[j]; + Set convs = new HashSet(); + + if (inConvs != null) { + convs.addAll(inConvs); + } + if (outConvs != null) { + convs.addAll(outConvs); + } + + Iterator convIter = convs.iterator(); + //for each converter that inputs or outputs this data format... + while (convIter.hasNext()) { + Converter c = (Converter) convIter.next(); //add the name of the converter to our list of node names nodeNameList.add(c.getShortName()); } @@ -412,7 +444,7 @@ Converter c = convs[j]; String convName = c.getShortName(); String convsOutputFormatName = c.getOutData(); - + System.out.println("Converters output format is " + convsOutputFormatName); String nodeNumber = nodeNameToInt.get(nodeName).toString(); String convNumber = nodeNameToInt.get(convName).toString(); String convsOutputNodeNumber = @@ -456,4 +488,16 @@ } return tempFile; } + + private void addValueToListAssociatedWithKey(Map m, Object key, Object value) { + + if(m.get(key) == null){ + List listOfValues = new ArrayList(); + listOfValues.add(value); + m.put(key, listOfValues); + } + else{ + ((List)m.get(key)).add(value); + } + } } \ No newline at end of file Modified: trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/DefaultTestRunner.java =================================================================== --- trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/DefaultTestRunner.java 2007-09-12 18:00:09 UTC (rev 517) +++ trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/DefaultTestRunner.java 2007-09-12 18:01:51 UTC (rev 518) @@ -42,10 +42,20 @@ .getComparisonConverters(); List testResults = new ArrayList(); + +// System.out.println("Running test with the following converters..."); +// System.out.println("Test converters"); +// for (int ii = 0; ii < testConverters.size(); ii++) { +// System.out.println(testConverters.get(ii).getShortName()); +// } +// System.out.println("Comparison Converters"); +// for (int ii = 0 ; ii < comparisonConverters.size(); ii++) { +// System.out.println(comparisonConverters.get(ii).getShortName()); +// } for (int ii = 0; ii < testFileData.length; ii++) { Data[] originalFileData = testFileData[ii]; - + //System.out.println("Beginning test phase for file " + ii); // test conversion phase ConvertResult testPhaseResult = convert(originalFileData, @@ -60,6 +70,7 @@ } Data[] resultFileData = testPhaseResult.getResult(); + //System.out.println("Passed test phase for file " + ii); // comparison conversion (for original file) phase ConvertResult comparePhaseOrigResult = convert(originalFileData, @@ -132,6 +143,7 @@ Converter currentConverter = converters.get(0); try { for (int ii = 0; ii < converters.size(); ii++) { + //System.out.println("Going into converter " + ii); currentConverter = converters.get(ii); //no parameters used Modified: trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/TestFileKeeper.java =================================================================== --- trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/TestFileKeeper.java 2007-09-12 18:00:09 UTC (rev 517) +++ trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/TestFileKeeper.java 2007-09-12 18:01:51 UTC (rev 518) @@ -122,6 +122,8 @@ File dir = new File(dirName); + System.out.println("Looking in dir " + dirName); + File[] dirContents = dir.listFiles(); for (int ii = 0; ii < dirContents.length; ii++) { File fileInDir = dirContents[ii]; Modified: trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/allconvs/AllConvsReportGenerator.java =================================================================== --- trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/allconvs/AllConvsReportGenerator.java 2007-09-12 18:00:09 UTC (rev 517) +++ trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/allconvs/AllConvsReportGenerator.java 2007-09-12 18:01:51 UTC (rev 518) @@ -13,6 +13,7 @@ import org.cishell.testing.convertertester.core.tester2.reportgen.results.AllConvsResult; import org.cishell.testing.convertertester.core.tester2.reportgen.results.AllTestsResult; import org.cishell.testing.convertertester.core.tester2.reportgen.results.ConvResult; +import org.cishell.testing.convertertester.core.tester2.util.FormatUtil; import org.osgi.service.log.LogService; public class AllConvsReportGenerator implements ReportGenerator { @@ -92,9 +93,9 @@ report.println(""); report.println(" Average chance each converter is correct : " + - avgChanceCorrect); + FormatUtil.formatToPercent(avgChanceCorrect)); report.println(" Average % successful file passes : " + - avgPercentPassed); + FormatUtil.formatToPercent(avgPercentPassed)); report.println(""); Modified: trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/allconvs/ConvReportSubGenerator.java =================================================================== --- trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/allconvs/ConvReportSubGenerator.java 2007-09-12 18:00:09 UTC (rev 517) +++ trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/allconvs/ConvReportSubGenerator.java 2007-09-12 18:01:51 UTC (rev 518) @@ -13,6 +13,7 @@ import org.cishell.testing.convertertester.core.tester2.reportgen.reports.TestReport; import org.cishell.testing.convertertester.core.tester2.reportgen.results.ConvResult; import org.cishell.testing.convertertester.core.tester2.reportgen.results.TestResult; +import org.cishell.testing.convertertester.core.tester2.util.FormatUtil; import org.osgi.service.log.LogService; public class ConvReportSubGenerator { @@ -55,9 +56,9 @@ + convResult.getNumFilePasses()); report.println(""); // report.println("% Passed : " -// + convResult.getPercentPassed()); +// + FormatUtil.formatToPercent(convResult.getPercentPassed())); report.println("% Chance of Flaw : " - + convResult.getChanceOfFlaw()); + + FormatUtil.formatToPercent(convResult.getChanceOfFlaw())); report.println(""); @@ -87,7 +88,7 @@ report.println(explanation); report.println(""); report.println("Chance this converter is responsible: " - + chanceAtFault); + + FormatUtil.formatToPercent(chanceAtFault)); report.println("----------"); } Modified: trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/allerrors/AllErrorReportGenerator.java =================================================================== --- trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/allerrors/AllErrorReportGenerator.java 2007-09-12 18:00:09 UTC (rev 517) +++ trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/allerrors/AllErrorReportGenerator.java 2007-09-12 18:01:51 UTC (rev 518) @@ -15,14 +15,13 @@ import org.cishell.testing.convertertester.core.converter.graph.Converter; import org.cishell.testing.convertertester.core.tester2.reportgen.ReportGenerator; import org.cishell.testing.convertertester.core.tester2.reportgen.faultanalysis.ChanceAtFault; -import org.cishell.testing.convertertester.core.tester2.reportgen.reports.AllConvsReport; import org.cishell.testing.convertertester.core.tester2.reportgen.reports.AllErrorReport; -import org.cishell.testing.convertertester.core.tester2.reportgen.reports.ConvReport; import org.cishell.testing.convertertester.core.tester2.reportgen.results.AllConvsResult; import org.cishell.testing.convertertester.core.tester2.reportgen.results.AllTestsResult; import org.cishell.testing.convertertester.core.tester2.reportgen.results.ConvResult; import org.cishell.testing.convertertester.core.tester2.reportgen.results.FilePassResult; import org.cishell.testing.convertertester.core.tester2.reportgen.results.TestResult; +import org.cishell.testing.convertertester.core.tester2.util.FormatUtil; import org.osgi.service.log.LogService; public class AllErrorReportGenerator implements ReportGenerator { @@ -87,6 +86,7 @@ FilePassResult pass = (FilePassResult) passIter.next(); report.println(" " + pass.getName()); + report.println(" " + pass.getOriginalFileShortLabel()); List cafs = (List) passToCafs.get(pass); @@ -101,7 +101,7 @@ if (associatedCaf.getChanceAtFault() > 0.0f) { report.println(" " + involvedConv.getShortName() + " (%" + - associatedCaf.getChanceAtFault() + + FormatUtil.formatToPercent(associatedCaf.getChanceAtFault()) + " Chance At Fault)"); } else { report.println(" " + Modified: trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/alltests/FilePassSubGenerator.java =================================================================== --- trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/alltests/FilePassSubGenerator.java 2007-09-12 18:00:09 UTC (rev 517) +++ trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/alltests/FilePassSubGenerator.java 2007-09-12 18:01:51 UTC (rev 518) @@ -68,6 +68,11 @@ report.println(""); if (! fpr.getExplanation().trim().equals("")) { + + if (fpr.failedWhileConverting()) { + report.println("Failed at " + fpr.getFailedConverter()); + } + report.println("Explanation... \r\n" + fpr.getExplanation()); } Modified: trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/alltests/TestReportSubGenerator.java =================================================================== --- trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/alltests/TestReportSubGenerator.java 2007-09-12 18:00:09 UTC (rev 517) +++ trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/alltests/TestReportSubGenerator.java 2007-09-12 18:01:51 UTC (rev 518) @@ -46,7 +46,12 @@ report.println(" # Failed File Passes : " + tr.getNumFilePassFailures()); report.println(" Total : " + tr.getNumFilePasses()); - float percentSuccessful = tr.getNumFilePassSuccesses() / tr.getNumFilePasses(); + float percentSuccessful; + if (tr.getNumFilePasses() > 0) { + percentSuccessful = tr.getNumFilePassSuccesses() / tr.getNumFilePasses(); + } else { + percentSuccessful = 0; + } report.println(""); report.println("---------------"); Modified: trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/results/FilePassResult.java =================================================================== --- trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/results/FilePassResult.java 2007-09-12 18:00:09 UTC (rev 517) +++ trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/results/FilePassResult.java 2007-09-12 18:01:51 UTC (rev 518) @@ -1,5 +1,6 @@ package org.cishell.testing.convertertester.core.tester2.reportgen.results; +import java.io.File; import java.util.ArrayList; import java.util.Comparator; import java.util.Iterator; @@ -53,6 +54,24 @@ boolean result = lastReachedPhase == PassPhase.SUCCEEDED_PHASE; return result; } + + public boolean failedWhileConverting() { + + boolean result = + (this.getLastReachedPhase().equals(PassPhase.TEST_CONV_PHASE) || + this.getLastReachedPhase().equals(PassPhase.COMPARE_CONV_ORIG_PHASE) || + this.getLastReachedPhase().equals(PassPhase.COMPARE_CONV_RESULT_PHASE)); + + return result; + } + + public boolean failedWhileComparingGraphs() { + + boolean result = + (this.getLastReachedPhase().equals(PassPhase.GRAPH_COMPARE_PHASE)); + + return result; + } public PassPhase getLastReachedPhase() { return this.lastReachedPhase; @@ -66,7 +85,7 @@ * Will return null if either this file pass did not fail, * or it did not fail due to a converter error (failed during * graph comparison) - * @return + * @return the failed converter, or null */ public Converter getFailedConverter() { return this.failedConverter; @@ -80,6 +99,15 @@ return (String) getOriginalData()[0].getMetaData().get(DataProperty.LABEL); } + public String getOriginalFileShortLabel() { + String label = getOriginalFileLabel(); + + int lastSeparatorIndex = label.lastIndexOf(File.separator); + + String shortLabel = label.substring(lastSeparatorIndex + 1); + return shortLabel; + } + public String getFileFormat() { return originalData[0].getFormat(); } Modified: trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/results/TestResult.java =================================================================== --- trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/results/TestResult.java 2007-09-12 18:00:09 UTC (rev 517) +++ trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/reportgen/results/TestResult.java 2007-09-12 18:01:51 UTC (rev 518) @@ -39,7 +39,12 @@ this.successes = new boolean[fprs.length]; - this.format = fprs[0].getFileFormat(); + if (fprs.length > 0) { + this.format = fprs[0].getFileFormat(); + } else { + this.format = "Unable to determine format for a test that has " + + "no file passes"; + } for (int ii = 0; ii < fprs.length; ii++) { FilePassResult fpr = fprs[ii]; Added: trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/util/FormatUtil.java =================================================================== --- trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/util/FormatUtil.java (rev 0) +++ trunk/testing/org.cishell.testing.convertertester.core.new/src/org/cishell/testing/convertertester/core/tester2/util/FormatUtil.java 2007-09-12 18:01:51 UTC (rev 518) @@ -0,0 +1,22 @@ +package org.cishell.testing.convertertester.core.tester2.util; + +public class FormatUtil { + + public static final int NUM_DECIMALS = 1; + + /** + * + * @param decimal 0.0f to 1.0f + * @return + */ + public static float formatToPercent(float decimal) { + + float temp = decimal; + temp *= 100f; + temp *= Math.pow(10.0, NUM_DECIMALS); + temp = Math.round(temp) / (float) (Math.pow(10.0, NUM_DECIMALS)); + float percent = temp; + + return percent; + } +} This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |