source: branches/autoquest-core-tasktrees-alignment-test/src/test/java/de/ugoe/cs/autoquest/tasktrees/alignment/algorithms/NumberSequenceTest.java @ 1650

Last change on this file since 1650 was 1650, checked in by rkrimmel, 10 years ago

Fixed bug where containPattern didn't handle gaps correctly

File size: 3.4 KB
Line 
1package de.ugoe.cs.autoquest.tasktrees.alignment.algorithms;
2
3import static org.junit.Assert.*;
4
5import org.junit.Test;
6
7public class NumberSequenceTest {
8
9        @Test
10        public void testContainsPattern() {
11                int[] seq = new int[10];
12                for (int i=0; i<10; i++) {
13                        seq[i] = i;
14                }
15               
16                int[] pat1  = new int[]{2,3,4};
17                int[] pat2  = new int[]{2,3,4};
18               
19                int[] pat3  = new int[]{5,-1,6};
20                int[] pat4  = new int[]{1,2,3};
21               
22                int[] pat5  = new int[]{-1,-1,-1};
23               
24                int[] pat6  = new int[]{10,11,12};
25               
26                int[] pat7  = new int[]{8,9,10};
27                int[] pat8  = new int[]{7,6,5};
28               
29                int[] pat9  = new int[]{0};
30                int[] pat10 = new int[]{1};
31               
32                int[] pat11 = new int[]{5,-1,-1,6};
33                int[] pat12 = new int[]{10,12,12,12};
34               
35               
36                NumberSequence ns = new NumberSequence(10);
37                ns.setSequence(seq);
38               
39                NumberSequence firstpattern = new NumberSequence(3);
40                NumberSequence secondpattern = new NumberSequence(3);
41                firstpattern.setSequence(pat1);
42                secondpattern.setSequence(pat2);
43               
44                Match pattern = new Match();
45                pattern.setFirstSequence(firstpattern);
46                pattern.setSecondSequence(secondpattern);               
47                assertEquals(Integer.valueOf(2),ns.containsPattern(pattern).get(0));
48                assertEquals(1,ns.containsPattern(pattern).size());
49               
50                firstpattern.setSequence(pat3);
51                secondpattern.setSequence(pat4);
52               
53                assertEquals(Integer.valueOf(1),ns.containsPattern(pattern).get(0));
54                assertEquals(2,ns.containsPattern(pattern).size());
55                assertEquals(Integer.valueOf(5),ns.containsPattern(pattern).get(1));
56               
57       
58                firstpattern.setSequence(pat5);
59                secondpattern.setSequence(pat5);
60                assertEquals(0,ns.containsPattern(pattern).size());
61               
62                firstpattern.setSequence(pat6);
63                secondpattern.setSequence(pat6);
64                assertEquals(0,ns.containsPattern(pattern).size());
65               
66                firstpattern.setSequence(pat7);
67                secondpattern.setSequence(pat8);
68                assertEquals(0,ns.containsPattern(pattern).size());
69               
70                firstpattern.setSequence(pat9);
71                secondpattern.setSequence(pat10);
72                assertEquals(Integer.valueOf(0),ns.containsPattern(pattern).get(0));
73                assertEquals(Integer.valueOf(1),ns.containsPattern(pattern).get(1));
74                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               
81       
82        }
83
84        @Test
85        public void testEventCount() {
86                int[] seq = new int[10];
87                for (int i=0; i<10; i++) {
88                        seq[i] = i;
89                }
90                NumberSequence ns = new NumberSequence(10);
91                ns.setSequence(seq);
92               
93                int[] pat2 = new int[]{-1,-1,-1};
94                int[] pat3 = new int[]{0,1,2,3,0,2};
95               
96                assertEquals(1,ns.eventCount(5));
97               
98                ns.setSequence(pat2);
99                assertEquals(3,ns.eventCount(-1));
100               
101                ns.setSequence(pat3);
102                assertEquals(2,ns.eventCount(0));
103                assertEquals(2,ns.eventCount(2));
104                assertEquals(0,ns.eventCount(5));
105        }
106
107        @Test
108        public void testEqualsNumberSequence() {
109                int[] seq1 = new int[10];
110                for (int i=0; i<10; i++) {
111                        seq1[i] = i;
112                }
113                NumberSequence ns1 = new NumberSequence(10);
114                ns1.setSequence(seq1);
115               
116                int[] seq2 = new int[10];
117                for (int i=0; i<10; i++) {
118                        seq2[i] = i;
119                }
120                NumberSequence ns2 = new NumberSequence(10);
121                ns2.setSequence(seq2);
122               
123                int[] seq3 = new int[10];
124                for (int i=0; i<10; i++) {
125                        seq3[i] = 2*i;
126                }
127                NumberSequence ns3 = new NumberSequence(10);
128                ns3.setSequence(seq3);
129               
130                assertTrue(ns1.equals(ns2));
131                assertFalse(ns1.equals(ns3));
132                assertFalse(ns2.equals(ns3));
133               
134        }
135
136}
Note: See TracBrowser for help on using the repository browser.