OSDN Git Service

update compareDetails routine. Using ComparisonPair class
authortama3 <tama3@acee48c3-7b26-0410-bdac-b3d0e5314bbc>
Mon, 16 Jul 2007 01:41:42 +0000 (01:41 +0000)
committertama3 <tama3@acee48c3-7b26-0410-bdac-b3d0e5314bbc>
Mon, 16 Jul 2007 01:41:42 +0000 (01:41 +0000)
git-svn-id: svn+ssh://svn.sourceforge.jp/svnroot/stigmata/trunk@167 acee48c3-7b26-0410-bdac-b3d0e5314bbc

src/main/java/jp/naist/se/stigmata/Stigmata.java

index 5cbc4cc..9e7fa04 100644 (file)
@@ -230,33 +230,11 @@ public final class Stigmata{
 \r
     public double compareDetails(BirthmarkSet h1, BirthmarkSet h2, BirthmarkEnvironment environment){\r
         operationStart(OperationType.COMPARE_DETAIL_BIRTHMARKS);\r
-\r
-        List<Double> list = new ArrayList<Double>();\r
-        int count = 0;\r
-        for(Iterator<String> i = h1.birthmarkTypes(); i.hasNext(); ){\r
-            String type = i.next();\r
-            Birthmark b1 = h1.getBirthmark(type);\r
-            Birthmark b2 = h2.getBirthmark(type);\r
-\r
-            double similarity = Double.NaN;\r
-            if(b1 != null && b2 != null){\r
-                BirthmarkSpi spi = environment.getService(type);\r
-                BirthmarkComparator comparator = spi.getComparator();\r
-\r
-                similarity = comparator.compare(b1, b2);\r
-                count++;\r
-            }\r
-            list.add(similarity);\r
-        }\r
-\r
-        double similarity = 0d;\r
-        for(Double d: list){\r
-            if(d.doubleValue() != Double.NaN){\r
-                similarity += d.doubleValue();\r
-            }\r
-        }\r
+        ComparisonPair pair = new ComparisonPair(h1, h2, environment);\r
+        double sim = pair.calculateSimilarity();\r
         operationDone(OperationType.COMPARE_DETAIL_BIRTHMARKS);\r
-        return similarity / count;\r
+\r
+        return sim;\r
     }\r
 \r
     private BirthmarkExtractor[] createExtractors(String[] birthmarkTypes, BirthmarkEnvironment environment){\r