/java/test/test/SilabeadorTest.java

http://anapalabra.googlecode.com/ · Java · 388 lines · 328 code · 50 blank · 10 comment · 52 complexity · c87c59185801fb99f4ab32ca34f9aa6d MD5 · raw file

  1. package test;
  2. import java.util.ArrayList;
  3. import java.util.regex.Pattern;
  4. import org.asesauta.anapalabra.Silabeador;
  5. import org.junit.Test;
  6. import static org.junit.Assert.*;
  7. /**
  8. * Ejemplos de: http://www.rae.es/rae/gestores/gespub000015.nsf/(voanexos)/
  9. * arch7E8694F9D6446133C12571640039A189/$FILE/Ortografia.pdf
  10. */
  11. public class SilabeadorTest
  12. {
  13. Silabeador s = new Silabeador();
  14. ArrayList<String> slbs = new ArrayList<String>();
  15. ArrayList<String> testdata = new ArrayList<String>();
  16. @Test
  17. public void testConversiones()
  18. {
  19. String w = "guitarra";
  20. assertTrue(w.equals(s.unformat(s.format(w))));
  21. }
  22. @Test
  23. public void testMonosilabos()
  24. {
  25. testdata.add("sol");
  26. testdata.add("mar");
  27. testdata.add("ah");
  28. testdata.add("él");
  29. testdata.add("perl");
  30. for (String t : testdata)
  31. {
  32. slbs = s.silabear(t);
  33. assertTrue(slbs.size() == 1);
  34. assertTrue(slbs.get(0).equals(t));
  35. }
  36. }
  37. @Test
  38. public void testHiatos()
  39. {
  40. String w = "guía";
  41. slbs = s.silabear(w);
  42. assertTrue(slbs.size() == 2);
  43. assertTrue(slbs.get(0).equals("guí"));
  44. assertTrue(slbs.get(1).equals("a"));
  45. w = "teatro";
  46. slbs = s.silabear(w);
  47. assertTrue(slbs.size() == 3);
  48. assertTrue(slbs.get(0).equals("te"));
  49. assertTrue(slbs.get(1).equals("a"));
  50. assertTrue(slbs.get(2).equals("tro"));
  51. w = "aéreo";
  52. slbs = s.silabear(w);
  53. assertTrue(slbs.size() == 4);
  54. assertTrue(slbs.get(0).equals("a"));
  55. assertTrue(slbs.get(1).equals("é"));
  56. assertTrue(slbs.get(2).equals("re"));
  57. assertTrue(slbs.get(3).equals("o"));
  58. w = "vigía";
  59. slbs = s.silabear(w);
  60. assertTrue(slbs.size() == 3);
  61. assertTrue(slbs.get(0).equals("vi"));
  62. assertTrue(slbs.get(1).equals("gí"));
  63. assertTrue(slbs.get(2).equals("a"));
  64. w = "veo";
  65. slbs = s.silabear(w);
  66. assertTrue(slbs.size() == 2);
  67. assertTrue(slbs.get(0).equals("ve"));
  68. assertTrue(slbs.get(1).equals("o"));
  69. w = "salías";
  70. slbs = s.silabear(w);
  71. assertTrue(slbs.size() == 3);
  72. assertTrue(slbs.get(0).equals("sa"));
  73. assertTrue(slbs.get(1).equals("lí"));
  74. assertTrue(slbs.get(2).equals("as"));
  75. w = "caía";
  76. slbs = s.silabear(w);
  77. assertTrue(slbs.size() == 3);
  78. assertTrue(slbs.get(0).equals("ca"));
  79. assertTrue(slbs.get(1).equals("í"));
  80. assertTrue(slbs.get(2).equals("a"));
  81. w = "silabear";
  82. slbs = s.silabear(w);
  83. assertTrue(slbs.size() == 4);
  84. assertTrue(slbs.get(0).equals("si"));
  85. assertTrue(slbs.get(1).equals("la"));
  86. assertTrue(slbs.get(2).equals("be"));
  87. assertTrue(slbs.get(3).equals("ar"));
  88. }
  89. @Test
  90. public void testTriptongos()
  91. {
  92. String w = "amortiguáis";
  93. slbs = s.silabear(w);
  94. assertTrue(slbs.size() == 4);
  95. assertTrue(slbs.get(0).equals("a"));
  96. assertTrue(slbs.get(1).equals("mor"));
  97. assertTrue(slbs.get(2).equals("ti"));
  98. assertTrue(slbs.get(3).equals("guáis"));
  99. slbs = s.silabear("buey");
  100. assertTrue(slbs.size() == 1);
  101. assertTrue(slbs.get(0).equals("buey"));
  102. w = "despreciéis";
  103. slbs = s.silabear(w);
  104. assertTrue(slbs.size() == 3);
  105. assertTrue(slbs.get(0).equals("des"));
  106. assertTrue(slbs.get(1).equals("pre"));
  107. assertTrue(slbs.get(2).equals("ciéis"));
  108. w = "miau";
  109. slbs = s.silabear(w);
  110. assertTrue(slbs.size() == 1);
  111. assertTrue(slbs.get(0).equals("miau"));
  112. w = "limpiáis";
  113. slbs = s.silabear(w);
  114. assertTrue(slbs.size() == 2);
  115. assertTrue(slbs.get(0).equals("lim"));
  116. assertTrue(slbs.get(1).equals("piáis"));
  117. w = "averigüéis";
  118. slbs = s.silabear(w);
  119. assertTrue(slbs.size() == 4);
  120. assertTrue(slbs.get(0).equals("a"));
  121. assertTrue(slbs.get(1).equals("ve"));
  122. assertTrue(slbs.get(2).equals("ri"));
  123. assertTrue(slbs.get(3).equals("güéis"));
  124. w = "Paraguay";
  125. slbs = s.silabear(w);
  126. assertTrue(slbs.size() == 3);
  127. assertTrue(slbs.get(0).equals("Pa"));
  128. assertTrue(slbs.get(1).equals("ra"));
  129. assertTrue(slbs.get(2).equals("guay"));
  130. w = "cacahuey";
  131. slbs = s.silabear(w);
  132. assertTrue(slbs.size() == 3);
  133. assertTrue(slbs.get(0).equals("ca"));
  134. assertTrue(slbs.get(1).equals("ca"));
  135. assertTrue(slbs.get(2).equals("huey"));
  136. w = "apacigüéis";
  137. slbs = s.silabear(w);
  138. assertTrue(slbs.size() == 4);
  139. assertTrue(slbs.get(0).equals("a"));
  140. assertTrue(slbs.get(1).equals("pa"));
  141. assertTrue(slbs.get(2).equals("ci"));
  142. assertTrue(slbs.get(3).equals("güéis"));
  143. w = "estudiáis";
  144. slbs = s.silabear(w);
  145. assertTrue(slbs.size() == 3);
  146. assertTrue(slbs.get(0).equals("es"));
  147. assertTrue(slbs.get(1).equals("tu"));
  148. assertTrue(slbs.get(2).equals("diáis"));
  149. }
  150. @Test
  151. public void testDiptongos()
  152. {
  153. String w = "mierda";
  154. slbs = s.silabear(w);
  155. assertTrue(slbs.size() == 2);
  156. assertTrue(slbs.get(0).equals("mier"));
  157. assertTrue(slbs.get(1).equals("da"));
  158. w = "adiós";
  159. slbs = s.silabear(w);
  160. assertTrue(slbs.size() == 2);
  161. assertTrue(slbs.get(0).equals("a"));
  162. assertTrue(slbs.get(1).equals("diós"));
  163. }
  164. @Test
  165. public void testFaciles()
  166. {
  167. String w = "casa";
  168. slbs = s.silabear(w);
  169. assertTrue(slbs.size() == 2);
  170. assertTrue(slbs.get(0).equals("ca"));
  171. assertTrue(slbs.get(1).equals("sa"));
  172. w = "azul";
  173. slbs = s.silabear(w);
  174. assertTrue(slbs.size() == 2);
  175. assertTrue(slbs.get(0).equals("a"));
  176. assertTrue(slbs.get(1).equals("zul"));
  177. }
  178. @Test
  179. public void test2Consonantes()
  180. {
  181. String w = "África";
  182. slbs = s.silabear(w);
  183. assertTrue(slbs.size() == 3);
  184. assertTrue(slbs.get(0).equals("Á"));
  185. assertTrue(slbs.get(1).equals("fri"));
  186. assertTrue(slbs.get(2).equals("ca"));
  187. w = "transformar";
  188. slbs = s.silabear(w);
  189. assertTrue(slbs.size() == 3);
  190. assertTrue(slbs.get(0).equals("trans"));
  191. assertTrue(slbs.get(1).equals("for"));
  192. assertTrue(slbs.get(2).equals("mar"));
  193. }
  194. @Test
  195. public void patronTilde()
  196. {
  197. Pattern patron = s.patron_tilde;
  198. String[] tildes = {"á", "é", "í", "ó", "ú", "aá", "nás", "ée", "asdaaaaaecúwe"};
  199. for (String sl: tildes)
  200. assertTrue( patron.matcher(sl).matches() );
  201. String[] no_tildes = {"a", "e", "i", "o", "u", "aa", "nws", "5e", "asdaaaaaecwe"};
  202. for (String sl: no_tildes)
  203. assertFalse( patron.matcher(sl).matches() );
  204. }
  205. @Test
  206. public void testTonica()
  207. {
  208. ArrayList<String> al = new ArrayList<String>();
  209. al.add("mo");
  210. assertTrue((s.tonica(al) == 0));
  211. al.clear();
  212. al.add("ár");
  213. al.add("bol");
  214. assertTrue((s.tonica(al) == 0));
  215. al.clear();
  216. al.add("a");
  217. al.add("vión");
  218. assertTrue((s.tonica(al) == 1));
  219. al.clear();
  220. al.add("a");
  221. al.add("VIÓN");
  222. assertTrue((s.tonica(al) == 1));
  223. al.clear();
  224. al.add("es");
  225. al.add("drú");
  226. al.add("ju");
  227. al.add("la");
  228. assertTrue((s.tonica(al) == 1));
  229. al.clear();
  230. al.add("al");
  231. al.add("ga");
  232. assertTrue((s.tonica(al) == 0));
  233. al.clear();
  234. al.add("al");
  235. al.add("bor");
  236. assertTrue(s.tonica(al) == 1);
  237. }
  238. /**
  239. * Pilladas que han hecho los usuarios
  240. */
  241. @Test
  242. public void testPilladas()
  243. {
  244. String w = "esternocleidomastoideo";
  245. slbs = s.silabear(w);
  246. assertTrue(slbs.size() == 9);
  247. assertTrue(slbs.get(0).equals("es"));
  248. assertTrue(slbs.get(1).equals("ter"));
  249. assertTrue(slbs.get(2).equals("no"));
  250. assertTrue(slbs.get(3).equals("clei"));
  251. assertTrue(slbs.get(4).equals("do"));
  252. assertTrue(slbs.get(5).equals("mas"));
  253. assertTrue(slbs.get(6).equals("toi"));
  254. assertTrue(slbs.get(7).equals("de"));
  255. assertTrue(slbs.get(8).equals("o"));
  256. w = "cuadrado";
  257. slbs = s.silabear(w);
  258. assertTrue(slbs.size() == 3);
  259. assertTrue(slbs.get(0).equals("cua"));
  260. assertTrue(slbs.get(1).equals("dra"));
  261. assertTrue(slbs.get(2).equals("do"));
  262. w = "cuadrilátero";
  263. slbs = s.silabear(w);
  264. assertTrue(slbs.size() == 5);
  265. assertTrue(slbs.get(0).equals("cua"));
  266. assertTrue(slbs.get(1).equals("dri"));
  267. assertTrue(slbs.get(2).equals("lá"));
  268. assertTrue(slbs.get(3).equals("te"));
  269. assertTrue(slbs.get(4).equals("ro"));
  270. w = "picaflor";
  271. slbs = s.silabear(w);
  272. assertTrue(slbs.size() == 3);
  273. assertTrue(slbs.get(0).equals("pi"));
  274. assertTrue(slbs.get(1).equals("ca"));
  275. assertTrue(slbs.get(2).equals("flor"));
  276. w = "aeroplano";
  277. slbs = s.silabear(w);
  278. assertTrue(slbs.size() == 5);
  279. assertTrue(slbs.get(0).equals("a"));
  280. assertTrue(slbs.get(1).equals("e"));
  281. assertTrue(slbs.get(2).equals("ro"));
  282. assertTrue(slbs.get(3).equals("pla"));
  283. assertTrue(slbs.get(4).equals("no"));
  284. w = "subrayar";
  285. slbs = s.silabear(w);
  286. assertTrue(slbs.size() == 3);
  287. assertTrue(slbs.get(0).equals("sub"));
  288. assertTrue(slbs.get(1).equals("ra"));
  289. assertTrue(slbs.get(2).equals("yar"));
  290. w = "submarino";
  291. slbs = s.silabear(w);
  292. assertTrue(slbs.size() == 4);
  293. assertTrue(slbs.get(0).equals("sub"));
  294. assertTrue(slbs.get(1).equals("ma"));
  295. assertTrue(slbs.get(2).equals("ri"));
  296. assertTrue(slbs.get(3).equals("no"));
  297. w = "subir";
  298. slbs = s.silabear(w);
  299. assertTrue(slbs.size() == 2);
  300. assertTrue(slbs.get(0).equals("su"));
  301. assertTrue(slbs.get(1).equals("bir"));
  302. w = "mubarak";
  303. slbs = s.silabear(w);
  304. assertTrue(slbs.size() == 3);
  305. assertTrue(slbs.get(0).equals("mu"));
  306. assertTrue(slbs.get(1).equals("ba"));
  307. assertTrue(slbs.get(2).equals("rak"));
  308. }
  309. @Test
  310. public void testVocalTonica()
  311. {
  312. assertTrue((s.vocalTonica("mas") == 1));
  313. assertTrue((s.vocalTonica("vión") == 2));
  314. assertTrue((s.vocalTonica("más") == 1));
  315. assertTrue((s.vocalTonica("a") == 0));
  316. assertTrue((s.vocalTonica("ví") == 1));
  317. assertTrue((s.vocalTonica("mier") == 2));
  318. }
  319. /**
  320. * Bug Adriana Vega
  321. */
  322. @Test
  323. public void hacheIntercalada()
  324. {
  325. String w = "prohibido";
  326. slbs = s.silabear(w);
  327. assertTrue(slbs.size() == 3);
  328. assertTrue(slbs.get(0).equals("prohi"));
  329. assertTrue(slbs.get(1).equals("bi"));
  330. assertTrue(slbs.get(2).equals("do"));
  331. w = "alhelí";
  332. slbs = s.silabear(w);
  333. assertTrue(slbs.size() == 3);
  334. assertTrue(slbs.get(0).equals("a"));
  335. assertTrue(slbs.get(1).equals("lhe"));
  336. assertTrue(slbs.get(2).equals("lí"));
  337. }
  338. }