1+ import { setLang , algorithmWord , tokens , begin , end , forWord , toWord , variables , transpiler , openBracket , closeBracket , write , read , type , typeError , error , addTab , removeTab , menu , code } from './i18n'
2+
3+ function genericTokens ( ) {
4+ expect ( tokens [ '<>' ] ) . toBe ( '!==' )
5+ expect ( tokens [ '<=' ] ) . toBe ( '<=' )
6+ expect ( tokens [ '>=' ] ) . toBe ( '>=' )
7+ expect ( tokens [ '<' ] ) . toBe ( '<' )
8+ expect ( tokens [ '>' ] ) . toBe ( '>' )
9+ expect ( tokens [ '<-' ] ) . toBe ( '=' )
10+ }
11+
12+ test ( 'ES algorithmWord' , ( ) => {
13+ setLang ( 'es' )
14+ expect ( algorithmWord ) . toBe ( 'algoritmo' )
15+ } )
16+
17+ test ( 'ES begin' , ( ) => {
18+ setLang ( 'es' )
19+ expect ( begin ) . toBe ( 'inicio' )
20+ } )
21+
22+ test ( 'ES end' , ( ) => {
23+ setLang ( 'es' )
24+ expect ( end ) . toBe ( 'fin' )
25+ } )
26+
27+ test ( 'ES forWord' , ( ) => {
28+ setLang ( 'es' )
29+ expect ( forWord ) . toBe ( 'para' )
30+ } )
31+
32+ test ( 'ES toWord' , ( ) => {
33+ setLang ( 'es' )
34+ expect ( toWord ) . toBe ( 'hasta' )
35+ } )
36+
37+ test ( 'ES tokens' , ( ) => {
38+ setLang ( 'es' )
39+ genericTokens ( )
40+ expect ( tokens [ 'o' ] ) . toBe ( '||' )
41+ expect ( tokens [ 'y' ] ) . toBe ( '&&' )
42+ expect ( tokens [ 'no' ] ) . toBe ( '!' )
43+ } )
44+
45+ test ( 'ES variables' , ( ) => {
46+ setLang ( 'es' )
47+ const [ varName1 , varName2 , ...restOfVarName ] = variables
48+ expect ( restOfVarName . length ) . toBe ( 0 )
49+ expect ( varName1 ) . toBe ( 'variables' )
50+ expect ( varName2 ) . toBe ( 'var' )
51+ } )
52+
53+ test ( 'ES transpiler' , ( ) => {
54+ setLang ( 'es' )
55+ expect ( Object . keys ( transpiler ) . length ) . toBe ( 7 )
56+ expect ( transpiler [ 'si' ] ) . toBe ( 'if' )
57+ expect ( transpiler [ 'sino' ] ) . toBe ( '}\nelse {' )
58+ expect ( transpiler [ 'mientras' ] ) . toBe ( 'while' )
59+ expect ( transpiler [ 'repetir' ] ) . toBe ( 'do {' )
60+ expect ( transpiler [ 'hasta' ] ) . toBe ( '} while' )
61+ expect ( transpiler [ 'para' ] ) . toBe ( 'for' )
62+ expect ( transpiler [ 'hacer' ] ) . toBe ( 'do' )
63+ } )
64+
65+ test ( 'ES openBracket' , ( ) => {
66+ setLang ( 'es' )
67+ const [ bracket1 , bracket2 , ...restOfBrackets ] = openBracket
68+ expect ( restOfBrackets . length ) . toBe ( 0 )
69+ expect ( bracket1 ) . toBe ( 'hacer' )
70+ expect ( bracket2 ) . toBe ( 'entonces' )
71+ } )
72+
73+ test ( 'ES closeBracket' , ( ) => {
74+ setLang ( 'es' )
75+ const [ bracket1 , bracket2 , bracket3 , bracket4 , bracket5 , bracket6 , ...restOfBrackets ] = closeBracket
76+ expect ( restOfBrackets . length ) . toBe ( 0 )
77+ expect ( bracket1 ) . toBe ( 'finsi' )
78+ expect ( bracket2 ) . toBe ( 'fin_si' )
79+ expect ( bracket3 ) . toBe ( 'finmientras' )
80+ expect ( bracket4 ) . toBe ( 'fin_mientras' )
81+ expect ( bracket5 ) . toBe ( 'finpara' )
82+ expect ( bracket6 ) . toBe ( 'fin_para' )
83+ } )
84+
85+ test ( 'ES write' , ( ) => {
86+ setLang ( 'es' )
87+ const [ write1 , write2 , write3 , ...restOfWriteWords ] = write
88+ expect ( restOfWriteWords . length ) . toBe ( 0 )
89+ expect ( write1 ) . toBe ( 'mostrar' )
90+ expect ( write2 ) . toBe ( 'escribir' )
91+ expect ( write3 ) . toBe ( 'imprimir' )
92+ } )
93+
94+ test ( 'ES read' , ( ) => {
95+ setLang ( 'es' )
96+ const [ read1 , ...restOfReadWords ] = read
97+ expect ( restOfReadWords . length ) . toBe ( 0 )
98+ expect ( read1 ) . toBe ( 'leer' )
99+ } )
100+
101+ test ( 'ES type' , ( ) => {
102+ setLang ( 'es' )
103+ expect ( Object . keys ( type ) . length ) . toBe ( 4 )
104+ expect ( type [ 'int' ] ) . toBe ( 'entero' )
105+ expect ( type [ 'double' ] ) . toBe ( 'real' )
106+ expect ( type [ 'string' ] ) . toBe ( 'carapter' )
107+ expect ( type [ 'bool' ] ) . toBe ( 'booleano' )
108+ } )
109+
110+ test ( 'ES typeError' , ( ) => {
111+ setLang ( 'es' )
112+ expect ( Object . keys ( typeError ) . length ) . toBe ( 4 )
113+ expect ( typeError [ 'int' ] ) . toBe ( 'ERROR: no es entero' )
114+ expect ( typeError [ 'double' ] ) . toBe ( 'ERROR: no es flotante' )
115+ expect ( typeError [ 'string' ] ) . toBe ( 'ERROR: no es una cadena' )
116+ expect ( typeError [ 'bool' ] ) . toBe ( 'ERROR: no es booleano' )
117+ } )
118+
119+ test ( 'ES error' , ( ) => {
120+ setLang ( 'es' )
121+ expect ( Object . keys ( error ) . length ) . toBe ( 2 )
122+ expect ( error [ 'stringForNumber' ] ) . toBe ( 'ERROR: un numero no puede multiplicar a un carapter' )
123+ expect ( error [ 'infinity' ] ) . toBe ( 'ERROR: dividir entre 0 causa un numero infinito' )
124+ } )
125+
126+ test ( 'ES menu' , ( ) => {
127+ setLang ( 'es' )
128+ expect ( menu ) . toBe ( 'Menu' )
129+ } )
130+
131+ test ( 'ES addTab' , ( ) => {
132+ setLang ( 'es' )
133+ expect ( addTab ) . toBe ( 'Add tab' )
134+ } )
135+
136+ test ( 'ES removeTab' , ( ) => {
137+ setLang ( 'es' )
138+ expect ( removeTab ) . toBe ( 'Remove tab' )
139+ } )
140+
141+ test ( 'ES code' , ( ) => {
142+ setLang ( 'es' )
143+ expect ( code ) . toBe ( `algoritmo facilito
144+ variables
145+ numero, i, tabla[10]: entero
146+ inicio
147+ i <- 0
148+ mostrar "Ingrese numero a multiplicar: "
149+ leer numero
150+ mientras (i < 10) hacer
151+ i <- i + 1
152+ tabla[i] <- numero * i
153+ mostrar numero, " * ", i, " = ", numero * i
154+ finmientras
155+ fin` )
156+ } )
0 commit comments