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

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

Found last bug in containsPattern

File size: 5.6 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[] seq2 = new int[]{1,5,2,6,5,6,4,5,2,6};
17               
18                int[] seq3 = new int[]{0,0,5,6,0,6,9,10,0,12,13,0,15,16,0,13,0,15,21,13,0,15,21,0,0,0,6,0,9,32,0,5,10,0,6,0,9,32,0,5,43,0,6,0,9,5,6,0,9,43,0,6,0,9,32,0,5,6,6,9,43,0,0,0,0};
19       
20                int[] seq4 = new int[]{32,32,5,6,9,10,0};
21                int[] pat1  = new int[]{2,3,4};
22                int[] pat2  = new int[]{2,3,4};
23               
24                int[] pat3  = new int[]{5,-1,6};
25                int[] pat4  = new int[]{1,2,3};
26               
27                int[] pat5  = new int[]{-1,-1,-1};
28               
29                int[] pat6  = new int[]{10,11,12};
30               
31                int[] pat7  = new int[]{8,9,10};
32                int[] pat8  = new int[]{7,6,5};
33               
34                int[] pat9  = new int[]{0};
35                int[] pat10 = new int[]{1};
36               
37                int[] pat11 = new int[]{5,-1,-1,6};
38                int[] pat12 = new int[]{10,12,12,12};
39               
40                int[] pat13 = new int[]{6, 0, 9, 32,0,5,10,0};
41                int[] pat14 = new int[]{6,-1, 71,32,-1,5,10,0};
42               
43                //int[] pat15 = new int[]{6, 0, 6, 9,-1,-1,10,0};
44                //int[] pat16 = new int[]{6,-1, 9,71,32, 5,10,0};
45               
46                int[] pat17 = new int[]{32,0,5,10};
47                int[] pat18 = new int[]{271,-1,32,247};
48               
49               
50                NumberSequence ns = new NumberSequence(10);
51                ns.setSequence(seq);
52               
53                NumberSequence ns2 = new NumberSequence(seq3.length);
54                ns2.setSequence(seq3);
55               
56                NumberSequence ns3 = new NumberSequence(7);
57                ns3.setSequence(seq4);
58               
59               
60                NumberSequence firstpattern = new NumberSequence(3);
61                NumberSequence secondpattern = new NumberSequence(3);
62               
63                NumberSequence thirdpattern = new NumberSequence(4);
64                NumberSequence forthpattern= new NumberSequence(4);
65               
66                NumberSequence fifthpattern = new NumberSequence(pat13.length);
67                NumberSequence sixthpattern = new NumberSequence(pat14.length);
68               
69                NumberSequence seventhpattern = new NumberSequence(pat17.length);
70                NumberSequence eigthpattern = new NumberSequence(pat17.length);
71               
72               
73                firstpattern.setSequence(pat1);
74                secondpattern.setSequence(pat2);
75               
76                thirdpattern.setSequence(pat11);
77                forthpattern.setSequence(pat12);
78               
79                fifthpattern.setSequence(pat13);
80                sixthpattern.setSequence(pat14);
81               
82                seventhpattern.setSequence(pat17);
83                eigthpattern.setSequence(pat18);
84               
85                Match pattern = new Match();
86                pattern.setFirstSequence(firstpattern);
87                pattern.setSecondSequence(secondpattern);
88               
89                Match pattern2 = new Match();
90                pattern2.setFirstSequence(thirdpattern);
91                pattern2.setSecondSequence(forthpattern);
92               
93                Match pattern3 = new Match();
94                pattern3.setFirstSequence(fifthpattern);
95                pattern3.setSecondSequence(sixthpattern);
96
97                Match pattern4 = new Match();
98                pattern4.setFirstSequence(seventhpattern);
99                pattern4.setSecondSequence(eigthpattern);
100               
101                assertEquals(Integer.valueOf(2),ns.containsPattern(pattern).get(0));
102                assertEquals(1,ns.containsPattern(pattern).size());
103               
104                firstpattern.setSequence(pat3);
105                secondpattern.setSequence(pat4);
106               
107                assertEquals(Integer.valueOf(1),ns.containsPattern(pattern).get(0));
108                assertEquals(2,ns.containsPattern(pattern).size());
109                assertEquals(Integer.valueOf(5),ns.containsPattern(pattern).get(1));
110               
111       
112                firstpattern.setSequence(pat5);
113                secondpattern.setSequence(pat5);
114                assertEquals(10,ns.containsPattern(pattern).size());
115               
116                firstpattern.setSequence(pat6);
117                secondpattern.setSequence(pat6);
118                assertEquals(0,ns.containsPattern(pattern).size());
119               
120                firstpattern.setSequence(pat7);
121                secondpattern.setSequence(pat8);
122                assertEquals(0,ns.containsPattern(pattern).size());
123               
124                firstpattern.setSequence(pat9);
125                secondpattern.setSequence(pat10);
126                assertEquals(Integer.valueOf(0),ns.containsPattern(pattern).get(0));
127                assertEquals(Integer.valueOf(1),ns.containsPattern(pattern).get(1));
128                assertEquals(2,ns.containsPattern(pattern).size());
129               
130                firstpattern.setSequence(pat11);
131                secondpattern.setSequence(pat12);
132                assertEquals(1,ns.containsPattern(pattern).size());
133                assertEquals(Integer.valueOf(5),ns.containsPattern(pattern).get(0));
134               
135                ns.setSequence(seq2);
136                firstpattern.setSequence(pat3);
137                secondpattern.setSequence(pat4);
138                assertEquals(3,ns.containsPattern(pattern).size());
139                assertEquals(Integer.valueOf(1),ns.containsPattern(pattern).get(0));
140                assertEquals(Integer.valueOf(4),ns.containsPattern(pattern).get(1));
141                assertEquals(Integer.valueOf(7),ns.containsPattern(pattern).get(2));
142               
143               
144                assertEquals(1,ns2.containsPattern(pattern3).size());
145                assertEquals(Integer.valueOf(26),ns2.containsPattern(pattern3).get(0));
146               
147               
148                assertEquals(0,ns3.containsPattern(pattern4).size());
149               
150        }
151
152        @Test
153        public void testEventCount() {
154                int[] seq = new int[10];
155                for (int i=0; i<10; i++) {
156                        seq[i] = i;
157                }
158                NumberSequence ns = new NumberSequence(10);
159                ns.setSequence(seq);
160               
161                int[] pat2 = new int[]{-1,-1,-1};
162                int[] pat3 = new int[]{0,1,2,3,0,2};
163               
164                assertEquals(1,ns.eventCount(5));
165               
166                ns.setSequence(pat2);
167                assertEquals(3,ns.eventCount(-1));
168               
169                ns.setSequence(pat3);
170                assertEquals(2,ns.eventCount(0));
171                assertEquals(2,ns.eventCount(2));
172                assertEquals(0,ns.eventCount(5));
173        }
174
175        @Test
176        public void testEqualsNumberSequence() {
177                int[] seq1 = new int[10];
178                for (int i=0; i<10; i++) {
179                        seq1[i] = i;
180                }
181                NumberSequence ns1 = new NumberSequence(10);
182                ns1.setSequence(seq1);
183               
184                int[] seq2 = new int[10];
185                for (int i=0; i<10; i++) {
186                        seq2[i] = i;
187                }
188                NumberSequence ns2 = new NumberSequence(10);
189                ns2.setSequence(seq2);
190               
191                int[] seq3 = new int[10];
192                for (int i=0; i<10; i++) {
193                        seq3[i] = 2*i;
194                }
195                NumberSequence ns3 = new NumberSequence(10);
196                ns3.setSequence(seq3);
197               
198                assertTrue(ns1.equals(ns2));
199                assertFalse(ns1.equals(ns3));
200                assertFalse(ns2.equals(ns3));
201               
202        }
203
204}
Note: See TracBrowser for help on using the repository browser.