root / trunk / extensions / extNormalization / src-test / org / gvsig / normalization / operations / TestNormAlgorithm.java @ 22975
History | View | Annotate | Download (8.6 KB)
1 | 22677 | jsanz | /* gvSIG. Geographic Information System of the Valencian Government
|
---|---|---|---|
2 | *
|
||
3 | * Copyright (C) 2007-2008 Infrastructures and Transports Department
|
||
4 | * of the Valencian Government (CIT)
|
||
5 | *
|
||
6 | * This program is free software; you can redistribute it and/or
|
||
7 | * modify it under the terms of the GNU General Public License
|
||
8 | * as published by the Free Software Foundation; either version 2
|
||
9 | * of the License, or (at your option) any later version.
|
||
10 | *
|
||
11 | * This program is distributed in the hope that it will be useful,
|
||
12 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||
13 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||
14 | * GNU General Public License for more details.
|
||
15 | *
|
||
16 | * You should have received a copy of the GNU General Public License
|
||
17 | * along with this program; if not, write to the Free Software
|
||
18 | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
|
||
19 | * MA 02110-1301, USA.
|
||
20 | *
|
||
21 | */
|
||
22 | |||
23 | /*
|
||
24 | * AUTHORS (In addition to CIT):
|
||
25 | * 2008 Prodevelop S.L main development
|
||
26 | */
|
||
27 | |||
28 | package org.gvsig.normalization.operations; |
||
29 | |||
30 | import java.io.File; |
||
31 | import java.io.FileReader; |
||
32 | import java.util.List; |
||
33 | |||
34 | import junit.framework.TestCase; |
||
35 | |||
36 | import org.apache.log4j.Logger; |
||
37 | 22975 | vsanjaime | import org.gvsig.patterns.normalization.Patternnormalization; |
38 | import org.gvsig.tools.storage.IStorage; |
||
39 | import org.gvsig.tools.storage.StorageXML; |
||
40 | 22677 | jsanz | |
41 | public class TestNormAlgorithm extends TestCase { |
||
42 | |||
43 | private static final Logger log = Logger.getLogger(TestNormAlgorithm.class); |
||
44 | |||
45 | public void setUp() { |
||
46 | } |
||
47 | |||
48 | public void testSplitChain() { |
||
49 | |||
50 | log.info("TestNormAlgorithm. Test splits strings");
|
||
51 | |||
52 | log.info("SubTest 1");
|
||
53 | String c1 = ";aaa,,bbb;;;ccc/ddd@eee##;"; |
||
54 | |||
55 | File f1 = new File( |
||
56 | "src-test/org/gvsig/normalization/operations/testdata/patSplitChain.xml");
|
||
57 | assertNotNull(f1); |
||
58 | |||
59 | List<String> r1 = parser(f1, c1); |
||
60 | assertNotNull(r1); |
||
61 | |||
62 | assertEquals("", (String) r1.get(0)); |
||
63 | assertEquals("aaa", (String) r1.get(1)); |
||
64 | assertEquals("", (String) r1.get(2)); |
||
65 | assertEquals("bbb", (String) r1.get(3)); |
||
66 | assertEquals("", (String) r1.get(4)); |
||
67 | assertEquals("", (String) r1.get(5)); |
||
68 | assertEquals("ccc", (String) r1.get(6)); |
||
69 | assertEquals("ddd", (String) r1.get(7)); |
||
70 | assertEquals("eee", (String) r1.get(8)); |
||
71 | assertEquals("", (String) r1.get(9)); |
||
72 | assertEquals(";", (String) r1.get(10)); |
||
73 | |||
74 | log.info("SubTest 2.");
|
||
75 | String c2 = "aaa bbb ccc ddd,76 %"; |
||
76 | |||
77 | File f2 = new File( |
||
78 | "src-test/org/gvsig/normalization/operations/testdata/patSplitChain2.xml");
|
||
79 | assertNotNull(f2); |
||
80 | |||
81 | List<String> r2 = parser(f2, c2); |
||
82 | assertNotNull(r2); |
||
83 | |||
84 | assertEquals("aaa", (String) r2.get(0)); |
||
85 | assertEquals("bbb", (String) r2.get(1)); |
||
86 | assertEquals("ccc", (String) r2.get(2)); |
||
87 | assertEquals("ddd", (String) r2.get(3)); |
||
88 | assertEquals("76", (String) r2.get(4)); |
||
89 | assertEquals("%", (String) r2.get(5)); |
||
90 | |||
91 | log.info("SubTest 3.");
|
||
92 | 22975 | vsanjaime | String c3 = "Av;Germanias;25;3;Moncada;Valencia"; |
93 | 22677 | jsanz | |
94 | File f3 = new File( |
||
95 | "src-test/org/gvsig/normalization/operations/testdata/patSplitChain3.xml");
|
||
96 | assertNotNull(f3); |
||
97 | |||
98 | List<String> r3 = parser(f3, c3); |
||
99 | assertNotNull(r3); |
||
100 | |||
101 | assertEquals("Av", (String) r3.get(0)); |
||
102 | assertEquals("Germanias", (String) r3.get(1)); |
||
103 | 22975 | vsanjaime | assertEquals(25, Integer.parseInt((String) r3.get(2))); |
104 | assertEquals(3, Integer.parseInt((String) r3.get(3))); |
||
105 | 22677 | jsanz | assertEquals("Moncada", (String) r3.get(4)); |
106 | assertEquals("Valencia", (String) r3.get(5)); |
||
107 | |||
108 | log.info("SubTest 4.");
|
||
109 | String c4 = "Av. Germanias 15 2 Moncada Valencia "; |
||
110 | |||
111 | File f4 = new File( |
||
112 | "src-test/org/gvsig/normalization/operations/testdata/patSplitChain4.xml");
|
||
113 | assertNotNull(f4); |
||
114 | |||
115 | List<String> r4 = parser(f4, c4); |
||
116 | assertNotNull(r4); |
||
117 | |||
118 | assertEquals("Av.", ((String) r4.get(0)).trim()); |
||
119 | assertEquals("Germanias", ((String) r4.get(1)).trim()); |
||
120 | assertEquals(15, Integer.parseInt(((String) r4.get(2)).trim())); |
||
121 | assertEquals(2, Integer.parseInt(((String) r4.get(3)).trim())); |
||
122 | assertEquals("Moncada", ((String) r4.get(4)).trim()); |
||
123 | assertEquals("Valencia", ((String) r4.get(5)).trim()); |
||
124 | |||
125 | log.info("SubTest 5.");
|
||
126 | String c5 = "Av;;Germanias;15;;2;Moncada;Valencia"; |
||
127 | |||
128 | File f5 = new File( |
||
129 | "src-test/org/gvsig/normalization/operations/testdata/patSplitChain5.xml");
|
||
130 | assertNotNull(f5); |
||
131 | |||
132 | List<String> r5 = parser(f5, c5); |
||
133 | assertNotNull(r5); |
||
134 | |||
135 | assertEquals("Av", (String) r5.get(0)); |
||
136 | assertEquals("Germanias", (String) r5.get(1)); |
||
137 | assertEquals(15, Integer.parseInt((String) r5.get(2))); |
||
138 | assertEquals(2, Integer.parseInt((String) r5.get(3))); |
||
139 | assertEquals("Moncada", (String) r5.get(4)); |
||
140 | assertEquals("Valencia", (String) r5.get(5)); |
||
141 | |||
142 | log.info("SubTest 6.");
|
||
143 | String c6 = "Av. Germanias 15-2 Moncada (Valencia)"; |
||
144 | |||
145 | File f6 = new File( |
||
146 | "src-test/org/gvsig/normalization/operations/testdata/patSplitChain6.xml");
|
||
147 | assertNotNull(f6); |
||
148 | |||
149 | List<String> r6 = parser(f6, c6); |
||
150 | assertNotNull(r6); |
||
151 | |||
152 | assertEquals("Av.", ((String) r6.get(0)).trim()); |
||
153 | assertEquals("Germanias", ((String) r6.get(1)).trim()); |
||
154 | assertEquals(15, Integer.parseInt(((String) r6.get(2)).trim())); |
||
155 | assertEquals(2, Integer.parseInt(((String) r6.get(3)).trim())); |
||
156 | assertEquals("Moncada", ((String) r6.get(4)).trim()); |
||
157 | assertEquals("Valencia", ((String) r6.get(5)).trim()); |
||
158 | |||
159 | log.info("SubTest 7.");
|
||
160 | String c7 = "Juana Aguirre;Piedras;No 623;Piso2;Dto.4;C1070AAM;Capital Federal;ARGENTINA"; |
||
161 | |||
162 | File f7 = new File( |
||
163 | "src-test/org/gvsig/normalization/operations/testdata/patSplitChain7.xml");
|
||
164 | assertNotNull(f7); |
||
165 | |||
166 | List<String> r7 = parser(f7, c7); |
||
167 | assertNotNull(r7); |
||
168 | |||
169 | assertEquals("Juana Aguirre", ((String) r7.get(0)).trim()); |
||
170 | assertEquals("Piedras", ((String) r7.get(1)).trim()); |
||
171 | assertEquals("No 623", ((String) r7.get(2)).trim()); |
||
172 | assertEquals("Piso2", ((String) r7.get(3)).trim()); |
||
173 | assertEquals("Dto.4", ((String) r7.get(4)).trim()); |
||
174 | assertEquals("C1070AAM", ((String) r7.get(5)).trim()); |
||
175 | assertEquals("Capital Federal", ((String) r7.get(6)).trim()); |
||
176 | assertEquals("ARGENTINA", ((String) r7.get(7)).trim()); |
||
177 | |||
178 | log.info("SubTest 8.");
|
||
179 | String c8 = "5.548\t5478.254\t0.24578457\t256.21450045"; |
||
180 | |||
181 | File f8 = new File( |
||
182 | "src-test/org/gvsig/normalization/operations/testdata/patSplitChain8.xml");
|
||
183 | assertNotNull(f8); |
||
184 | |||
185 | List<String> r8 = parser(f8, c8); |
||
186 | assertNotNull(r8); |
||
187 | |||
188 | assertEquals(5.548, Double.parseDouble(((String) r8.get(0)).trim())); |
||
189 | assertEquals(5478.254, Double.parseDouble(((String) r8.get(1)).trim())); |
||
190 | assertEquals(0.24578457, Double |
||
191 | .parseDouble(((String) r8.get(2)).trim())); |
||
192 | assertEquals(256.21450045, Double.parseDouble(((String) r8.get(3)) |
||
193 | .trim())); |
||
194 | |||
195 | log.info("TestNormAlgorithm. Test finished");
|
||
196 | } |
||
197 | |||
198 | public void testSplitFixed() { |
||
199 | |||
200 | log.info("TestNormAlgorithm. Test tokens fixed");
|
||
201 | |||
202 | String chain = "esto;/es;;; una_prueba; de un/ split de una cadena_de texto"; |
||
203 | |||
204 | int parts = 4; |
||
205 | boolean join = true; |
||
206 | String[] separators = { " " }; |
||
207 | List<String> result = NormAlgorithm.splitChainBySeparators(chain, |
||
208 | parts, separators, join); |
||
209 | log.info("Cadena inicial: " + chain);
|
||
210 | for (int i = 0; i < result.size(); i++) { |
||
211 | log.info("Subcadena" + i + ": " + (String) result.get(i)); |
||
212 | } |
||
213 | assertEquals("esto;/es;;;", result.get(0)); |
||
214 | assertEquals("una_prueba;", result.get(1)); |
||
215 | assertEquals("de", result.get(2)); |
||
216 | assertEquals("un/ split de una cadena_de texto", result.get(3)); |
||
217 | |||
218 | log.info("TestNormAlgorithm. Test tokens fixed finished");
|
||
219 | |||
220 | } |
||
221 | 22975 | vsanjaime | |
222 | 22677 | jsanz | public void testSplitSeparators() { |
223 | 22975 | vsanjaime | |
224 | 22677 | jsanz | log.info("TestNormAlgorithm. Test tokens with separators");
|
225 | 22975 | vsanjaime | |
226 | 22677 | jsanz | String chain = "esto;/es;;; una_prueba; de un/ split de una cadena_de texto"; |
227 | |||
228 | int parts = 4; |
||
229 | boolean join = true; |
||
230 | String[] separators = { " " }; |
||
231 | List<String> result = NormAlgorithm.splitChainBySeparators(chain, |
||
232 | parts, separators, join); |
||
233 | System.out.println("Cadena inicial: " + chain); |
||
234 | for (int i = 0; i < result.size(); i++) { |
||
235 | System.out.println("Subcadena" + i + ": " + (String) result.get(i)); |
||
236 | } |
||
237 | assertEquals("esto;/es;;;", result.get(0)); |
||
238 | assertEquals("una_prueba;", result.get(1)); |
||
239 | assertEquals("de", result.get(2)); |
||
240 | assertEquals("un/ split de una cadena_de texto", result.get(3)); |
||
241 | |||
242 | log.info("TestNormAlgorithm. Test tokens with separators finished");
|
||
243 | 22975 | vsanjaime | |
244 | 22677 | jsanz | } |
245 | |||
246 | private List<String> parser(File f, String chain) { |
||
247 | 22975 | vsanjaime | Patternnormalization pat = new Patternnormalization();
|
248 | IStorage storage = new StorageXML();
|
||
249 | |||
250 | 22677 | jsanz | try {
|
251 | 22975 | vsanjaime | FileReader reader = new FileReader(f); |
252 | storage.load(reader); |
||
253 | pat.setstate(storage); |
||
254 | } catch (Exception e) { |
||
255 | 22677 | jsanz | e.printStackTrace(); |
256 | } |
||
257 | NormAlgorithm na = new NormAlgorithm(pat);
|
||
258 | |||
259 | List<String> result = na.splitChain(chain); |
||
260 | return result;
|
||
261 | |||
262 | } |
||
263 | |||
264 | } |