Changeset 1650 for branches


Ignore:
Timestamp:
08/04/14 17:27:03 (10 years ago)
Author:
rkrimmel
Message:

Fixed bug where containPattern didn't handle gaps correctly

Location:
branches
Files:
3 edited
1 moved

Legend:

Unmodified
Added
Removed
  • branches/autoquest-core-tasktrees-alignment-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/NumberSequenceTest.java

    r1649 r1650  
    1414                } 
    1515                 
    16                 int[] pat1 = new int[]{2,3,4}; 
    17                 int[] pat2 = new int[]{2,3,4}; 
     16                int[] pat1  = new int[]{2,3,4}; 
     17                int[] pat2  = new int[]{2,3,4}; 
    1818                 
    19                 int[] pat3 = new int[]{5,-1,7}; 
    20                 int[] pat4 = new int[]{1,2,3}; 
     19                int[] pat3  = new int[]{5,-1,6}; 
     20                int[] pat4  = new int[]{1,2,3}; 
    2121                 
    22                 int[] pat5 = new int[]{-1,-1,-1}; 
     22                int[] pat5  = new int[]{-1,-1,-1}; 
    2323                 
    24                 int[] pat6 = new int[]{10,11,12}; 
     24                int[] pat6  = new int[]{10,11,12}; 
    2525                 
    26                 int[] pat7 = new int[]{8,9,10}; 
    27                 int[] pat8 = new int[]{7,6,5}; 
     26                int[] pat7  = new int[]{8,9,10}; 
     27                int[] pat8  = new int[]{7,6,5}; 
    2828                 
    29                 int[] pat9 = new int[]{0}; 
     29                int[] pat9  = new int[]{0}; 
    3030                int[] pat10 = new int[]{1}; 
     31                 
     32                int[] pat11 = new int[]{5,-1,-1,6}; 
     33                int[] pat12 = new int[]{10,12,12,12};  
    3134                 
    3235                 
     
    4952                 
    5053                assertEquals(Integer.valueOf(1),ns.containsPattern(pattern).get(0)); 
     54                assertEquals(2,ns.containsPattern(pattern).size()); 
    5155                assertEquals(Integer.valueOf(5),ns.containsPattern(pattern).get(1)); 
    52                 assertEquals(2,ns.containsPattern(pattern).size()); 
     56                 
    5357         
    5458                firstpattern.setSequence(pat5); 
     
    6973                assertEquals(Integer.valueOf(1),ns.containsPattern(pattern).get(1)); 
    7074                assertEquals(2,ns.containsPattern(pattern).size()); 
     75                 
     76                firstpattern.setSequence(pat11); 
     77                secondpattern.setSequence(pat12); 
     78                assertEquals(1,ns.containsPattern(pattern).size()); 
     79                assertEquals(Integer.valueOf(5),ns.containsPattern(pattern).get(0)); 
     80                 
    7181         
    7282        } 
  • branches/autoquest-core-tasktrees-alignment-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignmentTest.java

    r1649 r1650  
    2020 * @author Patrick Harms 
    2121 */ 
    22 public class SequenceForTaskDetectionRuleTest extends AbstractTemporalRelationshipTC { 
     22public class SequenceForTaskDetectionRuleAlignmentTest extends AbstractTemporalRelationshipTC { 
    2323 
    2424    /** 
  • branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/NumberSequence.java

    r1648 r1650  
    4848        } 
    4949 
    50         //Searching occurences of  
     50        //Searching occurrences of  
    5151        public LinkedList<Integer> containsPattern(Match pattern) { 
    5252                LinkedList<Integer> result = new LinkedList<Integer>(); 
     
    5858                                int ipat1 =0; 
    5959                                int ipat2 =0; 
     60                                int optcount1 = 0; 
     61                                int optcount2 = 0; 
    6062                                while(ipat1 < pat1.length && ipat2<pat2.length) { 
    6163                                        if(pat1[ipat1]==-1) { 
    6264                                                ipat1++; 
     65                                                optcount1++; 
    6366                                                continue; 
    6467                                        } 
    6568                                        if(pat2[ipat2]==-1) { 
    6669                                                ipat2++; 
     70                                                optcount2++; 
    6771                                                continue; 
    6872                                        } 
    69                                         if (sequence[i + ipat1] != pat1[ipat1] 
    70                                                         && sequence[i + ipat2] != pat2[ipat2]) { 
     73                                        if (sequence[i + ipat1-optcount1] != pat1[ipat1] 
     74                                                        && sequence[i + ipat2-optcount2] != pat2[ipat2]) { 
    7175                                                i++; 
     76                                                //System.out.println(sequence[i+ipat1] + " != " + pat1[ipat1] + " || " + sequence[i+ipat2] + " != " + pat2[ipat2]); 
    7277                                                continue notmatched; 
    7378                                        } 
  • branches/autoquest-core-tasktrees-alignment/src/main/java/de/ugoe/cs/autoquest/tasktrees/temporalrelation/SequenceForTaskDetectionRuleAlignment.java

    r1649 r1650  
    206206                                                        .hasNext();) { 
    207207                                                int start = jt.next(); 
    208                                                 System.out.println("Found match "); 
    209                                                 pattern.getFirstSequence().printSequence(); 
    210                                                 pattern.getSecondSequence().printSequence();  
    211                                                 System.out.println("in sequence " + (j+1) + " at position " + start); 
     208                                                //System.out.println("Found match "); 
     209                                                //pattern.getFirstSequence().printSequence(); 
     210                                                //pattern.getSecondSequence().printSequence();  
     211                                                //System.out.println("in sequence " + (j+1) + " at position " + start); 
    212212                                                pattern.addOccurence( 
    213213                                                                new MatchOccurence(start, j)); 
Note: See TracChangeset for help on using the changeset viewer.